/** * Creates a new menu with all types of menu content. * * @return a new menu with content. */ private static WMenu createMenu() { WMenu menu = new WMenu(WMenu.MenuType.BAR); menu.add(new WMenuItem("top-level menu item", new Action() { @Override public void execute(final ActionEvent event) { } })); WSubMenu subMenu = new WSubMenu("subMenu modes"); menu.add(subMenu); for (WSubMenu.MenuMode mode : WSubMenu.MenuMode.values()) { WSubMenu subSubMenu = new WSubMenu(mode.toString()); subSubMenu.setMode(mode); subSubMenu.add(new WMenuItem("2nd-level item")); subMenu.add(subSubMenu); } subMenu = new WSubMenu("Menu group"); menu.add(subMenu); subMenu.add(new WMenuItem("non-grouped item")); WMenuItemGroup group = new WMenuItemGroup("menu item group"); group.add(new WMenuItem("item 1")); group.addSeparator(); group.add(new WMenuItem("item 2", "http://localhost")); subMenu.add(group); return menu; }
/** * Adds an example menu item with the given text and an example action to the a parent component. * * @param parent the component to add the menu item to. * @param text the text to display on the menu item. * @param selectedMenuText the WText to display the selected menu item. */ private void addMenuItem(final WComponent parent, final String text, final WText selectedMenuText) { WMenuItem menuItem = new WMenuItem(text, new ExampleMenuAction(selectedMenuText)); menuItem.setActionObject(text); if (parent instanceof WSubMenu) { ((WSubMenu) parent).add(menuItem); } else { ((WMenuItemGroup) parent).add(menuItem); } }
/** * Adds an example menu item with the given text and an example action to the a parent component. * * @param parent the component to add the menu item to. * @param text the text to display on the menu item. * @param selectedMenuText the WText to display the selected menu item. */ private void addMenuItem(final WComponent parent, final String text, final WText selectedMenuText) { WMenuItem menuItem = new WMenuItem(text, new ExampleMenuAction(selectedMenuText)); menuItem.setActionObject(text); if (parent instanceof WSubMenu) { ((WSubMenu) parent).add(menuItem); } else { ((WMenuItemGroup) parent).add(menuItem); } }
@Test public void testAddSeparator2() { WMenuItemGroup group = new WMenuItemGroup(""); WSeparator separator = new WSeparator(); group.add(separator); Assert.assertTrue("Separator should have been added to group", group.getMenuItems().contains(separator)); }
@Test public void testAddMenuItem() { WMenuItemGroup group = new WMenuItemGroup(""); WMenuItem menuItem = new WMenuItem("item"); group.add(menuItem); Assert.assertTrue("Menu item should have been added to group", group.getMenuItems().contains(menuItem)); }
@Test public void testRemoveAllItems() { WMenuItemGroup group = new WMenuItemGroup(""); Assert.assertTrue("Menu item list should be empty by default", group.getMenuItems().isEmpty()); // Add items WMenuItem item1 = new WMenuItem("item1"); WMenuItem item2 = new WMenuItem("item2"); group.add(item1); group.add(item2); Assert.assertEquals("Menu items list should have 2 items", 2, group.getMenuItems().size()); // Remove item group.removeAllMenuItems(); Assert.assertTrue("Menu items should be empty", group.getMenuItems().isEmpty()); }
@Test public void testAddSubMenu() { WMenuItemGroup group = new WMenuItemGroup(""); WSubMenu subMenu = new WSubMenu("submenu"); group.add(subMenu); Assert.assertTrue("Sub-menu should have been added to group", group.getMenuItems().contains(subMenu)); }
@Test public void testGetItems() { WMenuItemGroup group = new WMenuItemGroup(""); WMenuItem menuItem = new WMenuItem("item"); group.add(menuItem); // Add submenu with a child item WSubMenu subMenu = new WSubMenu("sub"); group.add(subMenu); WMenuItem subItem = new WMenuItem("subItem"); subMenu.add(subItem); Assert.assertEquals("Items list should have two items", 2, group.getMenuItems().size()); Assert.assertTrue("Items list should contain the menu item", group.getMenuItems().contains(menuItem)); Assert.assertTrue("Items list should contain the sub menu item", group.getMenuItems().contains(subMenu)); }
@Test public void testRemoveItem() { WMenuItemGroup group = new WMenuItemGroup(""); Assert.assertTrue("Menu item list should be empty by default", group.getMenuItems().isEmpty()); // Add items WMenuItem item1 = new WMenuItem("item1"); WMenuItem item2 = new WMenuItem("item2"); group.add(item1); group.add(item2); Assert.assertTrue("Menu item1 should have been added to group", group.getMenuItems().contains(item1)); Assert.assertTrue("Menu item2 should have been added to group", group.getMenuItems().contains(item2)); // Remove item group.removeMenuItem(item1); Assert.assertFalse("Menu item1 should not been in items list after being removed", group.getMenuItems().contains(item1)); Assert.assertTrue("Menu item2 should be in the items list", group.getMenuItems().contains(item2)); }