From ca22da21b0cedab985e698f4dedf3ac1158a1487 Mon Sep 17 00:00:00 2001 From: Fabio Bas Date: Tue, 20 Jan 2015 23:42:12 +0100 Subject: one class per file: framework/Web/UI/WebControls --- framework/Web/UI/WebControls/TView.php | 90 ++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 framework/Web/UI/WebControls/TView.php (limited to 'framework/Web/UI/WebControls/TView.php') diff --git a/framework/Web/UI/WebControls/TView.php b/framework/Web/UI/WebControls/TView.php new file mode 100644 index 00000000..b165ea7c --- /dev/null +++ b/framework/Web/UI/WebControls/TView.php @@ -0,0 +1,90 @@ + + * @link http://www.pradosoft.com/ + * @copyright Copyright © 2005-2014 PradoSoft + * @license http://www.pradosoft.com/license/ + * @package System.Web.UI.WebControls + */ + +/** + * TView class + * + * TView is a container for a group of controls. TView must be contained + * within a {@link TMultiView} control in which only one view can be active + * at one time. + * + * To activate a view, set {@link setActive Active} to true. + * When a view is activated, it raises {@link onActivate OnActivate} event; + * and when a view is deactivated, it raises {@link onDeactivate OnDeactivate}. + * + * @author Qiang Xue + * @package System.Web.UI.WebControls + * @since 3.0 + */ +class TView extends TControl +{ + private $_active=false; + + /** + * Raises OnActivate event. + * @param TEventParameter event parameter + */ + public function onActivate($param) + { + $this->raiseEvent('OnActivate',$this,$param); + } + + /** + * Raises OnDeactivate event. + * @param TEventParameter event parameter + */ + public function onDeactivate($param) + { + $this->raiseEvent('OnDeactivate',$this,$param); + } + + /** + * @return boolean whether this view is active. Defaults to false. + */ + public function getActive() + { + return $this->_active; + } + + /** + * @param boolean whether this view is active. + */ + public function setActive($value) + { + $value=TPropertyValue::ensureBoolean($value); + $this->_active=$value; + parent::setVisible($value); + } + + /** + * @param boolean whether the parents should also be checked if visible + * @return boolean whether this view is visible. + * The view is visible if it is active and its parent is visible. + */ + public function getVisible($checkParents=true) + { + if(($parent=$this->getParent())===null) + return $this->getActive(); + else if($this->getActive()) + return $parent->getVisible($checkParents); + else + return false; + } + + /** + * @param boolean + * @throws TInvalidOperationException whenever this method is invoked. + */ + public function setVisible($value) + { + throw new TInvalidOperationException('view_visible_readonly'); + } +} \ No newline at end of file -- cgit v1.2.3