Line data Source code
1 : part of apptive_grid_form_widgets; 2 : 3 : /// Returns a corresponding Widget for a specific [component] 4 : /// 5 : /// Throws an [ArgumentError] if no Widget for a specific [DataType] is found 6 2 : Widget fromModel(FormComponent component) { 7 4 : switch (component.data.runtimeType) { 8 2 : case StringDataEntity: 9 2 : return TextFormWidget( 10 : component: component as StringFormComponent, 11 : ); 12 2 : case DateTimeDataEntity: 13 2 : return DateTimeFormWidget( 14 : component: component as DateTimeFormComponent, 15 : ); 16 2 : case DateDataEntity: 17 2 : return DateFormWidget( 18 : component: component as DateFormComponent, 19 : ); 20 2 : case IntegerDataEntity: 21 2 : return IntegerFormWidget( 22 : component: component as IntegerFormComponent, 23 : ); 24 2 : case DecimalDataEntity: 25 2 : return DecimalFormWidget( 26 : component: component as DecimalFormComponent, 27 : ); 28 2 : case BooleanDataEntity: 29 2 : return CheckBoxFormWidget( 30 : component: component as BooleanFormComponent, 31 : ); 32 2 : case EnumDataEntity: 33 2 : return EnumFormWidget( 34 : component: component as EnumFormComponent, 35 : ); 36 1 : case CrossReferenceDataEntity: 37 1 : return CrossReferenceFormWidget( 38 : component: component as CrossReferenceFormComponent, 39 : ); 40 : default: 41 1 : throw ArgumentError( 42 1 : 'No Widget found for component $component. Please make sure you are you using the latest version of this package?', 43 : ); 44 : } 45 : }