use of org.eclipse.wst.xsd.ui.internal.adt.editor.EditorModeManager in project webtools.sourceediting by eclipse.
the class DesignViewContextMenuProvider method buildContextMenu.
/**
* @see org.eclipse.gef.ui.parts.ContextMenuProvider#buildContextMenu(org.eclipse.jface.action.IMenuManager,
* org.eclipse.gef.EditPartViewer)
*/
public void buildContextMenu(IMenuManager menu) {
IMenuManager currentMenu = menu;
EditorModeManager manager = (EditorModeManager) editor.getAdapter(EditorModeManager.class);
ContextMenuParticipant contextMenuParticipant = manager != null ? manager.getCurrentMode().getContextMenuParticipant() : null;
menu.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
ActionRegistry registry = getEditorActionRegistry();
ISelection selection = selectionProvider.getSelection();
if (selection != null) {
Object selectedObject = ((StructuredSelection) selection).getFirstElement();
// Convert editparts to model objects as selections
if (selectedObject instanceof EditPart) {
selectedObject = ((EditPart) selectedObject).getModel();
}
if (selectedObject instanceof IActionProvider) {
IActionProvider actionProvider = (IActionProvider) selectedObject;
String[] actions = actionProvider.getActions(null);
for (int i = 0; i < actions.length; i++) {
String id = actions[i];
if (contextMenuParticipant == null || contextMenuParticipant.isApplicable(selectedObject, id)) {
if (id.startsWith(BaseSelectionAction.SUBMENU_START_ID)) {
String text = id.substring(BaseSelectionAction.SUBMENU_START_ID.length());
IMenuManager subMenu = new MenuManager(text);
currentMenu.add(subMenu);
currentMenu = subMenu;
} else if (id.startsWith(BaseSelectionAction.SUBMENU_END_ID)) {
currentMenu = getParentMenu(menu, currentMenu);
} else if (id.equals(BaseSelectionAction.SEPARATOR_ID)) {
currentMenu.add(new Separator());
} else {
IAction action = registry.getAction(id);
if (action != null) {
action.isEnabled();
currentMenu.add(action);
}
}
}
}
menu.add(new Separator());
// $NON-NLS-1$
IMenuManager subMenu = new MenuManager(Messages._UI_REFACTOR_CONTEXT_MENU, IXSDRefactorConstants.REFACTOR_CONTEXT_MENU_ID);
menu.add(subMenu);
menu.add(new Separator());
// $NON-NLS-1$
menu.add(new Separator("search-slot"));
menu.add(new Separator());
// $NON-NLS-1$
menu.add(new Separator("endDesignMenu-slot"));
menu.add(new Separator());
}
}
menu.add(new Separator());
}
use of org.eclipse.wst.xsd.ui.internal.adt.editor.EditorModeManager in project webtools.sourceediting by eclipse.
the class InternalXSDMultiPageEditor method createEditorModeManager.
// private boolean isInitializing = false;
protected EditorModeManager createEditorModeManager() {
final ProductCustomizationProvider productCustomizationProvider = (ProductCustomizationProvider) getAdapter(ProductCustomizationProvider.class);
EditorModeManager manager = new EditorModeManager(XSD_EDITOR_MODE_EXTENSION_ID) {
public void init() {
if (productCustomizationProvider == null || productCustomizationProvider.isEditorModeApplicable(TypeVizEditorMode.ID)) {
addMode(new TypeVizEditorMode());
}
super.init();
}
protected EditorMode getDefaultMode() {
String defaultModeId = XSDEditorPlugin.getPlugin().getPreferenceStore().getString(DEFAULT_EDITOR_MODE_ID);
if (defaultModeId != null) {
EditorMode editorMode = getEditorMode(defaultModeId);
if (editorMode != null) {
return editorMode;
}
}
return super.getDefaultMode();
}
};
manager.setProductCustomizationProvider(productCustomizationProvider);
return manager;
}
Aggregations