listMenu

listMenu отображает вертикальное меню со свертываемыми подменю.

XML-элемент

listMenu

Java-класс

JmixListMenu

Обзор

Меню списка

Основы

listMenu, вместе с drawerToggle и drawerLayout, используется в MainView.

listMenu позволяет вам настраивать главный экран, управлять элементами меню и применять собственные стили.

Его также можно использовать в любом экране как любой другой визуальный компонент.

Чтобы добавить компонент в экран, поместите его в дескриптор XML:

<listMenu id="listMenu"/>

Компонент также можно создать и добавить на экран в Java-контроллере:

@ViewComponent
private VerticalLayout navigation;
@Autowired
private UiComponents uiComponents;
@Autowired
private ApplicationContext applicationContext;

@Subscribe
public void onInit(final InitEvent event) {
    JmixListMenu listMenu = uiComponents.create(JmixListMenu.class);

    MenuConfigListMenuItemProvider itemProvider =
            applicationContext.getBean(MenuConfigListMenuItemProvider.class);
    listMenu.setMenuItemProvider(itemProvider);
    navigation.add(listMenu);

    itemProvider.load();
}

listMenu связанный с данными

Атрибут loadMenuConfig управляет тем, загружает ли компонент listMenu свою структуру из класса MenuConfig. По умолчанию этот атрибут установлен в true, что означает, что listMenu будет загружать свои элементы меню из файла menu.xml.

Вы также можете создавать элементы меню программным образом, используя экземпляр JmixListMenu, например:

@Route("")
@ViewController("MainView")
@ViewDescriptor("main-view.xml")
public class MainView extends StandardMainView {

    @ViewComponent
    private JmixListMenu menu;

    @Subscribe
    public void onInit(final InitEvent event) {
        ListMenu.MenuBarItem rootItem = new ListMenu.MenuBarItem("help")
                .withTitle("Help")
                .withPrefixComponent(VaadinIcon.QUESTION.create()); (1)
        ListMenu.MenuItem subItemNews = new ListMenu.MenuItem("news")
                .withTitle("News")
                .withClickHandler(  (2)
                        item -> {
                            notifications.create("News menu item clicked")
                                    .show();
                        }
                );
        rootItem.addChildItem(subItemNews);
        ListMenu.MenuSeparatorItem sep =
                new ListMenu.MenuSeparatorItem("separator"); (3)
        rootItem.addChildItem(sep);
        ListMenu.MenuItem subItemBlog = new ListMenu.MenuItem("blog")
                .withTitle("Blog");
        rootItem.addChildItem(subItemBlog);
        menu.addMenuItem(rootItem);
    }
}
1 Создаёт новый элемент меню с иконкой.
2 Создаёт новый элемент меню с обработчиком clickHandler.
3 Создаёт новый элемент-разделитель.

Значки для элементов меню

Пример настройки значков для элементов меню вы можете найти в разделе События UI.

Варианты темы

Используйте атрибут themeNames, чтобы применить один или несколько вариантов темы.

Вариант Описание Поддерживается в

toggle-reverse

Перемещает переключатель разворачивания и сворачивания в конец родительского элемента меню.

Aura, Lumo

Атрибуты

listMenu имеет следующие уникальные атрибуты:

Имя Описание По умолчанию

loadMenuConfig

Атрибут loadMenuConfig используется для управления загрузкой структуры меню из Конфигурация меню. Значение по умолчанию — true, что означает, что компонент listMenu по умолчанию загружает структуру меню из MenuConfig. Если вы хотите использовать другого поставщика элементов, вам следует сначала установить для атрибута loadMenuConfig значение false.

true

listMenu имеет следующие общие атрибуты:

Обработчики

listMenu имеет следующие общие обработчики: