fromDynamic static method
Builds the builder from a Map-like dynamic structure. This expects the JSON format to be of the following structure:
{
"attributedDecreasedValue": "<AttributedString>",
"attributedHint": "<AttributedString>",
"attributedIncreasedValue": "<AttributedString>",
"attributedLabel": "<AttributedString>",
"attributedValue": "<AttributedString>",
"customSemanticsActions": "<Map<CustomSemanticsAction, VoidCallback>>",
"button": "<bool>",
"checked": "<bool>",
"container": "<bool>",
"currentValueLength": "<int>",
"decreasedValue": "<String>",
"enabled": "<bool>",
"excludeSemantics": "<bool>",
"explicitChildNodes": "<bool>",
"focusable": "<bool>",
"focused": "<bool>",
"header": "<bool>",
"hidden": "<bool>",
"hint": "<String>",
"image": "<bool>",
"inMutuallyExclusiveGroup": "<bool>",
"increasedValue": "<String>",
"keyboardKey": "<bool>",
"label": "<String>",
"link": "<bool>",
"liveRegion": "<bool>",
"maxValueLength": "<int>",
"mixed": "<bool>",
"multiline": "<bool>",
"namesRoute": "<bool>",
"obscured": "<bool>",
"onCopy": "<VoidCallback>",
"onCut": "<VoidCallback>",
"onDecrease": "<VoidCallback>",
"onDidGainAccessibilityFocus": "<VoidCallback>",
"onDidLoseAccessibilityFocus": "<VoidCallback>",
"onDismiss": "<VoidCallback>",
"onIncrease": "<VoidCallback>",
"onLongPress": "<VoidCallback>",
"onLongPressHint": "<String>",
"onMoveCursorBackwardByCharacter": "<ValueChaned<bool>>",
"onMoveCursorForwardByCharacter": "<ValueChanged<bool>>",
"onPaste": "<VoidCallback>",
"onScrollDown": "<VoidCallback>",
"onScrollLeft": "<VoidCallback>",
"onScrollRight": "<VoidCallback>",
"onScrollUp": "<VoidCallback>",
"onSetSelection": "<ValueChanged<TextSelection>>",
"onSetText": "<ValueChanged<String>>",
"onTap": "<VoidCallback>",
"onTapHint": "<String>",
"readOnly": "<bool>",
"scopesRoute": "<bool>",
"selected": "<bool>",
"slider": "<bool>",
"sortKey": "<OrdinalSortKey>",
"tagForChildren": "<SemanticsTag>",
"textDirection": "<TextDirection>",
"textField": "<bool>",
"toggled": "<bool>",
"tooltip": "<String>",
"value": "<String>"
}
Implementation
static JsonSemanticsBuilder? fromDynamic(
dynamic map, {
JsonWidgetRegistry? registry,
}) {
JsonSemanticsBuilder? result;
if (map != null) {
result = JsonSemanticsBuilder(
button:
map['button'] == null ? null : JsonClass.parseBool(map['button']),
checked:
map['checked'] == null ? null : JsonClass.parseBool(map['checked']),
container: JsonClass.parseBool(map['container']),
currentValueLength: JsonClass.maybeParseInt(map['currentValueLength']),
decreasedValue: map['decreasedValue'],
enabled:
map['enabled'] == null ? null : JsonClass.parseBool(map['enabled']),
excludeSemantics: JsonClass.parseBool(map['excludeSemantics']),
explicitChildNodes: JsonClass.parseBool(map['explicitChildNodes']),
focusable: map['focusable'] == null
? null
: JsonClass.parseBool(map['focusable']),
focused:
map['focused'] == null ? null : JsonClass.parseBool(map['focused']),
header:
map['header'] == null ? null : JsonClass.parseBool(map['header']),
hidden:
map['hidden'] == null ? null : JsonClass.parseBool(map['hidden']),
hint: map['hint'],
image: map['image'] == null ? null : JsonClass.parseBool(map['image']),
inMutuallyExclusiveGroup:
JsonClass.parseBool(map['inMutuallyExclusiveGroup']),
increasedValue: map['increasedValue'],
keyboardKey: map['keyboardKey'] == null
? null
: JsonClass.parseBool(map['keyboardKey']),
label: map['label'],
link: map['link'] == null ? null : JsonClass.parseBool(map['link']),
liveRegion: map['liveRegion'] == null
? null
: JsonClass.parseBool(map['liveRegion']),
maxValueLength: map['maxValueLength'] == null
? null
: JsonClass.maybeParseInt(map['maxValueLength']),
mixed: map['mixed'] == null ? null : JsonClass.parseBool(map['mixed']),
multiline: map['multiline'] == null
? null
: JsonClass.parseBool(map['multiline']),
namesRoute: map['namesRoute'] == null
? null
: JsonClass.parseBool(map['namesRoute']),
obscured: map['obscured'] == null
? null
: JsonClass.parseBool(map['obscured']),
onCopy: map['onCopy'],
onCut: map['onCut'],
onDecrease: map['onDecrease'],
onDidGainAccessibilityFocus: map['onDidGainAccessibilityFocus'],
onDidLoseAccessibilityFocus: map['onDidLoseAccessibilityFocus'],
onDismiss: map['onDismiss'],
onIncrease: map['onIncrease'],
onLongPress: map['onLongPress'],
onLongPressHint: map['onLongPressHint'],
onMoveCursorBackwardByCharacter: map['onMoveCursorBackwardByCharacter'],
onMoveCursorForwardByCharacter: map['onMoveCursorForwardByCharacter'],
onPaste: map['onPaste'],
onScrollDown: map['onScrollDown'],
onScrollLeft: map['onScrollLeft'],
onScrollRight: map['onScrollRight'],
onScrollUp: map['onScrollUp'],
onSetSelection: map['onSetSelection'],
onSetText: map['onSetText'],
onTap: map['onTap'],
onTapHint: map['onTapHint'],
readOnly: map['readOnly'] == null
? null
: JsonClass.parseBool(map['readOnly']),
scopesRoute: map['scopesRoute'] == null
? null
: JsonClass.parseBool(map['scopesRoute']),
selected: map['selected'] == null
? null
: JsonClass.parseBool(map['selected']),
slider:
map['slider'] == null ? null : JsonClass.parseBool(map['slider']),
sortKey: ThemeDecoder.decodeOrdinalSortKey(
map['sortKey'],
validate: false,
),
tagForChildren: ThemeDecoder.decodeSemanticsTag(
map['tagForChildren'],
validate: false,
),
textDirection: ThemeDecoder.decodeTextDirection(
map['textDirection'],
validate: false,
),
textField: map['textField'] == null
? null
: JsonClass.parseBool(map['textField']),
toggled:
map['toggled'] == null ? null : JsonClass.parseBool(map['toggled']),
tooltip: map['tooltip'],
value: map['value'],
);
}
return result;
}