Элементы управления — это объекты, используемые для организации интерфейса между пользователем и приложением. Как правило, они отображаются в навигационных панелях, диалоговых окнах и на панелях инструментов. К ним относятся кнопки, признаки (флажки), поля и т. д.
Все элементы управления наследуются от класса Terrasoft.Component (полное имя — Terrasoft.controls.Component), который, в свою очередь, наследуется от Terrasoft.BaseObject. Благодаря тому, что в родительском классе (Component) объявлен миксин Bindable, имеется возможность связывания свойств элемента управления с требуемыми свойствами, методами или атрибутами модели представления.
В элементе управления объявляются события, необходимые для корректной работы. Также каждый элемент содержит в себе события, унаследованные от класса Terrasoft.Component:
- added — срабатывает после того, как компонент был добавлен в контейнер.
- afterrender — срабатывает после того, как компонент был отрендерен и его HTML-представление попало в DOM.
- afterrerender — срабатывает после того, как компонент отрабатывает ререндеринг и его HTML представление обновилось в DOM.
- beforererender — срабатывает перед тем, как компонент был отрендерен и его HTML представление попало в DOM.
- destroy — срабатывает перед окончательным уничтожением элемента управления.
- destroyed — срабатывает после удаления компонента.
- init — срабатывает, когда инициализация компонента завершена.
Подробнее о событиях класса Terrasoft.Component можно узнать из библиотеки классов клиентской части ядра платформы.
Также элемент управления может подписываться на события браузера и определять свои собственные события.
Элемент управления определяется в массиве модификаций diff модуля, в котором его необходимо расположить.
Внешний вид элемента управления определяется шаблоном (template <tpl>). Во время рендеринга элемента управления в представление страницы генерация представления элемента выполняется согласно заданному шаблону.
Элемент управления не должен иметь никакой бизнес логики — она определяется в модуле, в который добавляется элемент управления.
Элемент управления имеет атрибуты styles, selectors, которые определены в классе-родителе Terrasoft.Component. Эти атрибуты предоставляют возможность гибкой настройки стилей.