Search in sources :

Example 11 with IMenu

use of org.eclipse.scout.rt.client.ui.action.menu.IMenu in project scout.rt by eclipse.

the class JsonDesktopTest method testDontSendNonDisplayableMenus.

/**
 * Tests whether non displayable menus are sent.
 * <p>
 * This reduces response size and also leverages security because the menus are never visible to the user, not even
 * with the dev tools of the browser
 */
@Test
public void testDontSendNonDisplayableMenus() throws Exception {
    IDesktop desktop = new DesktopWithNonDisplayableActions();
    desktop.initDesktop();
    JsonDesktop<IDesktop> jsonDesktop = createJsonDesktop(desktop);
    JsonMenu<IMenu> jsonDisplayableMenu = jsonDesktop.getAdapter(desktop.getMenu(DesktopWithNonDisplayableActions.DisplayableMenu.class));
    JsonMenu<IMenu> jsonNonDisplayableMenu = jsonDesktop.getAdapter(desktop.getMenu(DesktopWithNonDisplayableActions.NonDisplayableMenu.class));
    JsonFormMenu<IFormMenu<IForm>> jsonDisplayableFormMenu = jsonDesktop.getAdapter(desktop.getMenu(DesktopWithNonDisplayableActions.DisplayableFormMenu.class));
    JsonFormMenu<IFormMenu<IForm>> jsonNonDisplayableFormMenu = jsonDesktop.getAdapter(desktop.getMenu(DesktopWithNonDisplayableActions.NonDisplayableFormMenu.class));
    // Adapter for NonDisplayableMenu/Menu must not exist
    assertNull(jsonNonDisplayableMenu);
    assertNull(jsonNonDisplayableFormMenu);
    // Json response must not contain NonDisplayableMenu/FormMenu
    JSONObject json = jsonDesktop.toJson();
    JSONArray jsonActions = json.getJSONArray("menus");
    assertEquals(2, jsonActions.length());
    List<String> ids = new ArrayList<String>();
    ids.add(jsonActions.getString(0));
    ids.add(jsonActions.getString(1));
    assertTrue(ids.contains(jsonDisplayableMenu.getId()));
    assertTrue(ids.contains(jsonDisplayableFormMenu.getId()));
}
Also used : IMenu(org.eclipse.scout.rt.client.ui.action.menu.IMenu) JSONArray(org.json.JSONArray) ArrayList(java.util.ArrayList) IDesktop(org.eclipse.scout.rt.client.ui.desktop.IDesktop) JSONObject(org.json.JSONObject) DesktopWithNonDisplayableActions(org.eclipse.scout.rt.ui.html.json.desktop.fixtures.DesktopWithNonDisplayableActions) IFormMenu(org.eclipse.scout.rt.client.ui.form.IFormMenu) Test(org.junit.Test) JsonAdapterRegistryTest(org.eclipse.scout.rt.ui.html.json.JsonAdapterRegistryTest)

Example 12 with IMenu

use of org.eclipse.scout.rt.client.ui.action.menu.IMenu in project scout.rt by eclipse.

the class ActionUtilityTest method testCleanupWithOnlySeparators.

@Test
public void testCleanupWithOnlySeparators() {
    IMenu s1 = createMenu("s1", true, true);
    IMenu s2 = createMenu("s2", true, true);
    IMenu s3 = createMenu("s3", true, true);
    List<IMenu> cleanList = ActionUtility.visibleNormalizedActions(CollectionUtility.arrayList(s1, s2, s3));
    assertEquals(Collections.emptyList(), cleanList);
}
Also used : IMenu(org.eclipse.scout.rt.client.ui.action.menu.IMenu) Test(org.junit.Test)

Example 13 with IMenu

use of org.eclipse.scout.rt.client.ui.action.menu.IMenu in project scout.rt by eclipse.

the class ActionUtilityTest method testCleanupWithLeadingSeparators.

@Test
public void testCleanupWithLeadingSeparators() {
    IMenu s1 = createMenu("s1", true, true);
    IMenu s2 = createMenu("s2", true, true);
    IMenu s3 = createMenu("s3", true, true);
    IMenu m4 = createMenu("m4", false, true);
    List<IMenu> cleanList = ActionUtility.visibleNormalizedActions(CollectionUtility.arrayList(s1, s2, s3, m4));
    assertEquals(Arrays.asList(m4), cleanList);
}
Also used : IMenu(org.eclipse.scout.rt.client.ui.action.menu.IMenu) Test(org.junit.Test)

Example 14 with IMenu

use of org.eclipse.scout.rt.client.ui.action.menu.IMenu in project scout.rt by eclipse.

the class AbstractGroupBox method initMenus.

private void initMenus() {
    List<Class<? extends IMenu>> declaredMenus = getDeclaredMenus();
    List<IMenu> contributedMenus = m_contributionHolder.getContributionsByClass(IMenu.class);
    OrderedCollection<IMenu> menus = new OrderedCollection<IMenu>();
    for (Class<? extends IMenu> menuClazz : declaredMenus) {
        menus.addOrdered(ConfigurationUtility.newInnerInstance(this, menuClazz));
    }
    menus.addAllOrdered(contributedMenus);
    injectMenusInternal(menus);
    new MoveActionNodesHandler<IMenu>(menus).moveModelObjects();
    // set container on menus
    IFormFieldContextMenu contextMenu = new FormFieldContextMenu<IGroupBox>(this, menus.getOrderedList());
    contextMenu.setContainerInternal(this);
    setContextMenu(contextMenu);
}
Also used : IMenu(org.eclipse.scout.rt.client.ui.action.menu.IMenu) FormFieldContextMenu(org.eclipse.scout.rt.client.ui.action.menu.root.internal.FormFieldContextMenu) IFormFieldContextMenu(org.eclipse.scout.rt.client.ui.action.menu.root.IFormFieldContextMenu) OrderedCollection(org.eclipse.scout.rt.platform.util.collection.OrderedCollection) IFormFieldContextMenu(org.eclipse.scout.rt.client.ui.action.menu.root.IFormFieldContextMenu)

Example 15 with IMenu

use of org.eclipse.scout.rt.client.ui.action.menu.IMenu in project scout.rt by eclipse.

the class EntityNode method execInitTreeNode.

@Override
protected void execInitTreeNode() {
    List<IMenu> menus = new ArrayList<IMenu>();
    for (IMenu m : getMenus()) {
        if (m.getClass() == AddEntityPlaceholderOnEntityMenu.class) {
            attachAddEntityMenus(menus);
        } else {
            menus.add(m);
        }
    }
    // delete separator if it is at the end
    if (menus.size() > 0 && menus.get(menus.size() - 1).getClass() == Separator2Menu.class) {
        menus.remove(menus.size() - 1);
    }
    setMenus(menus);
}
Also used : IMenu(org.eclipse.scout.rt.client.ui.action.menu.IMenu) ArrayList(java.util.ArrayList)

Aggregations

IMenu (org.eclipse.scout.rt.client.ui.action.menu.IMenu)64 ArrayList (java.util.ArrayList)17 Test (org.junit.Test)17 OrderedCollection (org.eclipse.scout.rt.platform.util.collection.OrderedCollection)12 IAction (org.eclipse.scout.rt.client.ui.action.IAction)8 JSONObject (org.json.JSONObject)8 TestMenus (org.eclipse.scout.rt.client.extension.ui.action.tree.fixture.TestMenus)6 IActionVisitor (org.eclipse.scout.rt.client.ui.action.IActionVisitor)6 JSONArray (org.json.JSONArray)6 IKeyStroke (org.eclipse.scout.rt.client.ui.action.keystroke.IKeyStroke)5 ITable (org.eclipse.scout.rt.client.ui.basic.table.ITable)5 ITreeNode (org.eclipse.scout.rt.client.ui.basic.tree.ITreeNode)5 ContributionComposite (org.eclipse.scout.rt.shared.extension.ContributionComposite)5 LinkedList (java.util.LinkedList)4 IOutline (org.eclipse.scout.rt.client.ui.desktop.outline.IOutline)4 ProcessingException (org.eclipse.scout.rt.platform.exception.ProcessingException)4 List (java.util.List)3 ActionFinder (org.eclipse.scout.rt.client.ui.action.ActionFinder)3 AbstractMenu (org.eclipse.scout.rt.client.ui.action.menu.AbstractMenu)3 IFormFieldContextMenu (org.eclipse.scout.rt.client.ui.action.menu.root.IFormFieldContextMenu)3