Search in sources :

Example 11 with MenuItem

use of com.vaadin.flow.component.contextmenu.MenuItem in project linkki by linkki-framework.

the class ThemeVariantToggleMenuItemDefinitionTest method testToggleTheme.

@Test
void testToggleTheme() {
    MenuItem item = new ApplicationMenu().addItem("").getSubMenu().addItem("item");
    item.setCheckable(true);
    assertThat(UI.getCurrent().getElement().getThemeList()).doesNotContain("variant");
    assertThat(item.isChecked()).isFalse();
    ThemeVariantToggleMenuItemDefinition itemDefinition = new ThemeVariantToggleMenuItemDefinition("whatever", "whatever", "variant");
    itemDefinition.toggleTheme(item);
    assertThat(item.isChecked()).isTrue();
    assertThat(UI.getCurrent().getElement().getThemeList()).contains("variant");
    itemDefinition.toggleTheme(item);
    assertThat(item.isChecked()).isFalse();
    assertThat(UI.getCurrent().getElement().getThemeList()).doesNotContain("variant");
}
Also used : MenuItem(com.vaadin.flow.component.contextmenu.MenuItem) Test(org.junit.jupiter.api.Test)

Example 12 with MenuItem

use of com.vaadin.flow.component.contextmenu.MenuItem 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 13 with MenuItem

use of com.vaadin.flow.component.contextmenu.MenuItem 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 14 with MenuItem

use of com.vaadin.flow.component.contextmenu.MenuItem in project docs by vaadin.

the class MenuBarOpenOnHover method addItems.

private void addItems(MenuBar menuBar) {
    menuBar.addItem("View");
    menuBar.addItem("Edit");
    MenuItem share = menuBar.addItem("Share");
    SubMenu shareSubMenu = share.getSubMenu();
    MenuItem onSocialMedia = shareSubMenu.addItem("On social media");
    SubMenu socialMediaSubMenu = onSocialMedia.getSubMenu();
    socialMediaSubMenu.addItem("Facebook");
    socialMediaSubMenu.addItem("Twitter");
    socialMediaSubMenu.addItem("Instagram");
    shareSubMenu.addItem("By email");
    shareSubMenu.addItem("Get Link");
    MenuItem move = menuBar.addItem("Move");
    SubMenu moveSubMenu = move.getSubMenu();
    moveSubMenu.addItem("To folder");
    moveSubMenu.addItem("To trash");
    menuBar.addItem("Duplicate");
}
Also used : MenuItem(com.vaadin.flow.component.contextmenu.MenuItem) SubMenu(com.vaadin.flow.component.contextmenu.SubMenu)

Example 15 with MenuItem

use of com.vaadin.flow.component.contextmenu.MenuItem in project linkki by linkki-framework.

the class ApplicationMenuItemDefinition method createItem.

private MenuItem createItem(Function<String, MenuItem> createItemWithCaption) {
    MenuItem item = createItemWithCaption.apply(name);
    item.setId(id);
    item.addClickListener(event -> command.apply());
    for (ApplicationMenuItemDefinition subMenuItemDefinition : subMenuItemDefinitions) {
        subMenuItemDefinition.createItem(item.getSubMenu());
    }
    return item;
}
Also used : MenuItem(com.vaadin.flow.component.contextmenu.MenuItem)

Aggregations

MenuItem (com.vaadin.flow.component.contextmenu.MenuItem)27 MenuBar (com.vaadin.flow.component.menubar.MenuBar)9 Test (org.junit.jupiter.api.Test)8 ContextMenu (com.vaadin.flow.component.contextmenu.ContextMenu)6 Label (com.vaadin.flow.component.html.Label)6 Component (com.vaadin.flow.component.Component)5 SubMenu (com.vaadin.flow.component.contextmenu.SubMenu)5 Text (com.vaadin.flow.component.Text)2 Button (com.vaadin.flow.component.button.Button)2 Hr (com.vaadin.flow.component.html.Hr)2 Span (com.vaadin.flow.component.html.Span)2 Icon (com.vaadin.flow.component.icon.Icon)2 VaadinIcon (com.vaadin.flow.component.icon.VaadinIcon)2 Registration (com.vaadin.flow.shared.Registration)2 Test (org.junit.Test)2 AttachEvent (com.vaadin.flow.component.AttachEvent)1 ComponentEvent (com.vaadin.flow.component.ComponentEvent)1 ComponentEventListener (com.vaadin.flow.component.ComponentEventListener)1 DetachEvent (com.vaadin.flow.component.DetachEvent)1 UI (com.vaadin.flow.component.UI)1