blob: b27ee734bd517230b104b8f42ee8803077fc7c0e [file] [log] [blame]
package empty.project.ui.swt.application.menu;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.jface.action.IContributionItem;
import org.eclipse.jface.action.IMenuManager;
import org.eclipse.scout.rt.client.ui.action.menu.IMenu;
import org.eclipse.scout.rt.ui.swt.ISwtEnvironment;
import org.eclipse.scout.rt.ui.swt.SwtMenuUtility;
import org.eclipse.scout.rt.ui.swt.action.SwtScoutMenuContributionItem;
import org.eclipse.ui.actions.CompoundContributionItem;
import empty.project.ui.swt.Activator;
public class DesktopMenuBar extends CompoundContributionItem {
@Override
protected IContributionItem[] getContributionItems() {
ISwtEnvironment env = Activator.getDefault().getEnvironment();
if (env != null && env.isInitialized()) {
if (env.getClientSession() != null && env.getClientSession().getDesktop() != null) {
List<IMenu> menus = env.getClientSession().getDesktop().getMenus();
List<IMenu> consolidatedMenus = SwtMenuUtility.consolidateMenus(menus);
List<IContributionItem> swtContributionItems = new ArrayList<IContributionItem>();
for (IMenu menu : consolidatedMenus) {
swtContributionItems.add(new SwtScoutMenuContributionItem(menu, env));
}
return swtContributionItems.toArray(new IContributionItem[swtContributionItems.size()]);
}
}
return new IContributionItem[0];
}
@Override
public boolean isDirty() {
boolean isDirty = super.isDirty();
if (!isDirty && getParent() instanceof IMenuManager) {
isDirty = ((IMenuManager) getParent()).isDirty();
}
return isDirty;
}
}