set method

  1. @override
dynamic set(
  1. dynamic value, {
  2. bool notify = true,
  3. Observable? setter,
})
override

Implementation

@override
set(dynamic value, {bool notify = true, Observable? setter}) {
  if (this.setter != null) {
    value = this.setter!(value, setter: setter);
  }

  // null value
  if (value == null) {
    _value.clear();
    if (notify != false) notifyListeners();
    return;
  }

  // map
  if (value is Map) {
    _value = [];
    _value.add(value);
    if (notify != false) notifyListeners();
    return;
  }

  // list of values
  if (value is List) {
    _value = value;
    if (notify != false) notifyListeners();
    return;
  }

  // list of values
  if (_value is List<Map>) {
    Binding? binding = Binding.fromString(key);
    for (var map in _value) {
      map[binding?.property] = value.toString();
    }
    if (notify != false) notifyListeners();
    return;
  }

  // single value
  if (value is String) {
    _value.clear();
    var options = value.split(",");
    for (String v in options) {
      if (v.trim() != '') _value.add(v.trim());
    }
    if (notify != false) notifyListeners();
  }
}