protected function applyNavigationProperties()
{
$wizardSteps = $this->getWizardSteps();
$activeStep = $this->getActiveStep();
$activeStepIndex = $this->getActiveStepIndex();
if (!$this->_navigation) {
return;
} else {
if ($activeStepIndex < 0 || $activeStepIndex >= $wizardSteps->getCount()) {
$this->_navigation->setVisible(false);
return;
}
}
// set visibility of different types of navigation panel
$showStandard = true;
foreach ($wizardSteps as $step) {
if ($step instanceof TTemplatedWizardStep && ($container = $step->getNavigationContainer()) !== null) {
if ($activeStep === $step) {
$container->setVisible(true);
$showStandard = false;
} else {
$container->setVisible(false);
}
}
}
$activeStepType = $this->getStepType($activeStep);
if ($activeStepType === TWizardStepType::Complete) {
$this->_sideBar->setVisible(false);
$this->_header->setVisible(false);
}
$this->_startNavigation->setVisible($showStandard && $activeStepType === self::ST_START);
$this->_stepNavigation->setVisible($showStandard && $activeStepType === self::ST_STEP);
$this->_finishNavigation->setVisible($showStandard && $activeStepType === self::ST_FINISH);
if (($navigationStyle = $this->getViewState('NavigationStyle', null)) !== null) {
$this->_navigation->getStyle()->mergeWith($navigationStyle);
}
$displayCancelButton = $this->getShowCancelButton();
$cancelButtonStyle = $this->getCancelButtonStyle();
$buttonStyle = $this->getViewState('NavigationButtonStyle', null);
if ($buttonStyle !== null) {
$cancelButtonStyle->mergeWith($buttonStyle);
}
// apply styles to start navigation buttons
if (($cancelButton = $this->_startNavigation->getCancelButton()) !== null) {
$cancelButton->setVisible($displayCancelButton);
$cancelButtonStyle->apply($cancelButton);
}
if (($button = $this->_startNavigation->getNextButton()) !== null) {
$button->setVisible(true);
$style = $this->getStartNextButtonStyle();
if ($buttonStyle !== null) {
$style->mergeWith($buttonStyle);
}
$style->apply($button);
if ($activeStepType === TWizardStepType::Start) {
$this->getPage()->getClientScript()->registerDefaultButton($this, $button);
}
}
// apply styles to finish navigation buttons
if (($cancelButton = $this->_finishNavigation->getCancelButton()) !== null) {
$cancelButton->setVisible($displayCancelButton);
$cancelButtonStyle->apply($cancelButton);
}
if (($button = $this->_finishNavigation->getPreviousButton()) !== null) {
$button->setVisible($this->allowNavigationToPreviousStep());
$style = $this->getFinishPreviousButtonStyle();
if ($buttonStyle !== null) {
$style->mergeWith($buttonStyle);
}
$style->apply($button);
}
if (($button = $this->_finishNavigation->getCompleteButton()) !== null) {
$button->setVisible(true);
$style = $this->getFinishCompleteButtonStyle();
if ($buttonStyle !== null) {
$style->mergeWith($buttonStyle);
}
$style->apply($button);
if ($activeStepType === TWizardStepType::Finish) {
$this->getPage()->getClientScript()->registerDefaultButton($this, $button);
}
}
// apply styles to step navigation buttons
if (($cancelButton = $this->_stepNavigation->getCancelButton()) !== null) {
$cancelButton->setVisible($displayCancelButton);
$cancelButtonStyle->apply($cancelButton);
}
if (($button = $this->_stepNavigation->getPreviousButton()) !== null) {
$button->setVisible($this->allowNavigationToPreviousStep());
$style = $this->getStepPreviousButtonStyle();
if ($buttonStyle !== null) {
$style->mergeWith($buttonStyle);
}
$style->apply($button);
}
if (($button = $this->_stepNavigation->getNextButton()) !== null) {
$button->setVisible(true);
$style = $this->getStepNextButtonStyle();
if ($buttonStyle !== null) {
$style->mergeWith($buttonStyle);
}
$style->apply($button);
if ($activeStepType === TWizardStepType::Step) {
$this->getPage()->getClientScript()->registerDefaultButton($this, $button);
}
}
}