diff options
-rw-r--r-- | framework/Web/UI/ActiveControls/TActiveRatingList.php | 2 | ||||
-rw-r--r-- | framework/Web/UI/ActiveControls/TAutoComplete.php | 1 | ||||
-rw-r--r-- | framework/Web/UI/ActiveControls/TBaseActiveControl.php | 3 | ||||
-rw-r--r-- | framework/Web/UI/ActiveControls/TCallbackClientScript.php | 1 | ||||
-rw-r--r-- | framework/Web/UI/ActiveControls/TCallbackEventParameter.php | 3 | ||||
-rwxr-xr-x | framework/Web/UI/ActiveControls/TCallbackResponseAdapter.php | 1 | ||||
-rwxr-xr-x | framework/Web/UI/ActiveControls/TDropContainer.php | 1 | ||||
-rw-r--r-- | framework/Web/UI/TClientScriptManager.php | 2 | ||||
-rw-r--r-- | framework/Web/UI/TControlAdapter.php | 3 | ||||
-rw-r--r-- | framework/Web/UI/THtmlWriter.php | 3 | ||||
-rw-r--r-- | framework/Web/UI/TPage.php | 136 | ||||
-rw-r--r-- | framework/Web/UI/TTemplateManager.php | 1 | ||||
-rw-r--r-- | framework/Web/UI/TThemeManager.php | 1 |
13 files changed, 149 insertions, 9 deletions
diff --git a/framework/Web/UI/ActiveControls/TActiveRatingList.php b/framework/Web/UI/ActiveControls/TActiveRatingList.php index 473ca06a..cee1bcd4 100644 --- a/framework/Web/UI/ActiveControls/TActiveRatingList.php +++ b/framework/Web/UI/ActiveControls/TActiveRatingList.php @@ -31,9 +31,9 @@ class TActiveRatingList extends TRatingList implements IActiveControl, ICallback */
public function __construct()
{
+ parent::__construct();
$this->setAdapter(new TActiveListControlAdapter($this));
$this->setAutoPostBack(true);
- parent::__construct();
}
/**
diff --git a/framework/Web/UI/ActiveControls/TAutoComplete.php b/framework/Web/UI/ActiveControls/TAutoComplete.php index 2ae01d2b..f5977a01 100644 --- a/framework/Web/UI/ActiveControls/TAutoComplete.php +++ b/framework/Web/UI/ActiveControls/TAutoComplete.php @@ -425,6 +425,7 @@ class TAutoCompleteTemplate extends TComponent implements ITemplate public function __construct($template)
{
+ parent::__construct();
$this->_template = $template;
}
/**
diff --git a/framework/Web/UI/ActiveControls/TBaseActiveControl.php b/framework/Web/UI/ActiveControls/TBaseActiveControl.php index 92dd3194..2afec4d1 100644 --- a/framework/Web/UI/ActiveControls/TBaseActiveControl.php +++ b/framework/Web/UI/ActiveControls/TBaseActiveControl.php @@ -4,7 +4,7 @@ *
* @author Wei Zhuo <weizhuo[at]gamil[dot]com>
* @link http://www.pradosoft.com/
- * @copyright Copyright © 2005-2008 PradoSoft
+ * @copyright Copyright © 2005-2010 PradoSoft
* @license http://www.pradosoft.com/license/
* @version $Id$
* @package System.Web.UI.ActiveControls
@@ -44,6 +44,7 @@ class TBaseActiveControl extends TComponent */
public function __construct($control)
{
+ parent::__construct();
$this->_control = $control;
$this->_options = new TMap;
}
diff --git a/framework/Web/UI/ActiveControls/TCallbackClientScript.php b/framework/Web/UI/ActiveControls/TCallbackClientScript.php index d35e89a0..220b5323 100644 --- a/framework/Web/UI/ActiveControls/TCallbackClientScript.php +++ b/framework/Web/UI/ActiveControls/TCallbackClientScript.php @@ -44,6 +44,7 @@ class TCallbackClientScript extends TApplicationComponent */
public function __construct()
{
+ parent::__construct();
$this->_actions = new TList;
}
diff --git a/framework/Web/UI/ActiveControls/TCallbackEventParameter.php b/framework/Web/UI/ActiveControls/TCallbackEventParameter.php index f08d40a9..060c4431 100644 --- a/framework/Web/UI/ActiveControls/TCallbackEventParameter.php +++ b/framework/Web/UI/ActiveControls/TCallbackEventParameter.php @@ -4,7 +4,7 @@ *
* @author Wei Zhuo <weizhuo[at]gmail[dot]com>
* @link http://www.pradosoft.com/
- * @copyright Copyright © 2005-2008 PradoSoft + * @copyright Copyright © 2005-2010 PradoSoft
* @license http://www.pradosoft.com/license/
* @version $Id$
* @package System.Web.UI.ActiveControls
@@ -48,6 +48,7 @@ class TCallbackEventParameter extends TEventParameter */
public function __construct($response, $parameter)
{
+ parent::__construct();
$this->_response = $response;
$this->_parameter = $parameter;
}
diff --git a/framework/Web/UI/ActiveControls/TCallbackResponseAdapter.php b/framework/Web/UI/ActiveControls/TCallbackResponseAdapter.php index 6425b123..32e93a86 100755 --- a/framework/Web/UI/ActiveControls/TCallbackResponseAdapter.php +++ b/framework/Web/UI/ActiveControls/TCallbackResponseAdapter.php @@ -126,6 +126,7 @@ class TCallbackResponseWriter extends TTextWriter */ public function __construct() { + parent::__construct(); $this->_boundary = sprintf('%x',crc32(microtime())); } diff --git a/framework/Web/UI/ActiveControls/TDropContainer.php b/framework/Web/UI/ActiveControls/TDropContainer.php index cb0c4cc1..b9981033 100755 --- a/framework/Web/UI/ActiveControls/TDropContainer.php +++ b/framework/Web/UI/ActiveControls/TDropContainer.php @@ -265,6 +265,7 @@ class TDropContainerEventParameter extends TEventParameter public function __construct($dropParams) { + parent::__construct(); $this->_dragElementId = $dropParams->DragElementID; $this->_screenX = $dropParams->ScreenX; $this->_screenY = $dropParams->ScreenY; diff --git a/framework/Web/UI/TClientScriptManager.php b/framework/Web/UI/TClientScriptManager.php index 200bcba5..f6be8217 100644 --- a/framework/Web/UI/TClientScriptManager.php +++ b/framework/Web/UI/TClientScriptManager.php @@ -88,6 +88,7 @@ class TClientScriptManager extends TApplicationComponent */ public function __construct(TPage $owner) { + parent::__construct(); $this->_page=$owner; } @@ -695,6 +696,7 @@ abstract class TClientSideOptions extends TComponent */ public function __construct() { + parent::__construct(); $this->_options = Prado::createComponent('System.Collections.TMap'); } diff --git a/framework/Web/UI/TControlAdapter.php b/framework/Web/UI/TControlAdapter.php index 16a8c839..b59da59c 100644 --- a/framework/Web/UI/TControlAdapter.php +++ b/framework/Web/UI/TControlAdapter.php @@ -4,7 +4,7 @@ *
* @author Qiang Xue <qiang.xue@gmail.com>
* @link http://www.pradosoft.com/
- * @copyright Copyright © 2005-2008 PradoSoft + * @copyright Copyright © 2005-2010 PradoSoft
* @license http://www.pradosoft.com/license/
* @version $Id$
* @package System.Web.UI
@@ -34,6 +34,7 @@ class TControlAdapter extends TApplicationComponent */
public function __construct($control)
{
+ parent::__construct();
$this->_control=$control;
}
diff --git a/framework/Web/UI/THtmlWriter.php b/framework/Web/UI/THtmlWriter.php index 9713d941..a8ac08a0 100644 --- a/framework/Web/UI/THtmlWriter.php +++ b/framework/Web/UI/THtmlWriter.php @@ -4,7 +4,7 @@ *
* @author Qiang Xue <qiang.xue@gmail.com>
* @link http://www.pradosoft.com/
- * @copyright Copyright © 2005-2008 PradoSoft + * @copyright Copyright © 2005-2010 PradoSoft
* @license http://www.pradosoft.com/license/
* @version $Id$
* @package System.Web.UI
@@ -108,6 +108,7 @@ class THtmlWriter extends TApplicationComponent implements ITextWriter */
public function __construct($writer)
{
+ parent::__construct();
$this->_writer=$writer;
}
diff --git a/framework/Web/UI/TPage.php b/framework/Web/UI/TPage.php index 51c66b88..05da940e 100644 --- a/framework/Web/UI/TPage.php +++ b/framework/Web/UI/TPage.php @@ -22,7 +22,6 @@ Prado::using('System.Web.UI.TClientScriptManager'); * TPage class
*
* @author Qiang Xue <qiang.xue@gmail.com>
- * @author Brad Anderson <javalizard@gmail.com>
* @version $Id$
* @package System.Web.UI
* @since 3.0
@@ -51,14 +50,22 @@ class TPage extends TTemplateControl implements IPageEvents 'PRADO_CALLBACK_PARAMETER'=>true
);
/**
- * @var TForm form instance
+ * @var THtml html instance
*/
- private $_form;
+ private $_html;
/**
* @var THead head instance
*/
private $_head;
/**
+ * @var TBody body instance
+ */
+ private $_body;
+ /**
+ * @var TForm form instance
+ */
+ private $_form;
+ /**
* @var array list of registered validators
*/
private $_validators=array();
@@ -71,6 +78,10 @@ class TPage extends TTemplateControl implements IPageEvents */
private $_theme;
/**
+ * @var collection of all the skins
+ */
+ private $_skincontrols = array();
+ /**
* @var string page title set when Head is not in page yet
*/
private $_title;
@@ -567,8 +578,11 @@ class TPage extends TTemplateControl implements IPageEvents */
public function applyControlSkin($control)
{
- if(($theme=$this->getTheme())!==null)
+ if(($theme=$this->getTheme())!==null) {
$theme->applySkin($control);
+ if($control->SkinID)
+ $this->registerSkin($control);
+ }
}
/**
@@ -999,6 +1013,48 @@ class TPage extends TTemplateControl implements IPageEvents }
/**
+ * @return THtml, null if not available
+ */
+ public function getHtml()
+ {
+ return $this->_html;
+ }
+
+ /**
+ * @param THead page head
+ * @throws TInvalidOperationException if a head already exists
+ */
+ public function setHtml(THtml $value)
+ {
+ if($this->_html===null)
+ $this->_html = $value;
+ else
+ throw new TInvalidOperationException('page_body_duplicated');
+ }
+
+ /**
+ * @return TBody the body on the page
+ */
+ public function getBody()
+ {
+ return $this->_body;
+ }
+
+ /**
+ * Registers the TBody instance on the page.
+ * Note, a page can contain at most one TBody instance.
+ * @param TBody the form on the page
+ * @throws TInvalidOperationException if this method is invoked more than once.
+ */
+ public function setBody(TBody $body)
+ {
+ if($this->_body===null)
+ $this->_body=$body;
+ else
+ throw new TInvalidOperationException('page_body_duplicated');
+ }
+
+ /**
* @return THead page head, null if not available
*/
public function getHead()
@@ -1191,6 +1247,78 @@ class TPage extends TTemplateControl implements IPageEvents }
/**
+ * Registers a controls skin id with the page. This function links the control to its skin on the page for access.
+ * @param TControl the object to register the skinid
+ */
+ protected function registerSkin($control)
+ {
+ $id = $control->SkinID;
+ if(!$id) return;
+
+ if(!is_array($this->_skincontrols))
+ $this->_skincontrols = array();
+
+ if(!isset($this->_skincontrols[$id]))
+ $this->_skincontrols[$id] = array();
+
+ $this->_skincontrols[$id][] = $control;
+ }
+
+ /**
+ * This gets a control based on its SkinId. If there are multiple controls with the same skin,
+ * you can give this method the second parameter for an index into all the controls with that
+ * skin id. This will return the first one if and index is not specifiec
+ * @param string $skinid the skin to look for within the page
+ * @param index $index the index of the skin if there are many of the same name, defaults to 0 or the first
+ */
+ public function getSkinControl($skinid, $index = 0)
+ {
+ if(isset($this->_skincontrols[$skinid][$index]))
+ return $this->_skincontrols[$skinid][$index];
+ }
+
+ /**
+ * This gets a control based on its SkinId. If there are multiple controls with the same skin,
+ * you can give this method the second parameter for an index into all the controls with that
+ * skin id. This will return the first one if and index is not specifiec
+ * @param string $skinid the skin to look for within the page
+ */
+ public function getSkinControls($skinid)
+ {
+ if(isset($this->_skincontrols[$skinid]))
+ return $this->_skincontrols[$skinid];
+ }
+
+ /**
+ * Return the count of the skins with that id
+ * @param integer $skinid the skin to look for within the page
+ */
+ public function getSkinControlCount($skinid)
+ {
+ if(isset($this->_skincontrols[$skinid]))
+ return count($this->_skincontrols[$skinid]);
+ }
+ public function getSkinControlsByType($skinid, $type)
+ {
+ $result = array();
+ if(isset($this->_skincontrols[$skinid]))
+ foreach($this->_skincontrols[$skinid] as $ctl)
+ if($ctl instanceof $type)
+ $result[] = $ctl;
+
+ return $result;
+ }
+
+ public function getSkinControlByType($skinid, $type, $index = 0)
+ {
+ if(isset($this->_skincontrols[$skinid]))
+ foreach($this->_skincontrols[$skinid] as $ctl)
+ if(($ctl instanceof $type) && $index--)
+ return $ctl;
+ }
+
+
+ /**
* @return TStack stack of {@link TOutputCache} objects
*/
public function getCachingStack()
diff --git a/framework/Web/UI/TTemplateManager.php b/framework/Web/UI/TTemplateManager.php index 01694300..6994d665 100644 --- a/framework/Web/UI/TTemplateManager.php +++ b/framework/Web/UI/TTemplateManager.php @@ -239,6 +239,7 @@ class TTemplate extends TApplicationComponent implements ITemplate */
public function __construct($template,$contextPath,$tplFile=null,$startingLine=0,$sourceTemplate=true)
{
+ parent::__construct();
$this->_sourceTemplate=$sourceTemplate;
$this->_contextPath=$contextPath;
$this->_tplFile=$tplFile;
diff --git a/framework/Web/UI/TThemeManager.php b/framework/Web/UI/TThemeManager.php index 410976c4..59b794ce 100644 --- a/framework/Web/UI/TThemeManager.php +++ b/framework/Web/UI/TThemeManager.php @@ -229,6 +229,7 @@ class TTheme extends TApplicationComponent implements ITheme */
public function __construct($themePath,$themeUrl)
{
+ parent::__construct();
$this->_themeUrl=$themeUrl;
$this->_themePath=realpath($themePath);
$this->_name=basename($themePath);
|