/** * */ package cc.warlock.rcp.menu; import org.eclipse.jface.action.IContributionItem; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Menu; import org.eclipse.swt.widgets.MenuItem; import org.eclipse.ui.actions.CompoundContributionItem; /** * @author simTel * */ public abstract class SubMenuContributionItem extends CompoundContributionItem { private String itemName; public SubMenuContributionItem() { this(null, null); } public SubMenuContributionItem(String name) { this(name, null); } public SubMenuContributionItem(String name, String id) { super(id); itemName = name; } public void setItemName(String newName) { itemName = newName; } @Override protected abstract IContributionItem[] getContributionItems(); @Override public void fill(Menu menu, int index) { if(index == -1) { index = menu.getItemCount(); } Menu menuToUse = menu; if(itemName != null) { MenuItem parentItem = new MenuItem(menu, SWT.CASCADE, index); parentItem.setText(itemName); menuToUse = new Menu(parentItem); parentItem.setMenu(menuToUse); super.fill(menuToUse, -1); } } }