diff options
Diffstat (limited to 'build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/editors/automake/MakefileEditorActionContributor.java')
-rw-r--r-- | build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/editors/automake/MakefileEditorActionContributor.java | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/editors/automake/MakefileEditorActionContributor.java b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/editors/automake/MakefileEditorActionContributor.java new file mode 100644 index 00000000000..181e53c393e --- /dev/null +++ b/build/org.eclipse.cdt.autotools.ui/src/org/eclipse/cdt/internal/autotools/ui/editors/automake/MakefileEditorActionContributor.java @@ -0,0 +1,111 @@ +/******************************************************************************* + * Copyright (c) 2000, 2006, 2007 QNX Software Systems and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * QNX Software Systems - Initial API and implementation + * Wind River Systems - fix for bugzilla 135150 + * Red Hat Inc. - modify for usage with Automake editor + *******************************************************************************/ +package org.eclipse.cdt.internal.autotools.ui.editors.automake; + +import java.util.ResourceBundle; + +import org.eclipse.cdt.internal.autotools.ui.MakeUIMessages; +import org.eclipse.jface.action.IMenuManager; +import org.eclipse.jface.action.Separator; +import org.eclipse.ui.IActionBars; +import org.eclipse.ui.IEditorPart; +import org.eclipse.ui.IWorkbenchActionConstants; +import org.eclipse.ui.texteditor.BasicTextEditorActionContributor; +import org.eclipse.ui.texteditor.ITextEditor; +import org.eclipse.ui.texteditor.ITextEditorActionDefinitionIds; +import org.eclipse.ui.texteditor.RetargetTextEditorAction; + + +/** + */ +public class MakefileEditorActionContributor extends BasicTextEditorActionContributor { + + private MakefileEditorTogglePresentationAction fTogglePresentation; + private OpenDeclarationAction fOpenDeclarationAction; + protected RetargetTextEditorAction fContentAssistProposal; + protected RetargetTextEditorAction fContentAssistTip; + + /** + * Constructor for MakefileEditorActionContributor. + */ + public MakefileEditorActionContributor() { + super(); + ResourceBundle bundle = MakeUIMessages.getResourceBundle(); + fContentAssistProposal = new RetargetTextEditorAction(bundle, "ContentAssistProposal."); //$NON-NLS-1$ + fContentAssistProposal.setActionDefinitionId(ITextEditorActionDefinitionIds.CONTENT_ASSIST_PROPOSALS); + fContentAssistTip = new RetargetTextEditorAction(bundle, "ContentAssistTip."); //$NON-NLS-1$ + fContentAssistTip.setActionDefinitionId(ITextEditorActionDefinitionIds.CONTENT_ASSIST_CONTEXT_INFORMATION); + fTogglePresentation = new MakefileEditorTogglePresentationAction(); + fOpenDeclarationAction = new OpenDeclarationAction(); + + } + + /** + * @see org.eclipse.ui.IEditorActionBarContributor#setActiveEditor(IEditorPart) + */ + public void setActiveEditor(IEditorPart targetEditor) { + super.setActiveEditor(targetEditor); + doSetActiveEditor(targetEditor); + } + + private void doSetActiveEditor(IEditorPart part) { + super.setActiveEditor(part); + + ITextEditor editor = null; + if (part instanceof ITextEditor) { + editor = (ITextEditor) part; + } + + fContentAssistProposal.setAction(getAction(editor, "ContentAssistProposal")); //$NON-NLS-1$ + fContentAssistTip.setAction(getAction(editor, "ContentAssistTip")); //$NON-NLS-1$ + + fTogglePresentation.setEditor(editor); + fTogglePresentation.update(); + + fOpenDeclarationAction.setEditor(editor); + fOpenDeclarationAction.update(); + } + + /* + * @see IEditorActionBarContributor#dispose() + */ + public void dispose() { + doSetActiveEditor(null); + super.dispose(); + } + + /** + * @see org.eclipse.ui.part.EditorActionBarContributor#init(IActionBars) + */ + public void init(IActionBars bars) { + super.init(bars); + IMenuManager menuManager = bars.getMenuManager(); + IMenuManager editMenu = menuManager.findMenuUsingPath(IWorkbenchActionConstants.M_EDIT); + if (editMenu != null) { + editMenu.add(new Separator()); + editMenu.add(fContentAssistProposal); + editMenu.add(fContentAssistTip); + editMenu.add(fOpenDeclarationAction); + } + + bars.setGlobalActionHandler(ITextEditorActionDefinitionIds.TOGGLE_SHOW_SELECTED_ELEMENT_ONLY, fTogglePresentation); + // there is a global action in the toolbar, that is retargeted, + // there is no need to add another one. +// IToolBarManager toolBarManager = bars.getToolBarManager(); +// if (toolBarManager != null) { +// toolBarManager.add(new Separator()); +// toolBarManager.add(fTogglePresentation); +// } + } + +} |