Добавление действия в раздел
Glossary Item Box
В bpm’online реализована возможность настройки списка действий из стандартного меню [Действия] для выбранных записей реестра раздела.
Список действий раздела представляет собой экземпляр класса Terrasoft.BaseViewModelCollection. Каждый элемент списка действий – это модель представления.
Настройка действия выполняется в конфигурационном объекте, в котором можно как явно задавать свойства модели представления действий, так и использовать базовый механизм привязки.
Базовое наполнение меню [Действия] страницы раздела реализовано в базовом классе раздела BaseSectionV2. Список действий раздела возвращает защищенный виртуальный метод getSectionActions() из схемы BaseSectionV2.
Добавление отдельного действия в коллекцию выполняется вызовом метода addItem(). В качестве параметра ему передается callback-метод getButtonMenuItem(). Метод создает экземпляр модели представления действия по конфигурационному объекту, который передан ему в качестве параметра.
Базовая реализация добавления действия:
/** * Возвращает коллекцию действий раздела в режиме отображения реестра. * @protected * @virtual * @return {Terrasoft.BaseViewModelCollection} Коллекция действий раздела. */ getSectionActions: function() { // Коллекция действий. Экземпляр Terrasoft.BaseViewModelCollection. var actionMenuItems = this.Ext.create("Terrasoft.BaseViewModelCollection"); // Добавления действия в коллекцию. В качестве callback- метода передается метод, // инстанцирующий экземпляр модели действия пр переданному конфигурационному // объекту. actionMenuItems.addItem( this.getButtonMenuItem({ // Конфигурационный объект настройки действия. ... }) ); return actionMenuItems; }
Свойства конфигурационного объекта действия раздела, который передается параметром в метод getButtonMenuItem() представлены в таблице.
Табл. 1. — Свойства конфигурационного объекта
Свойство | Описание |
---|---|
Type |
Тип элемента меню [Действия]. С помощью этого свойства можно добавить в меню действия горизонтальную линию для отделения блоков меню. Для этого в качестве значения свойства нужно указать строку Terrasoft.MenuSeparator. Если значение свойства не указано, то по умолчанию будет добавлен пункт меню. |
Caption | Заголовок пункта меню [Действия]. Для задания заголовков рекомендуется использовать локализуемые строки схемы. |
Click | В этом свойстве выполняется привязка метода-обработчика действия по имени метода. |
Enabled | Логическое свойство, регулирующее доступность пункта меню. |
Visible | Логическое свойство, которое регулирует видимость пункта меню. |
Общий алгоритм добавления пользовательского действия в раздел
- Создать замещающую схему существующего раздела или схему нового раздела.
- Переопределить метод getSectionActions().
- Добавить действие в коллекцию действий методом addItem().
- В callback-метод getButtonMenuItem() передать конфигурационный объект с настройками добавляемого действия.
ВАЖНО При замещении базовых разделов в методе getSectionActions() замещающего модуля, сначала нужно вызвать родительскую реализацию этого метода для инициализации действий родительского раздела. Для этого необходимо выполнить метод this.callParent(arguments), который возвратит коллекцию действий базового раздела. |
Примеры реализации добавления действия
- Как добавить действие раздела: обработка выбора единичной записи
- Как добавить действие раздела: обработка выбора нескольких записей
- Обработка выбора нескольких записей. Примеры