diff options
author | wei <> | 2007-01-30 11:36:13 +0000 |
---|---|---|
committer | wei <> | 2007-01-30 11:36:13 +0000 |
commit | 7fa1200b5e589a47884aa4d62630ce9099fccee1 (patch) | |
tree | 739e307440b4fccf3125ab11719dc09fccefed41 /framework/Data/ActiveRecord/Scaffold/TScaffoldView.php | |
parent | fcb45e6479d4c13084c8033e543e0c1fdeead8e5 (diff) |
Add basic Scaffold view for Active Record
Diffstat (limited to 'framework/Data/ActiveRecord/Scaffold/TScaffoldView.php')
-rw-r--r-- | framework/Data/ActiveRecord/Scaffold/TScaffoldView.php | 72 |
1 files changed, 72 insertions, 0 deletions
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 @@ +<?php
+
+Prado::using('System.Data.ActiveRecord.Scaffold.TScaffoldBase');
+Prado::using('System.Data.ActiveRecord.Scaffold.TScaffoldListView');
+Prado::using('System.Data.ActiveRecord.Scaffold.TScaffoldEditView');
+
+class TScaffoldView extends TScaffoldBase
+{
+ public function onLoad($param)
+ {
+ parent::onLoad($param);
+ $this->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 |