NsgDataItemController<T extends NsgDataItem> class
Constructors
-
NsgDataItemController.new({String? widgetId, bool requestOnInit = true, bool useUpdate = true, bool useChange = true, List<String>? builderIDs, NsgBaseController? masterController, NsgDataBinding? dataBindign, bool autoRepeate = false, int autoRepeateCount = 10, bool useDataCache = false, bool selectedMasterRequired = true, bool autoSelectFirstItem = false, List<NsgBaseController>? dependsOnControllers, NsgDataControllerMode? controllerMode})
-
Properties
-
autoRepeate
↔ bool
-
Enable auto repeate attempts of requesting data
getter/setter pairinherited
-
autoRepeateCount
↔ int
-
Set count of attempts of requesting data
getter/setter pairinherited
-
autoSelectFirstItem
↔ bool
-
getter/setter pairinherited
-
backupItem
↔ NsgDataItem?
-
Сохраненный эелемент для возможности возврата предыдущего значения
например, в случае отмены редактирования
getter/setter pairinherited
-
controllerFilter
↔ NsgControllerFilter
-
Фильтр. После изменения необходимо вызвать controllerFilter.refreshControllerWithDelay()
getter/setter pairinherited
-
controllerMode
↔ NsgDataControllerMode
-
getter/setter pairinherited
-
currentItem
↔ T
-
Текущий элемент (например, элемент для отображения на форме элемента)
Представляет из себя типизированный аналой selectedItem.
Если selectedItem null, то вернет пустое значение типа T
getter/setter pairinherited
-
currentStatus
↔ GetStatus<NsgBaseControllerData>
-
Status of last data request operation
getter/setter pairinherited
-
dataBinding
↔ NsgDataBinding?
-
Binding rule
getter/setter pairinherited
-
dataCache
↔ List<NsgDataItem>
-
getter/setter pairinherited
-
dataItemList
↔ List<NsgDataItem>
-
getter/setter pairinherited
-
dataType
↔ Type
-
getter/setter pairinherited
-
dependsOnControllers
↔ List<NsgBaseController>?
-
getter/setter pairinherited
-
editModeAllowed
↔ bool
-
Разрешен переход в режим редактирования
getter/setter pairinherited
-
favorites
→ List<NsgDataItem>
-
finalinherited
-
fieldsWithError
↔ Map<String, String>
-
Map полей с ошибками - имя поля - текст ошибки
getter/setter pairinherited
-
firstItem
→ T
-
Первый элемент из items. Если items пустой: вернет новый пустой элемент данных типа T
no setterinherited
-
getRequestFilter
→ NsgDataRequestParams
-
no setterinherited
-
hashCode
→ int
-
The hash code for this object.
no setterinherited
-
initialized
→ bool
-
Checks whether the controller has already been initialized.
no setterinherited
-
isClosed
→ bool
-
Checks whether the controller has already been closed.
no setterinherited
-
isDisposed
→ bool
-
no setterinherited
-
isFavoritesRequested
↔ bool
-
getter/setter pairinherited
-
isModified
→ bool
-
Возвращает была ли модифицирована текущая строка контроллера после открытии страницы на редактирование
По сути, сравнивает selectedItem и backupItem
no setterinherited
-
items
→ List<T>
-
Массив данный. После того как контроллер переходит в статус successful, данные могут использоваться
Представляет собой типизированный вариант массива dataItemList
no setterinherited
-
itemsRequested
→ Event<EventArgs>
-
finalinherited
-
lateInit
↔ bool
-
Флаг отложенной инициализации. Выставляется в true при создании контроллера,
если свойство requestOnInit стоит false. Сбросится при первом вызове метода
requestItems
getter/setter pairinherited
-
listenersLength
→ int
-
no setterinherited
-
masterController
↔ NsgBaseController?
-
Master controller. Using for binding.
getter/setter pairinherited
-
objectFieldsNames
→ List<String>
-
no setterinherited
-
onRetry
↔ FutureOr<void> Function(Exception)?
-
At every retry the onRetry function will be called (if given). The
function
fn
will be invoked at-most this.attempts
times.
getter/setter pairinherited
-
onSelected
↔ void Function(NsgDataItem)?
-
Событие о выборе значения пользователем. Срабатывает в режиме selection при выборе пользователем элемента в форме списка
getter/setter pairinherited
-
readOnly
↔ bool
-
Запрет редактирования данных пользователей
getter/setter pairinherited
-
recent
↔ List<NsgDataItem>
-
Список часто используемых элементов
getter/setter pairinherited
-
referenceItemPage
↔ List<String>?
-
Список ссылок для догрузки при чтении одного элемента (refreshItem)
getter/setter pairinherited
-
referenceList
↔ List<String>?
-
Список ссылок для догрузки при чтении списка
getter/setter pairinherited
-
regime
↔ NsgControllerRegime
-
Определяет текущий режим работы контроллера
getter/setter pairinherited
-
requestOnInit
↔ bool
-
getter/setter pairinherited
-
retryIf
↔ FutureOr<bool> Function(Exception)?
-
If no retryIf function is given this will retry any for any Exception
thrown. To retry on an Error, the error must be caught and rethrown
as an Exception.
getter/setter pairinherited
-
runtimeType
→ Type
-
A representation of the runtime type of the object.
no setterinherited
-
selectedItem
↔ NsgDataItem?
-
getter/setter pairinherited
-
selectedItemChanged
→ Event<EventArgs>
-
finalinherited
-
selectedMasterRequired
↔ bool
-
getter/setter pairinherited
-
showException
↔ void Function(NsgApiException)?
-
Функция для отображения ошибок пользователю
Если не задана для конкретного контроллера, используется заданная по умолчанию NsgApiException.showExceptionDefault
Последняя, задается в пакете nsg_controls
getter/setter pairinherited
-
showExceptionDialog
↔ bool
-
Показывать диалоговое окно при ошибке, возникшей при itemPagePost
getter/setter pairinherited
-
sorting
↔ NsgSorting
-
Параметры сортировки данных
Устанавляваются компонентами (например, таблицей), передаются в запрос через getRequestFilter
getter/setter pairinherited
-
state
→ NsgBaseControllerData
-
no setterinherited
-
status
↔ GetStatus<NsgBaseControllerData>
-
getter/setter pairinherited
-
statusChanged
→ Event<EventArgs>
-
finalinherited
-
top
↔ int?
-
Номер элемента, начиная с которого возвращать данные
Используется для пейджинга
getter/setter pairinherited
-
totalCount
↔ int?
-
Сколько всего элементов, удовлетворяющим условиям поиска, хранится на сервере
Если значение null, значит не было успешного запроса к серверу, либо, сервер не вернул общее количество элементов
getter/setter pairinherited
-
updateKeys
↔ List<NsgUpdateKey>
-
getter/setter pairinherited
-
useChange
↔ bool
-
Use change method on data update
getter/setter pairinherited
-
useDataCache
↔ bool
-
getter/setter pairinherited
-
userSettingsController
↔ NsgUserSettingsController<NsgDataItem>?
-
Контроллер настроек пользователя. Если задан, используется для хранения и извлечения информации
об избранных элементах и последних используемых
getter/setter pairinherited
-
useUpdate
↔ bool
-
Use update method on data update
getter/setter pairinherited
-
value
↔ NsgBaseControllerData
-
getter/setter pairinherited
-
widgetId
↔ String?
-
getter/setter pair
-
withUi
→ bool
-
no setterinherited
Methods
-
addListener(GetStateUpdate listener)
→ Disposer
-
Register a closure to be called when the object notifies its listeners.
inherited
-
addListenerId(Object? key, GetStateUpdate listener)
→ Disposer
-
inherited
-
addRecent(T item)
→ void
-
Добавить элемент в часто используемые
inherited
-
afterRefreshItem(NsgDataItem item, List<String>? referenceList)
→ Future
-
Вызывается после метода refreshItem.
Можно использовать, например, для обновления связанных контроллеров
inherited
-
afterRequestItems(List<NsgDataItem> newItemsList)
→ Future
-
is calling after new items are got from API before they are placed to ItemList
inherited
-
afterUpdate()
→ Future
-
is calling after new Items are putted in itemList
inherited
-
beginTransaction(NsgDataProvider provider, {int lifespan = 0, NsgCancelToken? cancelToken})
→ Future<String?>
-
inherited
-
canGoNextItem()
→ bool
-
Есть ли в списке элементы после текущего
inherited
-
canGoPrevItem()
→ bool
-
Есть ли в списке элементы до текущего
inherited
-
change(GetStatus<NsgBaseControllerData> status)
→ void
-
inherited
-
commitTransaction(NsgDataProvider provider, String transactionId, {NsgCancelToken? cancelToken})
→ Future<bool?>
-
inherited
-
containsId(Object id)
→ bool
-
inherited
-
containsListener(GetStateUpdate listener)
→ bool
-
inherited
-
copyAndSetItem(NsgDataItem item, {bool needRefreshSelectedItem = false, List<String>? referenceList})
→ Future
-
Перечитать из базы данных item, создать его копию
На время чтерния статус контроллера будет loading
referenceList - ссылки для дочитывания. Если передан null - будут дочитаны все
Одно из применений, перечитывание объекта с целью чтения его табличных частей при переходе из формы списка в форму элемента
inherited
-
createAndSetSelectedItem()
→ Future
-
Создает новый элемент БД и устанавливает его в текущее selectedItem (currentItem)
На время чтерния статус контроллера будет loading
inherited
-
createNewItemAsync()
→ Future<T>
-
Создает новый элемент. Используется, например, при нажатии добавить в форме списка
На время создания (так как оно может быть связано с запросом на сервер) устанавливает статус контроллера в loading
Для непосредственного создания нового элемента вызывает асинхронный метод doCreateNewItem, который может быть перекрыт
для организации бизнес-логики запросов
inherited
-
deleteItem({bool goBack = true})
→ Future
-
Удаляет currentItem в БД и в items
inherited
-
deleteItems(List<NsgDataItem> itemsToDelete)
→ Future
-
Удаляет выбранные элементы в БД и в items
inherited
-
dispose()
→ void
-
inherited
-
disposeId(Object id)
→ void
-
To dispose an
id
from future updates(), this ids are registered
by GetBuilder()
or similar, so is a way to unlink the state change with
the Widget from the Controller.
inherited
-
doCreateNewItem()
→ Future<NsgDataItem>
-
Создает новый элемент. Вызывается из createNewItem
Может быть перекрыт для организации бизнес-логики запросов, например, заполнения нового элемента на сервере
или проверки возможности создания нового элемента
inherited
-
doRequestItems({NsgDataRequestParams? filter})
→ Future<List<NsgDataItem>>
-
inherited
-
filterItems({required List<NsgDataItem> newItemsList, NsgDataRequestParams? filterParam})
→ Future<List<NsgDataItem>>
-
Фильтрует строки из по фильтру добавляет в контроллер
Если фильтр не задан, он будет запрошен у контроллера стандартным способом - через getRequestFilter
Возвращает отфильтрованные и отсортированные данные
inherited
-
futurize(Future<NsgBaseControllerData> body(), {NsgBaseControllerData? initialData, String? errorMessage, bool useEmpty = true})
→ void
-
inherited
-
getDataItemController(String widgetId)
→ NsgDataItemController<T>
-
-
getFavorites()
→ Future<List<NsgDataItem>>
-
Список избранных элементов
inherited
-
getNewInstance()
→ NsgDataItemController<NsgDataItem>
-
Возвращает новый экземпляр контроллера. Обязателен к переопределению
-
getUpdateKey(String id, NsgUpdateKeyType type)
→ NsgUpdateKey
-
inherited
-
gotoNextItem()
→ void
-
Сделать текущим следующий элемент
inherited
-
gotoPrevItem()
→ void
-
Сделать текущим предыдущий элемент
inherited
-
itemCopyPageOpen(NsgDataItem element, String pageName, {bool needRefreshSelectedItem = false, List<String>? referenceList})
→ void
-
Copy item and open item page to view and edit data
element saved in backupItem to have possibility revert changes
referenceList - список полей для дочитывания. null - перечитать все
inherited
-
itemNewPageOpen(String pageName)
→ Future
-
Cоздает новый элемент и открывает страницу для его редактирования
В зависимости от свойства объекта createOnServer создание нового объекта может происходить на сервере
inherited
-
itemPageCancel({bool useValidation = true, required BuildContext context})
→ void
-
Close item page and restore current (selectedItem) item from backup
inherited
-
itemPageCloseCheck(BuildContext context)
→ Future
-
Проверить были ли изменения в объекте, если нет, выполняем Back, если были, то спрашиваем пользователя сохранить изменения или отменить,
а затем выполняем Back
inherited
-
itemPageOpen(NsgDataItem element, String pageName, {bool needRefreshSelectedItem = false, List<String>? referenceList, bool offPage = false})
→ void
-
Open item page to view and edit data
element saved in backupItem to have possibility revert changes
needRefreshSelectedItem - Требуется ли перечитать текущий элемент из БД, например, для чтения табличных частей
inherited
-
itemPagePost({bool goBack = true, bool useValidation = true})
→ Future<bool>
-
Close item page and post current (selectedItem) item to databese (server)
если goBack == true (по умолчанию), после сохранения элемента, будет выполнен переход назад
useValidation == true перед сохранением проводится валидация
В случае успешного сохранения возвращает true
inherited
-
itemsRemove(List<NsgDataItem> itemsToRemove)
→ Future
-
Удаление текущего элемента
если goBack == true (по умолчанию), после сохранения элемента, будет выполнен переход назад
Удаление массива строк из табличной части
На данный момент, метод реализован только для контроллера табличной части
inherited
-
listPageOpen(String pageName, {bool needRefreshItems = false, bool offPage = false})
→ void
-
Open list page to view data in controller.items
override
-
listPageOpenDataItem(String pageName, {required String widgetId, bool needRefreshItems = false, bool offPage = false})
→ void
-
-
loadFavorites(NsgUserSettingsController<NsgDataItem> userSetiingsController, List<String> ids)
→ Future<List<NsgDataItem>>
-
inherited
-
loadProviderData()
→ Future
-
Метод, вызываемый при инициализации provider (загрузка приложения)
inherited
-
masterItemsRequested(EventArgs? args)
→ void
-
inherited
-
masterValueChanged(EventArgs? args)
→ void
-
inherited
-
matchFilter(NsgDataItem item)
→ bool
-
Проверяем, удовлетворяет ли заданный элемент фильтру контроллера
inherited
-
newItemPageOpen({required String pageName, bool offPage = false})
→ void
-
Create new item and open page to view and edit it
pageName - страница, которую необходимо открыть по окончанию создания нового элемента
inherited
-
noSuchMethod(Invocation invocation)
→ dynamic
-
Invoked when a nonexistent method or property is accessed.
inherited
-
notifyGroupChildrens(Object id)
→ void
-
inherited
-
obx(NotifierBuilder<NsgBaseControllerData?> widget, {Widget onError(String? error)?, Widget? onLoading, Widget? onEmpty, bool needProgressBar = true})
→ Widget
-
inherited
-
obxBase(Widget widget(NsgBaseControllerData?), {Widget onError(String? error)?, Widget? onLoading, Widget? onEmpty})
→ Widget
-
inherited
-
onClose()
→ void
-
Called before onDelete method. onClose might be used to
dispose resources used by the controller. Like closing events,
or streams before the controller is destroyed.
Or dispose objects that can potentially create some memory leaks,
like TextEditingControllers, AnimationControllers.
Might be useful as well to persist some data on disk.
inherited
-
onDelete()
→ void
-
inherited
-
onInit()
→ void
-
Called immediately after the widget is allocated in memory.
You might use this to initialize something for the controller.
inherited
-
onReady()
→ void
-
Called 1 frame after onInit(). It is the perfect place to enter
navigation events, like snackbar, dialogs, or a new route, or
async request.
inherited
-
onStart()
→ void
-
Called at the exact moment the widget is allocated in memory.
It uses an internal "callable" type, to avoid any @overrides in subclasses.
This method should be internal and is required to define the
lifetime cycle of the subclass.
inherited
-
postItemQueue(NsgDataItem obj, {dynamic errorObjects(List<NsgDataItem> errorObjects)?, dynamic postedObjects(List<NsgDataItem> postedObjects)?})
→ Future
-
Поставить в очередь на сохранение, чтобы избезать параллельного сохранения
Уменьшив таким образом нагрузку на сервер и избежать коллизий
inherited
-
postItems(List<NsgDataItem> itemsToPost, {bool showProgress = false})
→ Future
-
inherited
-
postSelectedItem()
→ Future
-
Post selected item to the server
inherited
-
refresh()
→ void
-
inherited
-
refreshCurrentItem({List<String>? referenceList})
→ Future<NsgDataItem>
-
inherited
-
refreshData({List<NsgUpdateKey>? keys, NsgDataRequestParams? filter})
→ Future
-
Обновление данных
inherited
-
refreshGroup(Object id)
→ void
-
inherited
-
refreshItem(NsgDataItem item, List<String>? referenceList, {bool changeStatus = false})
→ Future<NsgDataItem>
-
Перечитать указанный объект из базы данных
item - перечитываемый объект
referenceList - ссылки для дочитывания. Если передан null - будут дочитаны все
Одно из применений, перечитывание объекта с целью чтения его табличных частей при переходе из формы списка в форму элемента
changeStatus - выставить статус контроллера в success после обновления элемента
inherited
-
registerUpdateKey(NsgUpdateKey updateKey)
→ void
-
inherited
-
removeDataItemController(String widgetId)
→ void
-
-
removeListener(VoidCallback listener)
→ void
-
Remove a previously registered closure from the list of closures that the
object notifies.
inherited
-
removeListenerId(Object id, VoidCallback listener)
→ void
-
inherited
-
reportAdd(VoidCallback disposer)
→ void
-
inherited
-
reportRead()
→ void
-
inherited
-
requestItems({List<NsgUpdateKey>? keys, NsgDataRequestParams? filter})
→ Future
-
Request Items
inherited
-
retryRequestIf(Exception exception)
→ FutureOr<bool>
-
inherited
-
rollbackTransaction(NsgDataProvider provider, String transactionId, {NsgCancelToken? cancelToken})
→ Future<bool?>
-
inherited
-
saveBackup(NsgDataItem item)
→ dynamic
-
inherited
-
selectItems(NsgDataRequestParams filter, {int autoRepeateCount = 3, List<String>? loadReference, NsgCancelToken? cancelToken})
→ Future<List<T>>
-
inherited
-
sendNotify({List<NsgUpdateKey>? keys})
→ void
-
Отправить сообщение о необходимоси обновления
Если передан список ключей, то обновление будет дано только для них
inherited
-
setAndRefreshSelectedItem(NsgDataItem item, List<String>? referenceList)
→ Future
-
Перечитать из базы данных текущий объект (selectedItem)
На время чтерния статус контроллера будет loading
referenceList - ссылки для дочитывания. Если передан null - будут дочитаны все
Одно из применений, перечитывание объекта с целью чтения его табличных частей при переходе из формы списка в форму элемента
inherited
-
setEmpty()
→ void
-
inherited
-
setError(Object error)
→ void
-
inherited
-
setLoading()
→ void
-
inherited
-
setSuccess(NsgBaseControllerData data)
→ void
-
inherited
-
sortDataItemList()
→ void
-
Сортирует данные в массиве самого контроллера
inherited
-
sortItemList(List<NsgDataItem> newItemsList, String sortingString)
→ void
-
Сортирует данные в массиве элементов
При сортировке приоритет отдается параметру sorting. Если он не задан, будет использован sortingString
sortingString обычно беретсчя из getRequestFilter.sorting
inherited
-
toggleFavorite(T item)
→ void
-
Добавить элемент в избранное
inherited
-
toString()
→ String
-
A string representation of this object.
inherited
-
unregisterUpdateKey(NsgUpdateKey updateKey)
→ void
-
inherited
-
update([List<Object>? ids, bool condition = true])
→ void
-
Rebuilds
GetBuilder
each time you call update()
;
Can take a List of ids
, that will only update the matching
GetBuilder( id: )
,
ids
can be reused among GetBuilders
like group tags.
The update will only notify the Widgets, if condition
is true.
inherited