5.5.2.1.1. AppMenu

Компонент AppMenu позволяет динамически управлять элементами главного меню в главном окне приложения.

gui AppMenu

CUBA Studio предоставляет готовый шаблон главного экрана на основе стандартного экрана mainWindow платформы. Шаблон расширяет класс AppMainWindow и обеспечивает прямой доступ к экземпляру компонента AppMenu:

public class ExtAppMainWindow extends AppMainWindow {

    @Override
    public void init(Map<String, Object> params) {
        super.init(params);

        AppMenu.MenuItem item = mainMenu.createMenuItem("shop", "Shop");
        AppMenu.MenuItem subItem = mainMenu.createMenuItem("customer", "Customers", null, menuItem -> {
            showNotification("Customers menu item clicked", NotificationType.HUMANIZED);
        });
        item.addChildItem(subItem);
        mainMenu.addMenuItem(item, 0);
    }
}

Методы интерфейса AppMenu:

  • addMenuItem() - добавляет элемент меню в конец списка элементов или на позицию с указанным индексом.

  • createMenuItem() - фабричный метод для создания нового элемента меню. Не добавляет элемент к меню. id должен быть уникальным внутри всего меню.

  • createSeparator() - создаёт разделитель элементов меню.

  • getMenuItem()/getMenuItemNN() - возвращает объект элемента меню по его идентификатору.

  • getMenuItems() - возвращает список элементов меню.

  • hasMenuItems() - возвращает true, если меню содержит элементы.

Методы интерфейса MenuItem:

  • addChildItem() / removeChildItem() - добавляет/удаляет элемент меню в конец или на указанную позицию в списке дочерних элементов.

  • getCaption() - возвращает строковый заголовок элемента меню.

  • getChildren() - возвращает список дочерних элементов.

  • setCommand() - используется для описания действия, которое должно быть выполнено при выборе этого элемента меню кликом мыши.

  • setDescription() - устанавливает строковое описание элемента меню, отображаемое в виде всплывающей подсказки.

  • setIconFromSet() - устанавливает значок элемента меню.

  • getId() - возвращает идентификатор элемента меню.

  • getMenu() - возвращает родительский экземпляр AppMenu.

  • setStylename() - устанавливает один или более пользовательских стилей для компонента, заменяя все ранее заданные стили. Имена стилей при перечислении отделаются пробелами. Имя стиля должно быть названием существующего CSS-класса.

  • hasChildren() - возвращает true, если у элемента меню есть дочерние элементы.

  • isSeparator() - возвращает true, если элемент является разделителем.

  • setVisible() - управляет видимостью элемента меню.