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