summaryrefslogtreecommitdiff
path: root/framework/Web
diff options
context:
space:
mode:
authorxue <>2006-03-23 21:10:05 +0000
committerxue <>2006-03-23 21:10:05 +0000
commit5042df3f7a3f4ea7932a4329559dd93477290322 (patch)
tree09c4a04a121735f8cbbdedf4f6726d934f0bf7ca /framework/Web
parent29d40192ed3dc0085b5e513ec071c81e03e95d3b (diff)
Fixed a bug in triggering onActiveStepChanged event.
Diffstat (limited to 'framework/Web')
-rw-r--r--framework/Web/UI/WebControls/TMultiView.php14
-rw-r--r--framework/Web/UI/WebControls/TWizard.php18
2 files changed, 13 insertions, 19 deletions
diff --git a/framework/Web/UI/WebControls/TMultiView.php b/framework/Web/UI/WebControls/TMultiView.php
index 42e76349..5e9398f3 100644
--- a/framework/Web/UI/WebControls/TMultiView.php
+++ b/framework/Web/UI/WebControls/TMultiView.php
@@ -95,7 +95,7 @@ class TMultiView extends TControl
$this->setControlState('ActiveViewIndex',$index,-1);
$this->_cachedActiveViewIndex=-1;
if($index>=0)
- $this->activateView($views->itemAt($index));
+ $this->activateView($views->itemAt($index),true);
}
else
throw new TInvalidDataValueException('multiview_activeviewindex_invalid',$index);
@@ -115,7 +115,7 @@ class TMultiView extends TControl
return null;
$view=$views->itemAt($index);
if(!$view->getActive())
- $this->activateView($view);
+ $this->activateView($view,false);
return $view;
}
@@ -135,20 +135,24 @@ class TMultiView extends TControl
* Activates the specified view.
* If there is any view currently active, it will be deactivated.
* @param TView the view to be activated
+ * @param boolean whether to trigger OnActiveViewChanged event.
*/
- protected function activateView($view)
+ protected function activateView($view,$triggerViewChangedEvent=true)
{
if($view->getActive())
return;
- $triggerEvent=$this->getControlStage()>=TControl::CS_STATE_LOADED || !$this->getPage() || !$this->getPage()->getIsPostBack();
+ $triggerEvent=($this->getControlStage()>=TControl::CS_STATE_LOADED || ($this->getPage() && !$this->getPage()->getIsPostBack()));
foreach($this->getViews() as $v)
{
if($v===$view)
{
$view->setActive(true);
if($triggerEvent)
+ {
$view->onActivate(null);
- $this->onActiveViewChanged(null);
+ if($triggerViewChangedEvent)
+ $this->onActiveViewChanged(null);
+ }
}
else if($v->getActive())
{
diff --git a/framework/Web/UI/WebControls/TWizard.php b/framework/Web/UI/WebControls/TWizard.php
index 4591e475..729b1c8f 100644
--- a/framework/Web/UI/WebControls/TWizard.php
+++ b/framework/Web/UI/WebControls/TWizard.php
@@ -20,8 +20,8 @@ Prado::using('System.Web.UI.WebControls.TDataList');
/**
* Class TWizard.
*
- * TWizard splits a large form and present the user with a series of smaller
- * form to complete. TWizard is analogous to the installation wizard commonly
+ * TWizard splits a large form and presents the user with a series of smaller
+ * forms to complete. TWizard is analogous to the installation wizard commonly
* used to install software in Windows.
*
* The smaller forms are called wizard steps ({@link TWizardStep}, which can be accessed via
@@ -698,9 +698,9 @@ class TWizard extends TWebControl implements INamingContainer
public function onInit($param)
{
parent::onInit($param);
+ $this->ensureChildControls();
if($this->getActiveStepIndex()<0 && $this->getWizardSteps()->getCount()>0)
$this->setActiveStepIndex(0);
- $this->ensureChildControls();
}
/**
@@ -1091,8 +1091,8 @@ class TWizard extends TWebControl implements INamingContainer
$multiView=$this->getMultiView();
$this->_stepContent=new TPanel;
$this->_stepContent->getControls()->add($multiView);
- $multiView->setActiveViewIndex(0);
$this->getControls()->add($this->_stepContent);
+ $multiView->setActiveViewIndex(0);
}
/**
@@ -1601,16 +1601,6 @@ class TTemplatedWizardStep extends TWizardStep implements INamingContainer
private $_navigationContainer=null;
/**
- * Forbids any body content.
- * This method overrides the parent implementation and is
- * invoked when template is being instantiated.
- * @param mixed object instantiated in template
- */
- public function addParsedObject($object)
- {
- }
-
- /**
* Creates child controls.
* This method mainly instantiates the content template, if any.
*/