SetOption('multiple', true); $oOptionsRegister->SetOptionArrayValue('attr', 'size', 5); $oOptionsRegister->SetOptionArrayValue('attr', 'style', 'height: auto;'); } /** @inheritdoc */ protected function RegisterIO(IORegister $oIORegister): void { parent::RegisterIO($oIORegister); $oIORegister->AddInput(self::INPUT_CLASS_NAME, ClassIOFormat::class); $oIORegister->AddInput(self::INPUT_ATTRIBUTE, AttributeIOFormat::class); $oIORegister->AddOutput(self::OUTPUT_VALUE, RawFormat::class); } /** @inheritdoc */ public function UpdateOptions(OptionsRegister $oOptionsRegister): void { parent::UpdateOptions($oOptionsRegister); $oClassName = $this->GetInputValue(self::INPUT_CLASS_NAME); $oAttribute = $this->GetInputValue(self::INPUT_ATTRIBUTE); try{ $oAttDef = MetaModel::GetAttributeDef(strval($oClassName), strval($oAttribute)); $aValues = $oAttDef->GetAllowedValues(); $oOptionsRegister->SetOption('choices', array_flip($aValues ?? [])); } catch(Exception){} } }