3.5.2.1.1. AppMenu
Компонент AppMenu позволяет динамически управлять элементами главного меню в главном экране приложения.
 
  CUBA Studio предоставляет готовые шаблоны главного экрана на основе стандартного экрана MainScreen платформы. В примере ниже приведён шаблон, расширяющий класс MainScreen и обеспечивающий прямой доступ к экземпляру компонента AppMenu:
public class ExtMainScreen extends MainScreen implements Window.HasFoldersPane {
    @Inject
    private Notifications notifications;
    @Inject
    private AppMenu mainMenu;
    @Subscribe
    public void onInit(InitEvent event) {
        AppMenu.MenuItem item = mainMenu.createMenuItem("shop", "Shop");
        AppMenu.MenuItem subItem = mainMenu.createMenuItem("customer", "Customers", null, menuItem -> {
            notifications.create()
                    .withCaption("Customers menu item clicked")
                    .withType(Notifications.NotificationType.HUMANIZED)
                    .show();
        });
        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()- управляет видимостью элемента меню. 
Внешний вид компонента AppMenu можно настроить с помощью переменных SCSS с префиксами $cuba-menubar-* и $cuba-app-menubar-*. Эти переменные можно изменить в визуальном редакторе после расширения темы или создания новой темы.
- API