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>,
"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>,
"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.parseInt(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.parseInt(map['maxValueLength']),
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']),
tagForChildren: ThemeDecoder.decodeSemanticsTag(map['tagForChildren']),
textDirection: ThemeDecoder.decodeTextDirection(map['textDirection']),
textField: map['textField'] == null
? null
: JsonClass.parseBool(map['textField']),
toggled:
map['toggled'] == null ? null : JsonClass.parseBool(map['toggled']),
value: map['value'],
);
}
return result;
}