fromDynamic static method
Builds the builder from a Map-like dynamic structure. This expects the JSON format to be of the following structure:
{
"animate": <bool>,
"animationDuration": <Duration>,
"behaviors": <List<charts.ChartBehavior<num>>>,
"customSeriesRenderers": <List<charts.LineRendererConfig<num>>>,
"defaultInteractions": <bool>,
"defaultRenderer": <common.SeriesRendererConfig<num>>,
"disjointMeasureAxes": <LinkedHashMap<String, common.NumericAxisSpec>>,
"domainAxis": <common.AxisSpec>,
"flipVerticalAxis": <bool>,
"layoutConfig": <charts.LayoutConfig>,
"primaryMeasureAxis": <common.NumericAxisSpec>,
"rtlSpec": <common.RTLSpec>,
"secondaryMeasureAxis": <common.NumericAxisSpec>,
"series": <List<charts.Series<dynamic, num>>>,
"selectionModels": <List<charts.SelectionModelConfig<num>>>,
"userManagedState": <charts.UserManagedState<num>>
}
Implementation
static LineChartBuilder fromDynamic(
dynamic map, {
JsonWidgetRegistry? registry,
}) {
if (map == null) {
throw Exception('[LineChartBuilder]: map is null');
}
return LineChartBuilder(
animate:
map['animate'] == null ? null : JsonClass.parseBool(map['animate']),
animationDuration:
JsonClass.parseDurationFromMillis(map['animationDuration']),
behaviors: JsonChartsDecoder.decodeChartBehaviorList<num>(
map['behaviors'],
validate: false,
),
customSeriesRenderers:
JsonChartsDecoder.decodeSeriesRendererConfigList<num>(
map['customSeriesRenderers'],
validate: false,
),
defaultInteractions: JsonClass.parseBool(
map['defaultInteractions'],
whenNull: true,
),
defaultRenderer: JsonChartsDecoder.decodeLineRendererConfig<num>(
map['defaultRenderer'],
validate: false,
),
disjointMeasureAxes: map['disjointMeasureAxes'] == null
? null
: LinkedHashMap.from(
map['disjointMeasureAxes'].map(
(k, v) => MapEntry<String, common.NumericAxisSpec>(
k.toString(),
JsonChartsDecoder.decodeNumericAxisSpec(v)!,
),
),
),
domainAxis: JsonChartsDecoder.decodeAxisSpec(
map['domainAxis'],
validate: false,
),
flipVerticalAxis: map['flipVerticalAxis'] == null
? null
: JsonClass.parseBool(map['flipVerticalAxis']),
layoutConfig: JsonChartsDecoder.decodeLayoutConfig(
map['layoutConfig'],
validate: false,
),
primaryMeasureAxis: JsonChartsDecoder.decodeNumericAxisSpec(
map['primaryMeasureAxis'],
validate: false,
),
rtlSpec: JsonChartsDecoder.decodeRTLSpec(
map['rtlSpec'],
validate: false,
),
secondaryMeasureAxis: JsonChartsDecoder.decodeNumericAxisSpec(
map['secondaryMeasureAxis'],
validate: false,
),
series: JsonChartsDecoder.decodeSeriesList(
map['series'],
validate: false,
),
selectionModels: JsonChartsDecoder.decodeSelectionModelConfigList<num>(
map['selectionModels'],
validate: false,
),
userManagedState: map['userManagedState'],
);
}