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()));
}
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);
}
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);
}
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);
}
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);
}
Aggregations