initState method

  1. @override
void initState()
override

Reads the initial value from owners and detects read-only / nullable flags.

Sets value to null when owners disagree to indicate a mixed state.

Implementation

@override
void initState() {
  super.initState();

  for (var owner in widget.owners) {
    var property = owner.getProperty(widget.propertyName);
    if (property != null && property.readOnly) {
      readOnlyProperty = true;
    }
    if (property != null && property.nullable) {
      nullable = true;
    }
  }

  if (widget.owners.isNotEmpty) {
    var property = widget.owners[0].getProperty(widget.propertyName);
    if (property != null) {
      value = property.getValue(widget.owners[0]);
    }
    for (int a = 1; a < widget.owners.length; a++) {
      var obj = widget.owners[a];
      var property = obj.getProperty(widget.propertyName);
      if (property == null) {
        value = null;
      } else if (property.getValue(obj) != value) {
        value = null;
      }
    }
  }
}