Search in sources :

Example 11 with MenuBar

use of com.vaadin.flow.component.menubar.MenuBar in project linkki by linkki-framework.

the class ApplicationHeaderTest method testAddThemeVariantToggles_SingleItem.

@Test
void testAddThemeVariantToggles_SingleItem() {
    ApplicationHeader header = new ApplicationHeader(new TestApplicationInfo(), Sequence.empty());
    header.init();
    MenuBar rightComponent = (MenuBar) ((HorizontalLayout) header.getContent().getComponentAt(1)).getComponentAt(0);
    MenuItem helpMenuItem = rightComponent.getItems().get(0);
    header.addThemeVariantToggles(helpMenuItem, LINKKI_CARD);
    assertThat(helpMenuItem.getSubMenu().getItems()).anyMatch(mi -> mi.getText().equals("Card Theme"));
}
Also used : MenuBar(com.vaadin.flow.component.menubar.MenuBar) MenuItem(com.vaadin.flow.component.contextmenu.MenuItem) Test(org.junit.jupiter.api.Test)

Example 12 with MenuBar

use of com.vaadin.flow.component.menubar.MenuBar in project linkki by linkki-framework.

the class ApplicationMenuItemDefinitionTest method testCreateItem_SubMenu_SubMenu.

@Test
void testCreateItem_SubMenu_SubMenu() {
    ApplicationMenuItemDefinition itemDefinition = new ApplicationMenuItemDefinition("name", "id", Arrays.asList(new ApplicationMenuItemDefinition("sub", "sub-id", Handler.NOP_HANDLER)));
    MenuBar menuBar = new MenuBar();
    SubMenu subMenu = menuBar.addItem("item").getSubMenu();
    itemDefinition.createItem(subMenu);
    assertThat(subMenu.getItems()).hasSize(1);
    assertThat(subMenu.getItems().get(0).getText()).isEqualTo("name");
    assertThat(subMenu.getItems().get(0).getSubMenu().getItems()).hasSize(1);
    assertThat(subMenu.getItems().get(0).getSubMenu().getItems().get(0).getText()).isEqualTo("sub");
}
Also used : MenuBar(com.vaadin.flow.component.menubar.MenuBar) SubMenu(com.vaadin.flow.component.contextmenu.SubMenu) Test(org.junit.jupiter.api.Test)

Example 13 with MenuBar

use of com.vaadin.flow.component.menubar.MenuBar in project linkki by linkki-framework.

the class ProductsSampleDetailsComponent method createMenuBar.

private static MenuBar createMenuBar(String caption, String... submenus) {
    MenuBar menuBar = new MenuBar();
    MenuItem item = menuBar.addItem(caption);
    for (String subMenuCaption : submenus) {
        item.getSubMenu().addItem(subMenuCaption);
    }
    return menuBar;
}
Also used : MenuBar(com.vaadin.flow.component.menubar.MenuBar) MenuItem(com.vaadin.flow.component.contextmenu.MenuItem)

Example 14 with MenuBar

use of com.vaadin.flow.component.menubar.MenuBar in project ArchCNL by Mari-Wie.

the class MainView method createHeader.

private HorizontalLayout createHeader() {
    final HorizontalLayout headerBox = new HorizontalLayout();
    final Label title = new Label("ArchCNL");
    title.getStyle().set("color", "#76d0f1");
    title.getStyle().set("font-size", "x-large");
    title.getStyle().set("font-weight", "bold");
    final MenuBar menuBar = new MenuBar();
    final MenuItem project = menuBar.addItem("Project");
    final MenuItem edit = menuBar.addItem("Edit");
    final MenuItem rules = menuBar.addItem("Rules");
    menuBar.addItem("View", e -> fireEvent(new ViewOptionRequestedEvent(this, true)));
    menuBar.addItem("Help", e -> fireEvent(new HelpOptionRequestedEvent(this, true)));
    final SubMenu projectSubMenu = project.getSubMenu();
    projectSubMenu.addItem("New Project", e -> fireEvent(new ProjectOptionRequestedEvent(this, true, ProjectOption.NEW)));
    openProjectMenuItem = projectSubMenu.addItem("Open Project", e -> fireEvent(new ProjectOptionRequestedEvent(this, true, ProjectOption.OPEN)));
    saveProjectMenuItem = projectSubMenu.addItem("Save", e -> fireEvent(new ProjectOptionRequestedEvent(this, true, ProjectOption.SAVE)));
    saveProjectMenuItem.setEnabled(false);
    projectSubMenu.addItem("Save As", e -> fireEvent(new ProjectOptionRequestedEvent(this, true, ProjectOption.SAVE_AS)));
    final SubMenu editSubMenu = edit.getSubMenu();
    editSubMenu.addItem("Undo", e -> fireEvent(new EditOptionRequestedEvent(this, true, EditOption.UNDO)));
    editSubMenu.addItem("Redo", e -> fireEvent(new EditOptionRequestedEvent(this, true, EditOption.REDO)));
    final SubMenu rulesSubMenu = rules.getSubMenu();
    rulesSubMenu.addItem("Import from File", e -> fireEvent(new RulesOptionRequestedEvent(this, true, RulesOption.IMPORT_FROM_FILE)));
    rulesSubMenu.addItem("Import Rule Presets", e -> fireEvent(new RulesOptionRequestedEvent(this, true, RulesOption.IMPORT_RULE_PRESETS)));
    headerBox.add(title, menuBar);
    headerBox.setDefaultVerticalComponentAlignment(Alignment.CENTER);
    headerBox.setWidthFull();
    return headerBox;
}
Also used : ComponentEventListener(com.vaadin.flow.component.ComponentEventListener) MenuBar(com.vaadin.flow.component.menubar.MenuBar) RulesOptionRequestedEvent(org.archcnl.ui.events.RulesOptionRequestedEvent) Registration(com.vaadin.flow.shared.Registration) URISyntaxException(java.net.URISyntaxException) HorizontalLayout(com.vaadin.flow.component.orderedlayout.HorizontalLayout) Label(com.vaadin.flow.component.html.Label) ProjectOption(org.archcnl.ui.events.ProjectOptionRequestedEvent.ProjectOption) FooterOption(org.archcnl.ui.events.FooterOptionRequestedEvent.FooterOption) RulesOption(org.archcnl.ui.events.RulesOptionRequestedEvent.RulesOption) EditOptionRequestedEvent(org.archcnl.ui.events.EditOptionRequestedEvent) Unit(com.vaadin.flow.component.Unit) VaadinServletRequest(com.vaadin.flow.server.VaadinServletRequest) URI(java.net.URI) NoSuchElementException(java.util.NoSuchElementException) Notification(com.vaadin.flow.component.notification.Notification) Text(com.vaadin.flow.component.Text) MenuItem(com.vaadin.flow.component.contextmenu.MenuItem) VerticalLayout(com.vaadin.flow.component.orderedlayout.VerticalLayout) SubMenu(com.vaadin.flow.component.contextmenu.SubMenu) ProjectOptionRequestedEvent(org.archcnl.ui.events.ProjectOptionRequestedEvent) ViewOptionRequestedEvent(org.archcnl.ui.events.ViewOptionRequestedEvent) ComponentEvent(com.vaadin.flow.component.ComponentEvent) EditOption(org.archcnl.ui.events.EditOptionRequestedEvent.EditOption) HelpOptionRequestedEvent(org.archcnl.ui.events.HelpOptionRequestedEvent) Button(com.vaadin.flow.component.button.Button) FooterOptionRequestedEvent(org.archcnl.ui.events.FooterOptionRequestedEvent) VaadinService(com.vaadin.flow.server.VaadinService) ProjectOptionRequestedEvent(org.archcnl.ui.events.ProjectOptionRequestedEvent) Label(com.vaadin.flow.component.html.Label) HelpOptionRequestedEvent(org.archcnl.ui.events.HelpOptionRequestedEvent) MenuBar(com.vaadin.flow.component.menubar.MenuBar) MenuItem(com.vaadin.flow.component.contextmenu.MenuItem) SubMenu(com.vaadin.flow.component.contextmenu.SubMenu) ViewOptionRequestedEvent(org.archcnl.ui.events.ViewOptionRequestedEvent) EditOptionRequestedEvent(org.archcnl.ui.events.EditOptionRequestedEvent) RulesOptionRequestedEvent(org.archcnl.ui.events.RulesOptionRequestedEvent) HorizontalLayout(com.vaadin.flow.component.orderedlayout.HorizontalLayout)

Example 15 with MenuBar

use of com.vaadin.flow.component.menubar.MenuBar in project linkki by linkki-framework.

the class ApplicationHeader method createRightMenuBar.

/**
 * Creates a right aligned {@link MenuBar} that is added to the {@link ApplicationHeader} by
 * {@link #addRightComponents(HorizontalLayout)}.
 *
 * @implSpec The created {@link MenuBar} contains a {@link #addHelpMenu(MenuBar) help menu item} by
 *           default.
 */
protected MenuBar createRightMenuBar() {
    MenuBar rightMenuBar = new MenuBar();
    rightMenuBar.setId(APPMENU_RIGHT_ID);
    rightMenuBar.addThemeVariants(MenuBarVariant.LUMO_ICON);
    rightMenuBar.addClassNames(LinkkiApplicationTheme.APPLICATION_MENU);
    addHelpMenu(rightMenuBar);
    return rightMenuBar;
}
Also used : MenuBar(com.vaadin.flow.component.menubar.MenuBar)

Aggregations

MenuBar (com.vaadin.flow.component.menubar.MenuBar)22 MenuItem (com.vaadin.flow.component.contextmenu.MenuItem)9 Test (org.junit.jupiter.api.Test)8 Button (com.vaadin.flow.component.button.Button)6 lombok.val (lombok.val)6 SubMenu (com.vaadin.flow.component.contextmenu.SubMenu)3 TextField (com.vaadin.flow.component.textfield.TextField)3 HorizontalLayout (com.vaadin.flow.component.orderedlayout.HorizontalLayout)2 ComponentEvent (com.vaadin.flow.component.ComponentEvent)1 ComponentEventListener (com.vaadin.flow.component.ComponentEventListener)1 Text (com.vaadin.flow.component.Text)1 Unit (com.vaadin.flow.component.Unit)1 Anchor (com.vaadin.flow.component.html.Anchor)1 Image (com.vaadin.flow.component.html.Image)1 Label (com.vaadin.flow.component.html.Label)1 Span (com.vaadin.flow.component.html.Span)1 Notification (com.vaadin.flow.component.notification.Notification)1 VerticalLayout (com.vaadin.flow.component.orderedlayout.VerticalLayout)1 RouterLink (com.vaadin.flow.router.RouterLink)1 VaadinService (com.vaadin.flow.server.VaadinService)1