Введение
Общее описание
Структура приложения
Уроки
Описание библиотеки
Внутренние данные библиотеки
Связывание данных
Экраны
Компоненты
Общая характеристика
Экраны и компоненты
Модель
Представление
Navigator
componentBarcode
calendar
drawer
enabled
fragmentsContainer
componentDateDiapason
componentIntro
componentMap
menu
menuBottom
componentModel
компонент типа PAGER
компонент типа PANEL
компонент типа PANEL_ENTER
componentPhoto
plusMinus
componentRecognizeVoice
компонент типа RECYCLER
componentSearch
componentSequence
компонент типа SPINNER
componentSubscribe
switchComponent
componentTotal
componentYoutube
Навигация в DePro
Взаимодействие с сервером
Работа с базой данных
Общая информация
Методы
Пуш уведомления
Общая информация
Работа с пушами в DePro
pushNavigator и обработчики
Взаимодействие с сервером
Анимация в DePro
Диалоги
Дополнительные элементы разметки
Общая информация
Calendar
DateDiapason
DrumPicker
ComponEditText
EditTextMask
Gallery
ComponList
PagerIndicator
SheetBottom
ComponSwitch
ComponTextView
Дополнительный материал
Кастомный функционал
Поддержка нескольких языков
Особенности авторизации
Валидация перед отправкой на сервер
Приложения

Внутренние данные библиотеки

В библиотеке декларативного программирования DePro непосредственно с данными программист не работает, за исключением кастомного функционала. Но при изучении приведенного ниже материала желательны общие знания о данных. Поэтому обобщенно опишем их.

Минимальной единицей данных является поле (класс библиотеки - Field). Поле характеризуется названием, типом и значением. В библиотеке используются следующие контекстно понятные простые типы: TYPE_STRING, TYPE_INTEGER, TYPE_LONG, TYPE_FLOAT, TYPE_DOUBLE, TYPE_BOOLEAN, TYPE_FILE_PATH. Тип TYPE_FILE_PATH используется для хранения адреса изображений (фото, галерея, ...). А также агрегатные типы: TYPE_RECORD, TYPE_LIST_RECORD и TYPE_LIST_FIELD.

Совокупность полей разного типы образуют данные типа TYPE_RECORD - запись (Record). Данный тип, в некотором смысле, подобен классу JSONObject. Record имеет методы чтения полей по имени: getField(String name). Можно также читать значения полей с преобразованием типов, например, getDouble(String name) вернет значение поля с типом Double не зависимо от типа поля с этим наименованием.

Список записей образуют данные типа TYPE_LIST_RECORD - список (ListRecords extends ArrayList<Record>)

Список одинаковых полей образуют тип TYPE_LIST_FIELD - список (ListFields extends ArrayList<Field>)

Модель всегда, не зависимо от источника данных, возвращает безимянный Field (имя = "") значением которого будут данные с типом полученным от источника.

В библиотеке имеются глобальные переменные. Они характеризуются именем переменной и ее значением. Имеются следующие типы глобальных переменных: параметры, пользовательские переменные и системные переменные.

Примером глобальных переменных типа "параметр" можно рассматривать обычные параметры в запросах к серверу. Название любого из параметров должно совпадать с названием какого нибудь поля в данных, получаемых по модели. В программе пишется только наименование параметра, а их значение, в частности в запросах, устанавливаются автоматически. Для этого имеется список параметров, который формируется при инициализации. Значения переменных в этом списке изменяются динамически. Например, при клике на какой нибудь элемент прокручиваемого списка значения параметров будут оновлены в соответствии со значениями записи этого элемента.

Пользовательские переменные устанавливаются обработчиком навигатора с типом SET_GLOBAL и указанием имени переменной. А для получения их значений в модели нужно задать метод GLOBAL и указать имя переменной.

В библиотеке имеются системные глобальные переменные: PROFILE - профиль, установить значение метод setProfile(), получить значение через модель с методом PROFILE. Для всех компонентов у которых модель с методом PROFILE после выполнения setProfile() будет обновлено значение и вид представления. Метод setProfile доступен только в секции after модели; TOKEN - токен, установить значение метод setToken(), который также доступен только в секции after, получать значение не предусматривается; LOCALE - локаль, работа с локалью описана ниже в разделе "Дополнительный материал".

Лучше пакета DePro может быть только искусственный интеллект
Задать вопрос
Отправить вопрос