namespace Combodo\iTop\Application\Dashlet\Core; use Combodo\iTop\Application\Dashlet\Dashlet; use Combodo\iTop\Application\UI\Base\Component\Dashlet\DashletFactory; use DesignerForm; use DesignerTextField; use Dict; use utils; class DashletHeaderStatic extends Dashlet { /** * @inheritdoc */ public function __construct($oModelReflection, $sId) { parent::__construct($oModelReflection, $sId); $this->aProperties['title'] = Dict::S('UI:DashletHeaderStatic:Prop-Title:Default'); $oIconSelect = $this->oModelReflection->GetIconSelectionField('icon'); $this->aProperties['icon'] = $oIconSelect->GetDefaultValue('Contact'); } /** * @inheritdoc */ public function Render($oPage, $bEditMode = false, $aExtraParams = []) { $sTitle = $this->aProperties['title']; $sIcon = $this->aProperties['icon']; $oIconSelect = $this->oModelReflection->GetIconSelectionField('icon'); $sIconPath = ''; if (utils::IsNotNullOrEmptyString($sIcon)) { $sIconPath = utils::HtmlEntities($oIconSelect->MakeFileUrl($sIcon)); } return DashletFactory::MakeForDashletHeaderStatic($this->oModelReflection->DictString($sTitle), $sIconPath); } /** * @inheritdoc */ public function GetPropertiesFields(DesignerForm $oForm) { $oField = new DesignerTextField('title', Dict::S('UI:DashletHeaderStatic:Prop-Title'), $this->aProperties['title']); $oForm->AddField($oField); $oField = $this->oModelReflection->GetIconSelectionField('icon', Dict::S('UI:DashletHeaderStatic:Prop-Icon'), $this->aProperties['icon']); $oField->AddAllowedValue(['value' => '', 'label' => Dict::S('UI:DashletIcon:None'), 'icon' => '']); $oForm->AddField($oField); } /** * @inheritdoc */ protected function PropertyFromDOMNode($oDOMNode, $sProperty) { if ($sProperty == 'icon') { $oIconField = $this->oModelReflection->GetIconSelectionField('icon'); return $oIconField->ValueFromDOMNode($oDOMNode); } else { return parent::PropertyFromDOMNode($oDOMNode, $sProperty); } } /** * @inheritdoc */ protected function PropertyToDOMNode($oDOMNode, $sProperty, $value) { if ($sProperty == 'icon') { $oIconField = $this->oModelReflection->GetIconSelectionField('icon'); $oIconField->ValueToDOMNode($oDOMNode, $value); } else { parent::PropertyToDOMNode($oDOMNode, $sProperty, $value); } } }