Search in sources :

Example 1 with EditorModeManager

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());
}
Also used : IAction(org.eclipse.jface.action.IAction) IActionProvider(org.eclipse.wst.xsd.ui.internal.adt.design.editparts.model.IActionProvider) StructuredSelection(org.eclipse.jface.viewers.StructuredSelection) EditPart(org.eclipse.gef.EditPart) ActionRegistry(org.eclipse.gef.ui.actions.ActionRegistry) ISelection(org.eclipse.jface.viewers.ISelection) MenuManager(org.eclipse.jface.action.MenuManager) IMenuManager(org.eclipse.jface.action.IMenuManager) IMenuManager(org.eclipse.jface.action.IMenuManager) ContextMenuParticipant(org.eclipse.wst.xsd.ui.internal.adt.editor.ContextMenuParticipant) Separator(org.eclipse.jface.action.Separator) EditorModeManager(org.eclipse.wst.xsd.ui.internal.adt.editor.EditorModeManager)

Example 2 with EditorModeManager

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;
}
Also used : EditorMode(org.eclipse.wst.xsd.ui.internal.adt.editor.EditorMode) TypeVizEditorMode(org.eclipse.wst.xsd.ui.internal.adt.typeviz.TypeVizEditorMode) TypeVizEditorMode(org.eclipse.wst.xsd.ui.internal.adt.typeviz.TypeVizEditorMode) ProductCustomizationProvider(org.eclipse.wst.xsd.ui.internal.adt.editor.ProductCustomizationProvider) EditorModeManager(org.eclipse.wst.xsd.ui.internal.adt.editor.EditorModeManager)

Aggregations

EditorModeManager (org.eclipse.wst.xsd.ui.internal.adt.editor.EditorModeManager)2 EditPart (org.eclipse.gef.EditPart)1 ActionRegistry (org.eclipse.gef.ui.actions.ActionRegistry)1 IAction (org.eclipse.jface.action.IAction)1 IMenuManager (org.eclipse.jface.action.IMenuManager)1 MenuManager (org.eclipse.jface.action.MenuManager)1 Separator (org.eclipse.jface.action.Separator)1 ISelection (org.eclipse.jface.viewers.ISelection)1 StructuredSelection (org.eclipse.jface.viewers.StructuredSelection)1 IActionProvider (org.eclipse.wst.xsd.ui.internal.adt.design.editparts.model.IActionProvider)1 ContextMenuParticipant (org.eclipse.wst.xsd.ui.internal.adt.editor.ContextMenuParticipant)1 EditorMode (org.eclipse.wst.xsd.ui.internal.adt.editor.EditorMode)1 ProductCustomizationProvider (org.eclipse.wst.xsd.ui.internal.adt.editor.ProductCustomizationProvider)1 TypeVizEditorMode (org.eclipse.wst.xsd.ui.internal.adt.typeviz.TypeVizEditorMode)1