Введение
Общее описание
Структура приложения
Уроки
Описание библиотеки
Приложения

Приложения

Параметры приложения

Ниже перечислены все парметры приложения со значениями по умолчанию. В комментариях дается описание параметра, если не совсем пончтно его назначение из названия. Значения нужных параметров можно изменить в классе MyParams.

    public int youtubeApiKey = 0;   // id строкового ресурса с youtube Api Key

    public String baseUrl;  // Базовый Url
    public int defaultMethod = ParamModel.GET;  
        // Если в модели не будет указан явно метод, то будет использоваться метод заданный в этом параметре
    public int NETWORK_TIMEOUT_LIMIT = 30000; // milliseconds
    public int RETRY_COUNT = 0; // Сколько будет дополнительных обращений к серверу в случае неудачи
    public ParamModel.TypeParam typeParameterTransfer = ParamModel.TypeParam.NAME;
        // тип передачи параметров в запросе: NAME - пары название - значение после знака "?"
        // SLASH - значения разделенные знаком "/"
    public int LOG_LEVEL = 3;  // 0 - not, 1 - ERROR, 2 - ERROR + URL, 3 - ERROR + URL + jsonResponse
    public static String NAME_LOG_NET = "SMPL_NET";
    public static String NAME_LOG_APP = "SMPL_APP";
    public static String NAME_LOG_DB = "SMPL_DB";
    public int paginationPerPage = 20;  // количество записей на странице (в блоке) при пагинации
    public String paginationNameParamPerPage = "PerPage";   // название ключа заголовка в котором передается paginationPerPage
    public String paginationNameParamNumberPage = "NumberPage"; // название ключа заголовка в котором передается номер страницы
    
    public int errorDialogViewId = 0,
            errorDialogLayoutId = 0,
            errorDialogPositiveId = 0,  // id элемента разметки, который соответствует кнопке Positive
            errorDialogNegativeId = 0;  // id элемента разметки, который соответствует кнопке Negative
    public int progressLayoutId = R.layout.smpl_dialog_progress; // По умолчанию системный прогресс
    
    public String nameTokenInHeader = "";
    public String nameTokenPush = "";
    public String nameTokenPushInHeader = "";

    public String nameLanguageInHeader = "",
            nameLanguageInParam = "",
            initialLanguage = "";

    public String nameVersionInHeader = "",
            valueVersionInHeader = "";

    public int idStringERRORINMESSAGE = 0;
    public int idStringDefaultErrorTitle = 0;
    public int idStringNOCONNECTION_TITLE = 0;
    public int idStringNOCONNECTIONERROR = 0;
    public int idStringTIMEOUT = 0;
    public int idStringSERVERERROR = 0;
    public int idStringJSONSYNTAXERROR = 0;
    public int idStringNO_AUTH = 0;

Обработчики навигатора

В библиотеке декларативного программирования DePro для экранна можно задать навигатор, в котором описываются действия, выполняемые при клике на элементы представления.

.navigator(ViewHandler ... handlers)

Каждый обработчик списка handlers имеет два обязательных параметра: viewId - id элемента представления который к которому прикреплен обработчик и тип действий. Остальные параметры зависят от типа. В описании обработчик задается следующим образом:

handler(int viewId, ViewHandler.TYPE type[, остальные параметры])

В некоторых случаях элемент представления отсутствует, например при клике на itemView в компоненте типа list. В этом случае viewId = 0. Для некоторых часто используемых обработчиков вместо обезличенного названия handler применяется контекстно понятное название. Полный список обработчиков приведен в приложении. В экранах обрабатывается лишь часть из них. Если будут указаны не обрабатываемые, то никаких действий не будет. Ниже приведены обработчики, которые используются с экранами.

back(int viewId)
Осуществляется переход к предыдущему экрану.
exit(int viewId)
Выход из аккаунта (разлогинивается)
finishDialog(@NonNull int titleId, @NonNull int messageId)
Применяется только для активити перед выходом из приложения показывается диалог с текстом messageId (просьба подтвердить выход).
hide(int viewId, int showViewId)
Скрывается элемент представления showViewId.
show(int viewId[, int showViewId[, boolean onActivity]])
Показывается элемент представления showViewId. Параметр onActivity применяется для фрагментов и указывет, что showViewId находится в активити.
showHide(int viewId, int showViewId, int textShowId, int textHideId)
Если showViewId видно, то он показывается, иначе скрывается. textShowId задает какой текст будет показываться в viewId когда showViewId видно, а textHideId когда скрыт.
start([int viewId, ]String screen[, boolean blocked])
start(int viewId, String screen, ViewHandler.TYPE_PARAM_FOR_SCREEN paramForScreen)
start(String screen, ViewHandler.TYPE_PARAM_FOR_SCREEN paramForScreen, int componId)
start([int viewId, ]String screen, ViewHandler.TYPE_PARAM_FOR_SCREEN paramForScreen, ActionsAfterResponse afterResponse)
Разные варианты старта экрана screen. Если paramForScreen = RECORD, то в вызываемый экран будет передана запись, которую библиотека сможет найти. Если paramForScreen = RECORD_COMPONENT, то в вызываемый экран будет передана запись, которую можно получить в компоненте с componId. Параметр afterResponse задает последействие после выхода с экрана screen
keyBack(int viewId)
Только для фрагментов. Указывает действия по аппаратной кнопке Back. Будут выполняться действия предусмотренные для обработчика с viewId

Также можно использовать обезличенные обработчики (handler()) типа CALL_UP - набор номера (ACTION_CALL), DIAL_UP - набор номера (ACTION_DIAL), SET_GLOBAL - установка глобальной переменной, CLICK_VIEW - вызом метода clickView для нестандартной обработки.

Типы обработчиков, используемых только с фрагментами: SET_MENU - для компонента MENU_BOTTOM, который находится в активити, устанавливает заданый пункт меню, SET_MENU_DEF - для компонента MENU_BOTTOM, который находится в активити, устанавливает пункт меню, который был установлен перед этим, OPEN_DRAWER - открывает drawer.

Типы обработчиков, используемых только с активити: SET_LOCALE - устанавливает локаль, RESULT_PARAM - устанавливает значения указанных параметров и выходит из активити с RESULT_OK, RESULT_RECORD - формирует запись, заносит ее в intent и выходит из активити с RESULT_OK.

Формирование записи осужествляется следующим образом. Если обработчик указан в навигаторе компонента, то этот компонент и формирует запись в соответствии с его особенностями. Например, компонент типа RECYCLER будет формировать запись на которой будет выполнен обработчик. Если обработчик указан в навигаторе экрана, то будут возвращаться данные переданные в экран.

Сообщения об ошибках

Практически все сообщения об ошибках содержат в конце название экрана. В списке сообщений, приводимом ниже, текст с названием экрана не указан.

0001 Library is not initialized.
0002 No description of the activity
0003 No screen with name
0004 Нет view для ErrorDialog в
0005 Для SearchComponent не найден RecyclerView в
0006 View для поиска должно быть IComponent или EditText в
0007 Вызывается не определенный фрагмент 
        При создании фрагмента нет mComponent и getLayoutId() = 0, т.е. это ни фрагмент системы, ни кастомный. 
        Скорее всего для PAGER_F указан список фрагментов и хотя бы один из них не описан.
0008 не описан фрагмент .. Если не описан фрагмент, на который есть ссылка в PAGER_F 
0009 Не найден {название элемента разметки} в {название экрана} (No item)
0010 Component {название компонента (его id)} not found in {название экрана}
0011 Нет типа пуша. Пришло сообщение у которого нет типа (параметр с именем push_type) или тип = “”.
0012 ToolBarModify не может быть в активити
0013 ToolBar отсутствует в родительской активити. Во фрагменте есть компонент ToolBarModify, 
            а в родительском активити нет соответствующего  компонента ToolBar.
0014 Нет контейнера фрагментов в
0015 Нижнее меню может быть только в активности
0016 Не установлен маркер для карты в

1001 No data for parameter
1002 Invalid Token  Заносится не правильный токен. Будет занесено “”.
1003 Не определен способ передачи пуш токена на сервер в    // нужно установить значение 
            параметру nameTokenPushInHeader или nameTokenPush

2001 updateRecord failed (Не выполнен SQL запрос)
2002 wrong where (set) parameter

Методы класса MoreWork и интерфейса ICustom

Классы которые имеют интерфейс ICustom или являются наследниками класса MoreWork используется для обработки нестандартных действий на экране. У них одинаковый перечень методов. Перечень методов с пояснениями приведен ниже:

        // Вызывается обработчиком типа CLICK_CUSTOM если нужно выполнить пользовательские действия
    void customClick(int viewId, int position, Record record);
        // Вызывается после связывания данных в адаптере компонента типа list
    void afterBindViewHolder(int viewId, int position, Record record, RecyclerView.ViewHolder holder);
        // Вызывается после получения данных с сервера, но перед началом обработки библиотекой
    void beforeProcessingResponse(Field response, BaseComponent baseComponent);
        // Вызывается обработчиком CLICK_VIEW
    void clickView(View viewClick, View parentView,
                   BaseComponent baseComponent, Record rec, int position);
        // Вызывается методом changeDataBase класса BaseComponent перед вызовом метода changeData компонента
    void changeValue(int viewId, Field field, BaseComponent baseComponent);
        // Вызывается методом changeDataBase класса BaseComponent после вызовом метода changeData компонента
    void afterChangeData(BaseComponent baseComponent);
        // Вызывается обработчиком CLICK_SEND для дополнения записи, которая будет передаваться на сервер необзодимыми полями
    void setPostParam(int viewId, Record rec);


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