* @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(): string { return parent::GenerateId().'--'.utils::GetSafeId($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(); } /** * @return string * @uses oPopupMenuItem * @uses \ApplicationPopupMenuItem::GetIconClass() */ public function GetIconClass() { return $this->oPopupMenuItem->GetIconClass(); } /** * @return $this * @uses oPopupMenuItem * @uses \ApplicationPopupMenuItem::SetIconClass() */ public function SetIconClass($sIconClas) { $this->oPopupMenuItem->SetIconClass($sIconClas); return $this; } /** * @return string * @uses oPopupMenuItem * @uses \ApplicationPopupMenuItem::GetTooltip() */ public function GetTooltip() { return $this->oPopupMenuItem->GetTooltip(); } /** * @return $this * @uses oPopupMenuItem * @uses \ApplicationPopupMenuItem::SetTooltip() */ public function SetTooltip($sTooltip) { $this->oPopupMenuItem->SetTooltip($sTooltip); return $this; } /** * @return string * @uses oPopupMenuItem * @uses \ApplicationPopupMenuItem::GetUID() */ public function GetUID() { return $this->oPopupMenuItem->GetUID(); } }