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>",
  "onTriggered": "<TooltipTriggeredCallback>",
  "padding": "<EdgeInsetsGeometry>",
  "preferBelow": "<bool>",
  "richMessage": "<InlineSpan>",
  "showDuration": "<Duration>",
  "textAlign": "<TextAlign>",
  "textStyle": "<TextStyle>",
  "triggerMode": "<bool>",
  "verticalOffset": "<double>",
  "waitDuration": "<Duration>"
}

See also:

  • JsonClass.maybeParseDurationFromMillis
  • ThemeDecoder.decodeBoxDecoration
  • ThemeDecoder.decodeEdgeInsetsGeometry
  • ThemeDecoder.decodeTextAlign
  • ThemeDecoder.decodeTextStyle
  • ThemeDecoder.decodeTooltipTriggerMode

Implementation

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

  return result;
}