package com.redhat.ceylon.eclipse.code.search; import static com.redhat.ceylon.eclipse.code.editor.DynamicMenuItem.collapseMenuItems; import static com.redhat.ceylon.eclipse.ui.CeylonPlugin.PLUGIN_ID; import static com.redhat.ceylon.eclipse.ui.CeylonPlugin.imageRegistry; import static com.redhat.ceylon.eclipse.ui.CeylonResources.CEYLON_DECS; import static com.redhat.ceylon.eclipse.ui.CeylonResources.CEYLON_REFS; import static com.redhat.ceylon.eclipse.util.EditorUtil.getCurrentEditor; import org.eclipse.jface.action.IContributionItem; import org.eclipse.jface.action.MenuManager; import org.eclipse.jface.action.Separator; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.ui.IEditorPart; import org.eclipse.ui.actions.CompoundContributionItem; import com.redhat.ceylon.eclipse.code.editor.CeylonEditor; import com.redhat.ceylon.eclipse.code.editor.DynamicMenuItem; public class FindMenuItems extends CompoundContributionItem { private static ImageDescriptor REFS = imageRegistry().getDescriptor(CEYLON_REFS); private static ImageDescriptor DECS = imageRegistry().getDescriptor(CEYLON_DECS); public FindMenuItems() {} public FindMenuItems(String id) { super(id); } @Override public IContributionItem[] getContributionItems() { IContributionItem[] items = getItems(getCurrentEditor()); if (collapseMenuItems(getParent())) { MenuManager submenu = new MenuManager("Find"); submenu.setActionDefinitionId(CeylonEditor.FIND_MENU_ID); for (IContributionItem item: items) { submenu.add(item); } return new IContributionItem[] { submenu }; } else { return items; } } private IContributionItem[] getItems(IEditorPart editor) { return new IContributionItem[] { new DynamicMenuItem(PLUGIN_ID + ".action.findReferences", "Find &References", editor==null ? false : new FindReferencesAction(editor).isEnabled(), REFS), new DynamicMenuItem(PLUGIN_ID + ".action.findAssignments", "Find Assi&gnments", editor==null ? false : new FindAssignmentsAction(editor).isEnabled(), REFS), new DynamicMenuItem(PLUGIN_ID + ".action.findRefinements", "Find Refi&nements", editor==null ? false : new FindRefinementsAction(editor).isEnabled(), DECS), new DynamicMenuItem(PLUGIN_ID + ".action.findSubtypes", "Find &Subtypes", editor==null ? false : new FindSubtypesAction(editor).isEnabled(), DECS), new Separator(), new DynamicMenuItem("org.eclipse.search.ui.performTextSearchWorkspace", "Find &Text in Workspace", true) }; } }