* @package Combodo\iTop\Application\UI\Base\Component\PopoverMenu\PopoverMenuItem * @internal * @since 3.0.0 */ class PopoverMenuItem extends UIBlock { // Overloaded constants public const BLOCK_CODE = 'ibo-popover-menu--item'; public const DEFAULT_HTML_TEMPLATE_REL_PATH = 'base/components/popover-menu/item/layout'; /** @var \ApplicationPopupMenuItem $oPopupMenuItem We decorate the class with the original \ApplicationPopupMenuItem as it is used among the application (backoffice, portal, extensions) and cannot be refactored without BC breaks */ protected $oPopupMenuItem; /** * PopoverMenuItem constructor. * * @param \ApplicationPopupMenuItem $oPopupMenuItem */ public function __construct(ApplicationPopupMenuItem $oPopupMenuItem) { $this->oPopupMenuItem = $oPopupMenuItem; parent::__construct(/* ID will be generated from $oPopupMenuItem */); } /** * @inheritDoc */ protected function GenerateId() { return static::BLOCK_CODE.'-'.$this->oPopupMenuItem->GetUID(); } /** * @see \ApplicationPopupMenuItem::GetLabel() * @return string */ public function GetLabel() { return $this->oPopupMenuItem->GetLabel(); } /** * @see \ApplicationPopupMenuItem::SetCssClasses() * * @param array $aCssClasses * * @return $this */ public function SetCssClasses(array $aCssClasses) { $this->oPopupMenuItem->SetCssClasses($aCssClasses); return $this; } /** * @see \ApplicationPopupMenuItem::AddCssClass() * * @param string $sCssClass * * @return $this */ public function AddCssClass(string $sCssClass) { $this->oPopupMenuItem->AddCssClass($sCssClass); return $this; } /** * @see \ApplicationPopupMenuItem::GetCssClasses() * @return array */ public function GetCssClasses() { return $this->oPopupMenuItem->GetCssClasses(); } }