class SimulatorModelFragment(ABCAdapterForm): def __init__(self, prefix='', project_id=None): super(SimulatorModelFragment, self).__init__(prefix, project_id) self.model_choices = get_ui_name_to_model() default_model = list(self.model_choices.values())[0] self.model = SelectField(Attr(Model, default=default_model, label=Simulator.model.label, doc=Simulator.model.doc), self, choices=self.model_choices, name='model') def fill_from_trait(self, trait): # type: (Simulator) -> None self.model.data = trait.model.__class__ def fill_trait(self, datatype): datatype.model = self.model.value()
class SimulatorIntegratorFragment(ABCAdapterForm): def __init__(self, prefix='', project_id=None): super(SimulatorIntegratorFragment, self).__init__(prefix, project_id) self.integrator_choices = get_ui_name_to_integrator_dict() default_integrator = list(self.integrator_choices.values())[0] self.integrator = SelectField( Attr(Integrator, default=default_integrator, label=Simulator.integrator.label, doc=Simulator.integrator.doc), self, name='integrator', choices=self.integrator_choices, subform=get_form_for_integrator(default_integrator)) def fill_from_trait(self, trait): # type: (Simulator) -> None self.integrator.data = trait.integrator.__class__ def fill_trait(self, datatype): datatype.integrator = self.integrator.value()
class SimulatorIntegratorFragment(ABCAdapterForm): def __init__(self): super(SimulatorIntegratorFragment, self).__init__() self.integrator_choices = get_ui_name_to_integrator_dict() default_integrator = list(self.integrator_choices.values())[0] self.integrator = SelectField( Attr(IntegratorViewModel, default=default_integrator, label=SimulatorAdapterModel.integrator.label, doc=SimulatorAdapterModel.integrator.doc), name='integrator', choices=self.integrator_choices, subform=get_form_for_integrator(default_integrator), ui_values=get_integrator_name_list()) def fill_from_trait(self, trait): # type: (SimulatorAdapterModel) -> None self.integrator.data = trait.integrator.__class__ def fill_trait(self, datatype): if type(datatype.integrator) != self.integrator.value: datatype.integrator = self.integrator.value()