package com.redhat.ceylon.eclipse.code.open;
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_DEFAULT_REFINEMENT;
import static com.redhat.ceylon.eclipse.ui.CeylonResources.CEYLON_HIERARCHY;
import static com.redhat.ceylon.eclipse.ui.CeylonResources.CEYLON_OUTLINE;
import static com.redhat.ceylon.eclipse.ui.CeylonResources.CEYLON_REFS;
import static com.redhat.ceylon.eclipse.ui.CeylonResources.CEYLON_SOURCE;
import static com.redhat.ceylon.eclipse.ui.CeylonResources.GOTO;
import org.eclipse.jface.action.IContributionItem;
import org.eclipse.jface.action.Separator;
import org.eclipse.jface.resource.ImageDescriptor;
import org.eclipse.ui.actions.CompoundContributionItem;
import com.redhat.ceylon.eclipse.code.editor.DynamicMenuItem;
import com.redhat.ceylon.eclipse.ui.CeylonResources;
public class SelectedDeclarationMenuItems extends CompoundContributionItem {
private static final ImageDescriptor GOTO_IMAGE =
imageRegistry().getDescriptor(GOTO);
private static final ImageDescriptor REFINED_IMAGE =
imageRegistry().getDescriptor(CEYLON_DEFAULT_REFINEMENT);
private static final ImageDescriptor HIERARCHY_IMAGE =
imageRegistry().getDescriptor(CeylonResources.HIERARCHY);
private static final ImageDescriptor OUTLINE =
imageRegistry().getDescriptor(CEYLON_OUTLINE);
private static final ImageDescriptor HIERARCHY =
imageRegistry().getDescriptor(CEYLON_HIERARCHY);
private static final ImageDescriptor CODE =
imageRegistry().getDescriptor(CEYLON_SOURCE);
private static final ImageDescriptor REFS =
imageRegistry().getDescriptor(CEYLON_REFS);
public SelectedDeclarationMenuItems() {}
public SelectedDeclarationMenuItems(String id) {
super(id);
}
@Override
public IContributionItem[] getContributionItems() {
boolean selectedEnabled =
new OpenSelectedDeclarationHandler()
.isEnabled();
boolean refinedEnabled =
new OpenRefinedDeclarationHandler()
.isEnabled();
return new IContributionItem[] {
new DynamicMenuItem(PLUGIN_ID + ".action.openSelectedDeclaration",
"Go to Selected Declaration",
selectedEnabled, GOTO_IMAGE),
new DynamicMenuItem(PLUGIN_ID + ".action.openRefinedDeclaration",
"Go to Refined Declaration", //TODO: mnemonic!
refinedEnabled, REFINED_IMAGE),
new DynamicMenuItem(PLUGIN_ID + ".action.showInHierarchyView",
"&Show in Type Hierarchy View",
selectedEnabled, HIERARCHY_IMAGE),
new Separator(),
new DynamicMenuItem(PLUGIN_ID + ".editor.showOutline",
"Quick &Outline", true, OUTLINE),
new DynamicMenuItem(PLUGIN_ID + ".editor.hierarchy",
"Quick &Hierarchy", true, HIERARCHY),
new DynamicMenuItem(PLUGIN_ID + ".editor.findReferences",
"Quick &Find References", true, REFS),
new DynamicMenuItem(PLUGIN_ID + ".editor.code",
"&Peek Definition", true, CODE),
};
}
}