* @package Combodo\iTop\Application\UI\Base\Component\PopoverMenu\PopoverMenuItem * @internal * @since 3.0.0 */ class PopoverMenuItemFactory { /** * Make a standard NavigationMenu layout for backoffice pages * * @param \ApplicationPopupMenuItem $oItem * * @return \Combodo\iTop\Application\UI\Base\Component\PopoverMenu\PopoverMenuItem\PopoverMenuItem */ public static function MakeFromApplicationPopupMenuItem(ApplicationPopupMenuItem $oItem) { $sNamespace = 'Combodo\\iTop\\Application\\UI\\Base\\Component\\PopoverMenu\\PopoverMenuItem\\'; switch(true) { case $oItem instanceof URLPopupMenuItem: $sTargetClass = 'UrlPopoverMenuItem'; break; case $oItem instanceof JSPopupMenuItem: $sTargetClass = 'JsPopoverMenuItem'; break; case $oItem instanceof SeparatorPopupMenuItem: $sTargetClass = 'SeparatorPopoverMenuItem'; break; default: $sTargetClass = 'PopoverMenuItem'; break; } $sTargetClass = $sNamespace.$sTargetClass; return new $sTargetClass($oItem); } }