use of org.eclipse.scout.rt.client.ui.action.menu.IMenu in project scout.rt by eclipse.
the class FormFieldContextMenu method handleOwnerEnabledChanged.
protected void handleOwnerEnabledChanged() {
T container = getContainer();
if (container == null) {
return;
}
final boolean enabled = container.isEnabledIncludingParents();
acceptVisitor(new IActionVisitor() {
@Override
public int visit(IAction action) {
if (action instanceof IMenu) {
IMenu menu = (IMenu) action;
if (!menu.hasChildActions() && menu.isInheritAccessibility()) {
menu.setEnabledInheritAccessibility(enabled);
}
}
return CONTINUE;
}
});
}
use of org.eclipse.scout.rt.client.ui.action.menu.IMenu in project scout.rt by eclipse.
the class AbstractContextMenu method removeScoutMenuVisibilityListenerRec.
protected void removeScoutMenuVisibilityListenerRec(Collection<? extends IMenu> menus) {
if (menus != null) {
for (IMenu m : menus) {
m.removePropertyChangeListener(IMenu.PROP_CHILD_ACTIONS, m_menuVisibilityListener);
m.removePropertyChangeListener(IMenu.PROP_VISIBLE, m_menuVisibilityListener);
removeScoutMenuVisibilityListenerRec(m.getChildActions());
}
}
}
use of org.eclipse.scout.rt.client.ui.action.menu.IMenu in project scout.rt by eclipse.
the class AbstractContextMenu method calculateLocalVisibility.
protected void calculateLocalVisibility() {
final IActionFilter activeFilter = ActionUtility.createMenuFilterMenuTypes(getCurrentMenuTypes(), true);
if (activeFilter != null) {
final BooleanHolder visibleHolder = new BooleanHolder(false);
acceptVisitor(new IActionVisitor() {
@Override
public int visit(IAction action) {
if (action instanceof IMenu) {
IMenu menu = (IMenu) action;
if (menu.hasChildActions() || menu.isSeparator() || menu instanceof IContextMenu) {
return CONTINUE;
} else if (activeFilter.accept(menu)) {
visibleHolder.setValue(true);
return CANCEL;
}
}
return CONTINUE;
}
});
setVisible(visibleHolder.getValue());
}
}
use of org.eclipse.scout.rt.client.ui.action.menu.IMenu in project scout.rt by eclipse.
the class AbstractContextMenu method addScoutMenuVisibilityListenerRec.
protected void addScoutMenuVisibilityListenerRec(Collection<? extends IMenu> menus) {
if (menus != null) {
for (IMenu m : menus) {
m.addPropertyChangeListener(IMenu.PROP_CHILD_ACTIONS, m_menuVisibilityListener);
m.addPropertyChangeListener(IMenu.PROP_VISIBLE, m_menuVisibilityListener);
addScoutMenuVisibilityListenerRec(m.getChildActions());
}
}
}
use of org.eclipse.scout.rt.client.ui.action.menu.IMenu in project scout.rt by eclipse.
the class MobileDeviceTransformer method notifyPageDetailTableChanged.
@Override
public void notifyPageDetailTableChanged(ITable table) {
IPage<?> activePage = getDesktop().getOutline().getActivePage();
IPage<?> parentPage = activePage.getParentPage();
if (parentPage == null) {
return;
}
ITable parentTable = parentPage.getTable();
if (parentTable == null) {
return;
}
// Remove empty space menus of the current detail table which are already defined on the parent detail table as single selection menus
// This prevents duplicate menus because the ui concatenates these menus when a node is shown
// It is important to only remove outline wrapper menus which are defined on the parent table because the menu could be defined on a page and therefore needs to be displayed
List<IMenu> newMenus = new ArrayList<IMenu>();
for (IMenu menu : table.getMenus()) {
if ((menu instanceof OutlineMenuWrapper)) {
OutlineMenuWrapper menuWrapper = (OutlineMenuWrapper) menu;
IMenu originalMenu = unwrapOutlineWrapperMenu(menuWrapper);
if (menuWrapper.getMenuTypes().contains(TableMenuType.EmptySpace) && originalMenu.getMenuTypes().contains(TableMenuType.SingleSelection) && parentTable.getMenus().contains(originalMenu)) {
// This menu should be removed -> don't add it to the list of new menus
continue;
}
}
newMenus.add(menu);
}
if (!CollectionUtility.equalsCollection(newMenus, table.getContextMenu().getChildActions())) {
table.getContextMenu().setChildActions(newMenus);
}
}
Aggregations