| /********************************************************************** |
| * Copyright (c) 2002,2003 QNX Software Systems and others. |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Common Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/cpl-v10.html |
| * |
| * Contributors: |
| * QNX Software Systems - Initial API and implementation |
| ***********************************************************************/ |
| package org.eclipse.cdt.make.internal.ui.editor; |
| |
| import org.eclipse.cdt.make.internal.ui.MakeUIPlugin; |
| import org.eclipse.jface.action.IMenuManager; |
| import org.eclipse.jface.action.IToolBarManager; |
| 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; |
| protected RetargetTextEditorAction fContentAssistProposal; |
| protected RetargetTextEditorAction fContentAssistTip; |
| |
| /** |
| * Constructor for MakefileEditorActionContributor. |
| */ |
| public MakefileEditorActionContributor() { |
| super(); |
| fContentAssistProposal = new RetargetTextEditorAction(MakeUIPlugin.getDefault().getResourceBundle(), "ContentAssistProposal."); //$NON-NLS-1$ |
| fContentAssistProposal.setActionDefinitionId(ITextEditorActionDefinitionIds.CONTENT_ASSIST_PROPOSALS); |
| fContentAssistTip = new RetargetTextEditorAction(MakeUIPlugin.getDefault().getResourceBundle(), "ContentAssistTip."); //$NON-NLS-1$ |
| fContentAssistTip.setActionDefinitionId(ITextEditorActionDefinitionIds.CONTENT_ASSIST_CONTEXT_INFORMATION); |
| fTogglePresentation = new MakefileEditorTogglePresentationAction(); |
| } |
| |
| /** |
| * @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(); |
| } |
| |
| /* |
| * @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); |
| } |
| |
| IToolBarManager toolBarManager = bars.getToolBarManager(); |
| if (toolBarManager != null) { |
| toolBarManager.add(new Separator()); |
| toolBarManager.add(fTogglePresentation); |
| } |
| } |
| |
| } |