From 7fa1200b5e589a47884aa4d62630ce9099fccee1 Mon Sep 17 00:00:00 2001 From: wei <> Date: Tue, 30 Jan 2007 11:36:13 +0000 Subject: Add basic Scaffold view for Active Record --- .../Data/ActiveRecord/Scaffold/TScaffoldView.php | 72 ++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 framework/Data/ActiveRecord/Scaffold/TScaffoldView.php (limited to 'framework/Data/ActiveRecord/Scaffold/TScaffoldView.php') diff --git a/framework/Data/ActiveRecord/Scaffold/TScaffoldView.php b/framework/Data/ActiveRecord/Scaffold/TScaffoldView.php new file mode 100644 index 00000000..668ede61 --- /dev/null +++ b/framework/Data/ActiveRecord/Scaffold/TScaffoldView.php @@ -0,0 +1,72 @@ +getListView()->copyFrom($this); + $this->getEditView()->copyFrom($this); + } + + public function getListView() + { + $this->ensureChildControls(); + return $this->getRegisteredObject('_listView'); + } + + public function getEditView() + { + $this->ensureChildControls(); + return $this->getRegisteredObject('_editView'); + } + + public function getAddButton() + { + $this->ensureChildControls(); + return $this->getRegisteredObject('_newButton'); + } + + public function bubbleEvent($sender,$param) + { + switch(strtolower($param->getCommandName())) + { + case 'edit': + return $this->showEditView($sender, $param); + case 'new': + return $this->showAddView($sender, $param); + default: + return $this->showListView($sender, $param); + } + return false; + } + + protected function showEditView($sender, $param) + { + $this->getListView()->setVisible(false); + $this->getEditView()->setVisible(true); + $this->getAddButton()->setVisible(false); + $this->getEditView()->getCancelButton()->setVisible(true); + $this->getEditView()->getClearButton()->setVisible(false); + } + + protected function showListView($sender, $param) + { + $this->getListView()->setVisible(true); + $this->getEditView()->setVisible(false); + $this->getAddButton()->setVisible(true); + } + + protected function showAddView($sender, $param) + { + $this->getEditView()->setRecordPk(null); + $this->getEditView()->initializeEditForm(); + $this->showEditView($sender, $param); + } +} + +?> \ No newline at end of file -- cgit v1.2.3