* @package Combodo\iTop\Application\UI\Base\Component\Panel * @since 3.0.0 * * @link /test/VisualTest/Backoffice/RenderAllUiBlocks.php#title-panels to see live examples */ class PanelUIBlockFactory extends AbstractUIBlockFactory { public const TWIG_TAG_NAME = 'UIPanel'; public const UI_BLOCK_CLASS_NAME = Panel::class; /** * Make a basis Panel component * * @param string $sTitle * * @return \Combodo\iTop\Application\UI\Base\Component\Panel\Panel */ public static function MakeNeutral(string $sTitle) { $oPanel = new Panel($sTitle); // TODO 3.0.0: Set this back to neutral when object details are done $oPanel->SetColor(Panel::ENUM_COLOR_BLUE); return $oPanel; } /** * Make a Panel component for informational messages * * @param string $sTitle * * @return \Combodo\iTop\Application\UI\Base\Component\Panel\Panel */ public static function MakeForInformation(string $sTitle) { $oPanel = new Panel($sTitle); $oPanel->SetColor(Panel::ENUM_COLOR_INFORMATION); return $oPanel; } /** * Make a Panel component for successful messages * * @param string $sTitle * * @return \Combodo\iTop\Application\UI\Base\Component\Panel\Panel */ public static function MakeForSuccess(string $sTitle) { $oPanel = new Panel($sTitle); $oPanel->SetColor(Panel::ENUM_COLOR_SUCCESS); return $oPanel; } /** * Make a Panel component for warning messages * * @param string $sTitle * * @return \Combodo\iTop\Application\UI\Base\Component\Panel\Panel */ public static function MakeForWarning(string $sTitle) { $oPanel = new Panel($sTitle); $oPanel->SetColor(Panel::ENUM_COLOR_WARNING); return $oPanel; } /** * Make a Panel component for danger messages * * @param string $sTitle * * @return \Combodo\iTop\Application\UI\Base\Component\Panel\Panel */ public static function MakeForDanger(string $sTitle) { $oPanel = new Panel($sTitle); $oPanel->SetColor(Panel::ENUM_COLOR_DANGER); return $oPanel; } /** * Make a Panel component for failure messages * * @param string $sTitle * * @return \Combodo\iTop\Application\UI\Base\Component\Panel\Panel */ public static function MakeForFailure(string $sTitle) { $oPanel = new Panel($sTitle); $oPanel->SetColor(Panel::ENUM_COLOR_FAILURE); return $oPanel; } /** * Make a Panel component with primary color scheme * * @param string $sTitle * * @return \Combodo\iTop\Application\UI\Base\Component\Panel\Panel */ public static function MakeWithBrandingPrimaryColor(string $sTitle) { $oPanel = new Panel($sTitle); $oPanel->SetColor(Panel::ENUM_COLOR_PRIMARY); return $oPanel; } /** * Make a Panel component with secondary color scheme * * @param string $sTitle * * @return \Combodo\iTop\Application\UI\Base\Component\Panel\Panel */ public static function MakeWithBrandingSecondaryColor(string $sTitle) { $oPanel = new Panel($sTitle); $oPanel->SetColor(Panel::ENUM_COLOR_SECONDARY); return $oPanel; } /** * Make a Panel component with the specific $sClass color scheme * * @param string $sClass Class of the object the panel is for * @param string $sTitle * * @return \Combodo\iTop\Application\UI\Base\Component\Panel\Panel */ public static function MakeForClass(string $sClass, string $sTitle) { $oPanel = new Panel($sTitle); self::SetClassColor($sClass, $oPanel); return $oPanel; } /** * Make a basis Panel component * * @param string $sTitle * @param String $sIconUrl * * @return \Combodo\iTop\Application\UI\Base\Component\Panel\Panel */ public static function MakeEnhancedNeutral(string $sTitle, string $sIconUrl) { $oPanel = new PanelEnhanced($sTitle, $sIconUrl); // TODO 3.0.0: Change this to class color when done $oPanel->SetColor(Panel::ENUM_COLOR_BLUE); return $oPanel; } /** * @param string $sClass * @param \Combodo\iTop\Application\UI\Base\Component\Panel\Panel $oPanel * * @throws \CoreException */ public static function SetClassColor(string $sClass, Panel $oPanel): void { /** @var ormStyle $oStyle */ $sColor = null; $oStyle = MetaModel::GetClassStyle($sClass); if ($oStyle) { $sColor = $oStyle->GetMainColor(); } if (strlen($sColor) == 0) { $sColor = Panel::ENUM_COLOR_BLUE; } $oPanel->SetColor($sColor); } }