initState method

  1. @override
void initState()
override

Reads the initial value from owners, detects read-only / nullable flags, and initialises the text controller.

Sets the controller text to '' when owners hold differing values.

Implementation

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

  String? value = '';
  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 = '';
      } else if (property.getValue(obj) != value) {
        value = '';
      }
    }
  }

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

  ted = TextEditingController(text: value);
  //updateItems();
}