create method

  1. @override
Widget create(
  1. SwitchWidgetData data,
  2. Environment environment,
  3. BuildContext context
)
override

create the widget given a WidgetData type data the widget data environment the current Environment context the BuildContext

Implementation

@override
Widget create(SwitchWidgetData data, Environment environment, BuildContext context) {
  var widgetContext =  WidgetContextScope.of(context);

  var mapper = widgetContext.formMapper;

  var adapter = environment.get<SwitchAdapter>();

  var typeProperty = mapper.computeProperty(widgetContext.typeDescriptor, data.databinding!);

  var result = Switch(
    key: ValueKey(data.id),
    padding: data.padding?.edgeInsets(),
    value: mapper.getValue(typeProperty),
    onChanged: (bool newValue) {
      (context as Element).markNeedsBuild();

      mapper.notifyChange(property: typeProperty, value: newValue);
    },
  );

  mapper.map(property: typeProperty, widget: result, adapter: adapter);

  return result;
}