Blame | Letzte Änderung | Log anzeigen | RSS feed
<?php/*** TScaffoldView class.** @author Wei Zhuo <weizhuo[at]gmail[dot]com>* @link http://www.pradosoft.com/* @copyright Copyright © 2005-2008 PradoSoft* @license http://www.pradosoft.com/license/* @version $Id: TScaffoldView.php 2541 2008-10-21 15:05:13Z qiang.xue $* @package System.Data.ActiveRecord.Scaffold*//*** Import scaffold base, list, edit and search controls.*/Prado::using('System.Data.ActiveRecord.Scaffold.TScaffoldBase');Prado::using('System.Data.ActiveRecord.Scaffold.TScaffoldListView');Prado::using('System.Data.ActiveRecord.Scaffold.TScaffoldEditView');Prado::using('System.Data.ActiveRecord.Scaffold.TScaffoldSearch');/*** TScaffoldView is a composite control consisting of TScaffoldListView* with a TScaffoldSearch. In addition, it will display a TScaffoldEditView* when an "edit" command is raised from the TScaffoldListView (when the* edit button is clicked). Futher more, the "add" button can be clicked* that shows an empty data TScaffoldListView for creating new records.** The {@link getListView ListView} property gives a TScaffoldListView for* display the record data. The {@link getEditView EditView} is the* TScaffoldEditView that renders the* inputs for editing and adding records. The {@link getSearchControl SearchControl}* is a TScaffoldSearch responsible to the search user interface.** Set the {@link setRecordClass RecordClass} property to the name of* the Active Record class to be displayed/edited/added.** @author Wei Zhuo <weizhuo[at]gmail[dot]com>* @version $Id: TScaffoldView.php 2541 2008-10-21 15:05:13Z qiang.xue $* @package System.Data.ActiveRecord.Scaffold* @since 3.0*/class TScaffoldView extends TScaffoldBase{/*** Copy basic record details to the list/edit/search controls.*/public function onPreRender($param){parent::onPreRender($param);$this->getListView()->copyFrom($this);$this->getEditView()->copyFrom($this);$this->getSearchControl()->copyFrom($this);}/*** @return TScaffoldListView scaffold list view.*/public function getListView(){$this->ensureChildControls();return $this->getRegisteredObject('_listView');}/*** @return TScaffoldEditView scaffold edit view.*/public function getEditView(){$this->ensureChildControls();return $this->getRegisteredObject('_editView');}/*** @return TScaffoldSearch scaffold search textbox and button.*/public function getSearchControl(){$this->ensureChildControls();return $this->getRegisteredObject('_search');}/*** @return TButton "Add new record" button.*/public function getAddButton(){$this->ensureChildControls();return $this->getRegisteredObject('_newButton');}/*** Handle the "edit" and "new" commands by displaying the edit view.* Default command shows the list view.*/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;}/*** Shows the edit record view.*/protected function showEditView($sender, $param){$this->getListView()->setVisible(false);$this->getEditView()->setVisible(true);$this->getAddButton()->setVisible(false);$this->getSearchControl()->setVisible(false);$this->getEditView()->getCancelButton()->setVisible(true);$this->getEditView()->getClearButton()->setVisible(false);}/*** Shows the view for listing the records.*/protected function showListView($sender, $param){$this->getListView()->setVisible(true);$this->getEditView()->setVisible(false);$this->getAddButton()->setVisible(true);$this->getSearchControl()->setVisible(true);}/*** Shows the add record view.*/protected function showAddView($sender, $param){$this->getEditView()->setRecordPk(null);$this->getEditView()->initializeEditForm();$this->showEditView($sender, $param);}}