fromDynamic static method

JsonTooltipBuilder? fromDynamic(
  1. dynamic map, {
  2. JsonWidgetRegistry? registry,
})

Builds the builder from a Map-like dynamic structure. This expects the JSON format to be of the following structure:

{
  "decoration": <BoxDecoration>,
  "enableFeedback": <bool>,
  "excludeFromSemantics": <bool>,
  "height": <double>,
  "margin": <EdgeInsetsGeometry>,
  "message": <String>,
  "padding": <EdgeInsetsGeometry>,
  "preferBelow": <bool>,
  "richMessage": <InlineSpan>,
  "showDuration": <Duration>,
  "textStyle": <TextStyle>,
  "triggerMode": <bool>,
  "verticalOffset": <double>,
  "waitDuration": <Duration>
}

See also:

  • JsonClass.parseDurationFromMillis
  • ThemeDecoder.decodeBoxDecoration
  • ThemeDecoder.decodeEdgeInsetsGeometry
  • ThemeDecoder.decodeTextStyle
  • ThemeDecoder.decodeTooltipTriggerMode

Implementation

static JsonTooltipBuilder? fromDynamic(
  dynamic map, {
  JsonWidgetRegistry? registry,
}) {
  JsonTooltipBuilder? result;
  if (map != null) {
    result = JsonTooltipBuilder(
      decoration: ThemeDecoder.decodeBoxDecoration(map['decoration']),
      enableFeedback: map['enableFeedback'] == null
          ? null
          : JsonClass.parseBool(map['enableFeedback']),
      excludeFromSemantics: map['excludeFromSemantics'] == null
          ? null
          : JsonClass.parseBool(map['excludeFromSemantics']),
      height: JsonClass.parseDouble(map['height']),
      margin: ThemeDecoder.decodeEdgeInsetsGeometry(map['margin']),
      message: map['message']?.toString() ?? '',
      padding: ThemeDecoder.decodeEdgeInsetsGeometry(map['padding']),
      preferBelow: map['preferBelow'] == null
          ? null
          : JsonClass.parseBool(map['preferBelow']),
      richMessage: map['richMessage'],
      showDuration: JsonClass.parseDurationFromMillis(map['showDuration']),
      textStyle: ThemeDecoder.decodeTextStyle(map['textStyle']),
      triggerMode: ThemeDecoder.decodeTooltipTriggerMode(map['triggerMode']),
      verticalOffset: JsonClass.parseDouble(map['verticalOffset']),
      waitDuration: JsonClass.parseDurationFromMillis(map['waitDuration']),
    );
  }

  return result;
}