/** * Add a child component to current one. * * If a {@link __ItemComponent} instance is received, it will also be added to the item list * * @param __IComponent &$component The component to add to * @return __ItemListComponent A reference to the current component */ public function addComponent(__IComponent &$component) { if ($component instanceof __ItemComponent && !key_exists($component->getId(), $this->_components)) { if (count($this->_items) == 0 && $this->_selection_mode == self::SELECTION_MODE_SINGLE) { $component->setSelected(true); } $this->_items[$component->getId()] =& $component; $this->_to_sort = true; if ($component->isSelected()) { $this->setSelectedItem($component); } return parent::addComponent($component); } }