processEvent method
void
processEvent(
- TDataEvent event,
- dynamic info
)
Implementation
void processEvent(TDataEvent event, dynamic info) {
const onDataChangeEvents = {
TDataEvent.deRecordChange,
TDataEvent.deDataSetChange,
TDataEvent.deDataSetScroll,
TDataEvent.deLayoutChange,
TDataEvent.deUpdateState,
};
bool needDataChange;
// Special UpdateState handling. (original comment kept as-is)
if (event == TDataEvent.deUpdateState) {
needDataChange = _state == TDataSetState.dsInactive;
final lastState = _state;
if (_dataSet != null) {
_state = _dataSet!.state;
} else {
_state = TDataSetState.dsInactive;
}
// Don't do events if nothing changed. (original comment kept as-is)
if (_state == lastState) return;
} else {
needDataChange = true;
}
if (event != TDataEvent.deUpdateState &&
_state == TDataSetState.dsInactive) {
return;
}
distributeEvent(event, info);
// Extra handlers (original comment kept as-is)
if (!componentState.contains(TComponentStateItem.csDestroying)) {
if (event == TDataEvent.deUpdateState) {
doStateChange();
}
if (onDataChangeEvents.contains(event) && needDataChange) {
doDataChange(null);
}
if (event == TDataEvent.deFieldChange) {
doDataChange(info is TField ? info : null);
}
if (event == TDataEvent.deUpdateRecord) {
doUpdateData();
}
}
}