decodeMaterialStatePropertyOutlinedBorder static method
MaterialStateProperty<OutlinedBorder?> ?
decodeMaterialStatePropertyOutlinedBorder(
- dynamic value, {
- bool validate = true,
Decodes a value
into a OutlinedBorder based MaterialStateProperty.
This accepts a OutlinedBorder or a String which will be resolved for
all states.
Alternatively, if the value
is a Map then this expects the following
format:
{
"disabled": <OutlinedBorder>,
"dragged": <OutlinedBorder>,
"empty": <OutlinedBorder>,
"error": <OutlinedBorder>,
"focused": <OutlinedBorder>,
"hovered": <OutlinedBorder>,
"pressed": <OutlinedBorder>,
"scrolledUnder": <OutlinedBorder>,
"selected": <OutlinedBorder>
}
See also:
Implementation
static MaterialStateProperty<OutlinedBorder?>?
decodeMaterialStatePropertyOutlinedBorder(
dynamic value, {
bool validate = true,
}) {
MaterialStateProperty<OutlinedBorder?>? result;
if (value is MaterialStateProperty<OutlinedBorder?>) {
result = value;
} else if (value != null) {
if (value is OutlinedBorder) {
result = MaterialStateProperty.all<OutlinedBorder?>(value);
} else if (value is String) {
result = MaterialStateProperty.all<OutlinedBorder?>(
decodeOutlinedBorder(value),
);
} else if (value is Map) {
var testValues = [
'disabled',
'dragged',
'empty',
'error',
'focused',
'hovered',
'pressed',
'scrolledUnder',
'selected',
];
var isMsp = false;
for (var key in value.keys) {
if (testValues.contains(key)) {
isMsp = true;
break;
}
}
if (isMsp != true) {
result = MaterialStateProperty.all<OutlinedBorder?>(
decodeOutlinedBorder(value),
);
} else {
assert(SchemaValidator.validate(
schemaId: '$_baseSchemaUrl/material_state_property_outlined_border',
value: value,
validate: validate,
));
result = MaterialStateProperty.resolveWith((states) {
OutlinedBorder? result;
if (states.contains(MaterialState.disabled)) {
result = decodeOutlinedBorder(value['disabled']);
} else if (states.contains(MaterialState.dragged)) {
result = decodeOutlinedBorder(value['dragged']);
} else if (states.contains(MaterialState.error)) {
result = decodeOutlinedBorder(value['error']);
} else if (states.contains(MaterialState.focused)) {
result = decodeOutlinedBorder(value['focused']);
} else if (states.contains(MaterialState.hovered)) {
result = decodeOutlinedBorder(value['hovered']);
} else if (states.contains(MaterialState.pressed)) {
result = decodeOutlinedBorder(value['pressed']);
} else if (states.contains(MaterialState.scrolledUnder)) {
result = decodeOutlinedBorder(value['scrolledUnder']);
} else if (states.contains(MaterialState.selected)) {
result = decodeOutlinedBorder(value['selected']);
} else {
result = decodeOutlinedBorder(value['empty']);
}
return result;
});
}
} else {
result = MaterialStateProperty.all<OutlinedBorder?>(value);
}
}
return result;
}