/** * Adds a component to the items collection * * @param PhpExt_Component $item Descendants of {@link PhpExt_Component} * @param PhpExt_Layout_ContainerLayoutData * @return PhpExt_Container */ public function addItem($item, $layoutData = null) { $this->_items->add($item); if ($layoutData !== null && $item instanceof PhpExt_Component) { $validLayoutData = $this->getLayout()->getValidLayoutDataClassNames(); if (!in_array(get_class($layoutData), $validLayoutData)) { throw new Exception("Invalid layout data. Layout data provided '" . get_class($layoutData) . "' but expecting any of " . implode(", ", $validLayoutData) . "."); } $item->setLayoutData($layoutData); } return $this; }
/** * @return PhpExt_Layout_ContainerLayout */ private function getOwnerLayout() { if ($this->_ownerCollection != null) { $owner = $this->_ownerCollection->getOwner(); if ($owner instanceof PhpExt_Container) { $layout = $owner->getLayout(); if ($layout == null) { $layout == new PhpExt_Layout_ContainerLayout(); } return $layout; } } return null; }