Отображение опций в меню или на панели опций

Опцию записи можно разместить на панели опций, в меню опций и в контекстном меню. Меню опций открывается при клике левой кнопки мыши по кнопке вызова меню, а контекстное меню — при клике правой кнопки мыши в произвольном месте элемента.

Отображение опции записи задаётся в свойстве showType. Ниже приведены возможные значения свойства:

  • showType.MENU — опция отображается в меню опций и в контекстном меню. Значение по умолчанию.
  • showType.MENU_TOOLBAR — опция отображается в меню опций и в контекстном меню, а также на панели опций.
  • showType.TOOLBAR — опция отображается только на панели опций.

Значения перечисленных выше констант следует брать из Controls/toolbars:showType.

Пример
Исходный код

В следующем примере опции записи отображаются только на панели опций.

<!-- WML -->
<Controls.list:View
   source="{{_source}}"
   itemActions="{{_itemActions}}"/>
// TypeScript
import {showType} from 'Controls/toolbars';
...
 
protected _itemActions: IItemAction[];
   
protected _beforeMount: void() {
    this._itemActions = [{ id: 1, title: 'Прочитано', showType: showType.TOOLBAR }]
}

Поддержка иерархии

В меню опций записи можно оформить подменю. Для этого необходимо в конфигурации опций записи установить свойства parent и parent@.

В свойстве parent задают идентификатор родительской опции. Когда задано значение null, опция будет расположена в основном меню (корень иерархии).

В свойстве parent@ задают тип опции:

  • Для значения true отображается как узел (есть иконка подменю), при клике по которому происходит событие actionClick. Если из обработчика события вернуть false, то меню не закрывается. В любом другом случае меню закрывается.
  • Для значений false и null отображается как лист, при клике по которому происходит событие actionClick.

В следующем примере в меню есть пункт "Edit film" с вложенным подменю, в котором находится пункт "Edit description".

// TypeScript
protected _itemActions: IItemAction[];
 
protected _beforeMount: void() {
    this._itemActions = [
        {
            id: 'film',
            title: 'Edit film',
            showType: showType.MENU,
            parent: null,
            'parent@': true
        },
        {
            id: 'description',
            title: 'Edit description',
            showType: showType.MENU,
            parent: ' film',
            'parent@': null
        }
    ]
}