diff options
-rw-r--r-- | framework/Web/UI/TControl.php | 12 | ||||
-rw-r--r-- | framework/Web/UI/TTemplateControl.php | 1 | ||||
-rw-r--r-- | tests/FunctionalTests/protected/pages/UI/LabeledTextBox.php | 6 |
3 files changed, 16 insertions, 3 deletions
diff --git a/framework/Web/UI/TControl.php b/framework/Web/UI/TControl.php index a87563b4..8b272f30 100644 --- a/framework/Web/UI/TControl.php +++ b/framework/Web/UI/TControl.php @@ -871,6 +871,18 @@ class TControl extends TComponent }
/**
+ * Returns the named registered object.
+ * A component with explicit ID on a template will be registered to
+ * the template owner. This method allows you to obtain this component
+ * with the ID.
+ * @return mixed the named registered object. Null if object is not found.
+ */
+ public function getRegisteredObject($name)
+ {
+ return isset($this->_rf[self::RF_NAMED_OBJECTS][$name])?$this->_rf[self::RF_NAMED_OBJECTS][$name]:null;
+ }
+
+ /**
* This method is invoked after the control is instantiated by a template.
* When this method is invoked, the control should have a valid TemplateControl
* and has its properties initialized according to template configurations.
diff --git a/framework/Web/UI/TTemplateControl.php b/framework/Web/UI/TTemplateControl.php index e3c4d3e9..72731ecd 100644 --- a/framework/Web/UI/TTemplateControl.php +++ b/framework/Web/UI/TTemplateControl.php @@ -65,7 +65,6 @@ class TTemplateControl extends TControl implements INamingContainer {
foreach($tpl->getDirective() as $name=>$value)
$this->setSubProperty($name,$value);
- $this->ensureChildControls();
}
}
diff --git a/tests/FunctionalTests/protected/pages/UI/LabeledTextBox.php b/tests/FunctionalTests/protected/pages/UI/LabeledTextBox.php index 3a3eba2d..15702d29 100644 --- a/tests/FunctionalTests/protected/pages/UI/LabeledTextBox.php +++ b/tests/FunctionalTests/protected/pages/UI/LabeledTextBox.php @@ -15,7 +15,8 @@ class LabeledTextBox extends TTemplateControl */
public function getTextBox()
{
- return $this->textbox;
+ $this->ensureChildControls();
+ return $this->getRegisteredObject('textbox');
}
/**
@@ -23,7 +24,8 @@ class LabeledTextBox extends TTemplateControl */
public function getLabel()
{
- return $this->label;
+ $this->ensureChildControls();
+ return $this->getRegisteredObject('label');
}
}
|