* @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(); } /** * @param array $aCssClasses * * @return $this * @uses oPopupMenuItem * @uses \ApplicationPopupMenuItem::SetCssClasses() */ public function SetMenuItemCssClasses(array $aCssClasses) { $this->oPopupMenuItem->SetCssClasses($aCssClasses); return $this; } /** * @param string $sCssClass * * @return $this * @uses oPopupMenuItem * @uses \ApplicationPopupMenuItem::AddCssClass() */ public function AddMenuItemCssClass(string $sCssClass) { $this->oPopupMenuItem->AddCssClass($sCssClass); return $this; } /** * @return array * @uses oPopupMenuItem * @uses \ApplicationPopupMenuItem::GetCssClasses() */ public function GetMenuItemCssClasses(): array { return $this->oPopupMenuItem->GetCssClasses(); } }