setDefaultLayout method

dynamic setDefaultLayout(
  1. LayoutConfiguration<T> layout, {
  2. required FromJsonConverter<LayoutConfiguration<T>> fromJson,
  3. String? sourceFeatureName,
})

Sets the default layout for this content builder.

  • layout: The new default layout
  • fromJson: The JSON converter for the layout
  • sourceFeatureName: The source feature for the layout

Implementation

setDefaultLayout(
  LayoutConfiguration<T> layout, {
  required FromJsonConverter<LayoutConfiguration<T>> fromJson,
  String? sourceFeatureName,
}) {
  _defaultLayout = layout;

  final currentLayoutSchemaType = _defaultLayoutDescriptor.schemaType;

  _defaultLayoutDescriptor = TypeDescriptor<LayoutConfiguration<T>>(
    schemaType: currentLayoutSchemaType,
    fromJson: fromJson,
    title: 'Override Layout for ${content.schemaType}',
  );
  _defaultLayoutDescriptor.setSourceFeature(sourceFeatureName);

  registerDescriptors<LayoutConfiguration>([_defaultLayoutDescriptor]);

  _layouts.removeWhere((td) => td.schemaType == currentLayoutSchemaType);
  _layouts.insert(0, _defaultLayoutDescriptor);
}