onInit method

  1. @override
void onInit()
override

Called immediately after the widget is allocated in memory. You might use this to initialize something for the controller.

Implementation

@override
void onInit() {
  //В случае задания связки мастер-деталь, формируем подписки
  //для автоматического обновлегния данных в slave контроллере,
  //при изменении selectedItem в master контроллере
  if (masterController != null) {
    masterController!.selectedItemChanged.subscribe(masterValueChanged);
    masterController!.itemsRequested.subscribe(masterItemsRequested);
  }
  if (dependsOnControllers != null) {
    for (var element in dependsOnControllers!) {
      element.selectedItemChanged.subscribe(masterValueChanged);
    }
  }
  //Проверяем, есть ли у типа данных, зарегистрированных в контроллере
  //заданное имя поля для задания фильтра по периоду (periodFieldName)
  if (!NsgDataClient.client.isRegistered(dataType)) {
    controllerFilter.isPeriodAllowed = false;
  } else {
    var dataItem = NsgDataClient.client.getNewObject(dataType);
    if (dataItem.periodFieldName.isEmpty) {
      controllerFilter.isPeriodAllowed = false;
    } else {
      controllerFilter.isPeriodAllowed = true;
      controllerFilter.periodFieldName = dataItem.periodFieldName;
    }
  }

  controllerFilter.controller = this;
  userSettingsController ??= NsgUserSettings.controller;

  if (requestOnInit) {
    requestItems();
  } else {
    lateInit = true;
  }

  super.onInit();
}