Базовые ------- Модель поведения и отображения каждого компонента определяеются описанием, которое содержится в форме Описание компонентов имеют базовые свойства, присутствующие у всех компонентов, а так же специфические для каждого типа *Базовое описание компонента выглядит следующим образом* .. code-block:: js { "id": "person", // идентификатор компонента "type": "type", // тип компонента "style": { // стиль компонента "align": "center", "font": "Courier New", "fontsize": "12", "bold": true, "italic": false, "underline": false, "strike": false, "height": "20", "width": "200" }, "config": { // конфигурация компонента "read-only": true, // заблокировать от изменений пользователем "script": "model.setValue('1');" // скрипт компонента }, "required": true, // обязательное поле "data": { // дефолтные данные компонента "id": "person", "type": "type", "value": "Дефолтное значение" } } ------------------------------------------------------------------------------ .. js:class:: AS.FORMS.Model Базовая модель для всех компонентов **Типы событий** каждый компонент может добавлять свои специфичные типы событий *valueChange* - событие изменения значения компонента, функция обратного вызова принимает следующие параметры Object event: возникшее событие :js:class:`AS.FORMS.Model` model: модель *markInvalid* - пометить значение компонента как не валидное, функция обратного вызова принимает следующие параметры Object event: возникшее событие :js:class:`AS.FORMS.Model` model: модель *unmarkInvalid* - пометить значение компонента как валидное, функция обратного вызова принимает следующие параметры Object event: возникшее событие :js:class:`AS.FORMS.Model` model: модель *modelDestroyed* - событие уничтожения модели компонента, функция обратного вызова принимает следующие параметры Object event: возникшее событие .. js:function:: trigger(eventType[, args]) Инициировать событие :param String eventType: тип события :param Array args: аргументы, которые будут переданы в callback .. js:function:: on(eventType, callback) подписаться на событие :param String eventType: тип события :param Function callback: функция обратного вызова (количество принимаемых аргументов засивит от события) .. js:function:: off(eventType, callback) отписаться от события :param String eventType: тип события :param Function callback: функция обратного вызова .. js:data:: asfProperty Определение компонента из описания формы .. js:data:: playerModel Модель проигрывателя .. js:function:: fireChangeEvents() Вызов событий изменения значения формы .. js:function:: isEmpty() :returns: true: Значение компонента не задано false: Значение компонента задано .. js:function:: setValue(newValue) Вставить новое значение и отправить уведомление всем подписанным объектам, в т.ч. отображению :param Object newValue: Значение компонента (Тип ринимаемого значения зафимит от компонента) .. js:function:: getErrors() Получение ошибок заполнения поля согласно настройкам ``asfProperty`` Если компоненту необходимо возвращать свои специфические ошибки, то реализуйте в модели компонента метод ``getSpecialErrors``. Метод должен возвращать список специфических ошибок в том же формате, что и данный метод :returns: ``[object]`` Если массив пустой, значит ошибки отсутствуют, иначе - его элементы имеют поля: * ``errorCode`` - код ошибки; * ``id`` - идентификатор компонента. Возможные коды ошибок: * ``emptyValue`` * ``wrongValue`` * ``deletedValue`` * ``valueTooHigh`` * ``valueTooSmall`` Для одного и того же компонента может быть как несколько ошибок, так может и не быть ни одной. .. js:function:: getLocale() Получение локали, настроенной в компоненте :returns: ``String`` Локаль компонента или :js:data:`AS.FORMS.OPTIONS`.locale .. js:function:: getHTMLValue() :returns: ``String`` HTML-представлениe текстового значения поля со стилями .. js:function:: getValue() :returns: ``String`` значение компонента (тип возвращаемого значения зависит от типа компонента) .. js:function:: getTextValue() :returns: ``String`` текстовое значение компонента .. js:function:: getAsfData([blockNumber]) :param Number blockNumber: Номер строки динамической таблицы (если это компонент статической таблицы, то передавать эту переменную не нужно) :returns: ``asfData`` Данные компонента .. js:function:: setAsfData(asfData) Вставить значение `asfData` :param asfData asfData: Данные компонента ------------------------------------------------------------------------------ .. js:class:: AS.FORMS.View Базовое отображение всех компонентов. .. js:data:: model Модель. Наследует AS.FORMS.Model .. js:data:: container Контейнер, в котором будет отрисовываться отображение .. js:data:: input Поле ввода для некоторых компонентов: * текстовое поле * числовое поле * многострочный текст .. js:data:: playerView Отображение проигрывателя .. js:function:: unmarkInvalid() Убрать пометку неправильно заполненного поля .. js:function:: markInvalid() Пометить поле как неправильно заполненное .. js:function:: checkValid() Проверить корректность текущего значения (если поле заполнено неверно, то вызовется метод markInvalid) .. js:function:: setEnabled(enabled) Сделать доступным или недоступным для редактирования :param boolean enabled: true/false .. js:function:: setVisible(visible) Сделать видимым или невидимым :param boolean visible: true/false .. js:function:: updateValueFromModel() Обновить отображение согласно значению модели