X-Git-Url: http://git.phpeclipse.com diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/PHPActionContributor.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/PHPActionContributor.java index 6f35ce5..999ec19 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/PHPActionContributor.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/PHPActionContributor.java @@ -12,30 +12,41 @@ Contributors: Klaus Hartlage - www.eclipseproject.de **********************************************************************/ +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; import java.util.ResourceBundle; + +import net.sourceforge.phpdt.ui.actions.GotoMatchingBracketAction; +import net.sourceforge.phpdt.ui.actions.PHPdtActionConstants; + +import org.eclipse.jface.action.IAction; 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.editors.text.TextEditorActionContributor; +import org.eclipse.ui.actions.ActionGroup; +import org.eclipse.ui.actions.RetargetAction; import org.eclipse.ui.texteditor.BasicTextEditorActionContributor; import org.eclipse.ui.texteditor.ITextEditor; +import org.eclipse.ui.texteditor.ITextEditorActionConstants; import org.eclipse.ui.texteditor.RetargetTextEditorAction; -import org.eclipse.ui.texteditor.TextEditorAction; /** - * Contributes interesting Java actions to the desktop's Edit menu and the toolbar. + * Contributes interesting PHP actions to the desktop's Edit menu and the toolbar. */ -public class PHPActionContributor extends TextEditorActionContributor { - - public static final String COMMENT = "net.sourceforge.phpeclipse.phpeditor.comment"; - public static final String UNCOMMENT = "net.sourceforge.phpeclipse.phpeditor.uncomment"; - - protected RetargetTextEditorAction fContentAssistProposal; - protected RetargetTextEditorAction fContentAssistTip; - protected TextEditorAction fTogglePresentation; +public class PHPActionContributor extends BasicTextEditorActionContributor { + + // protected RetargetTextEditorAction fContentAssistTip; + // protected TextEditorAction fTogglePresentation; + protected RetargetAction fRetargetContentAssist; + + protected RetargetTextEditorAction fContentAssist; + private RetargetTextEditorAction fGotoMatchingBracket; + private List fRetargetToolbarActions = new ArrayList(); + protected PHPParserAction parserAction; /** @@ -43,51 +54,137 @@ public class PHPActionContributor extends TextEditorActionContributor { */ public PHPActionContributor() { super(); - fContentAssistProposal = new RetargetTextEditorAction(PHPEditorMessages.getResourceBundle(), "ContentAssistProposal."); //$NON-NLS-1$ - fContentAssistTip = new RetargetTextEditorAction(PHPEditorMessages.getResourceBundle(), "ContentAssistTip."); //$NON-NLS-1$ - fTogglePresentation = new PresentationAction(); + + ResourceBundle b = PHPEditorMessages.getResourceBundle(); + + fRetargetContentAssist = new RetargetAction(PHPdtActionConstants.CONTENT_ASSIST, PHPEditorMessages.getString("ContentAssistProposal.label")); //$NON-NLS-1$ + fRetargetContentAssist.setActionDefinitionId( + PHPEditorActionDefinitionIds.CONTENT_ASSIST_PROPOSALS); + + fContentAssist = new RetargetTextEditorAction(b, "ContentAssistProposal."); //$NON-NLS-1$ + fContentAssist.setActionDefinitionId( + PHPEditorActionDefinitionIds.CONTENT_ASSIST_PROPOSALS); + + fGotoMatchingBracket = new RetargetTextEditorAction(b, "GotoMatchingBracket."); //$NON-NLS-1$ + fGotoMatchingBracket.setActionDefinitionId( + PHPEditorActionDefinitionIds.GOTO_MATCHING_BRACKET); + + // fContentAssist.setImageDescriptor(JavaPluginImages.DESC_CLCL_CODE_ASSIST); + // fContentAssist.setDisabledImageDescriptor(JavaPluginImages.DESC_DLCL_CODE_ASSIST); + + // fContentAssist = new RetargetTextEditorAction(PHPEditorMessages.getResourceBundle(), "ContentAssistProposal."); //$NON-NLS-1$ + // fContentAssistTip = new RetargetTextEditorAction(PHPEditorMessages.getResourceBundle(), "ContentAssistTip."); //$NON-NLS-1$ + // fTogglePresentation = new PresentationAction(); + parserAction = PHPParserAction.getInstance(); } /* + * @see EditorActionBarContributor#contributeToMenu(IMenuManager) + */ + // public void contributeToMenu(IMenuManager menu) { + // super.contributeToMenu(menu); + // IMenuManager editMenu= menu.findMenuUsingPath(IWorkbenchActionConstants.M_EDIT); + // if (editMenu != null) { + // MenuManager structureSelection= new MenuManager(JavaEditorMessages.getString("ExpandSelectionMenu.label")); //$NON-NLS-1$ + // structureSelection.add(fStructureSelectEnclosingAction); + // structureSelection.add(fStructureSelectNextAction); + // structureSelection.add(fStructureSelectPreviousAction); + // structureSelection.add(fStructureSelectHistoryAction); + // editMenu.appendToGroup(IContextMenuConstants.GROUP_OPEN, structureSelection); + // editMenu.appendToGroup(IContextMenuConstants.GROUP_OPEN, fGotoPreviousMemberAction); + // editMenu.appendToGroup(IContextMenuConstants.GROUP_OPEN, fGotoNextMemberAction); + // editMenu.appendToGroup(IContextMenuConstants.GROUP_OPEN, fGotoMatchingBracket); + + // editMenu.appendToGroup(IContextMenuConstants.GROUP_GENERATE, fShowOutline); + // } + // } + /* + * @see EditorActionBarContributor#contributeToMenu(IMenuManager) + */ + // public void contributeToMenu(IMenuManager menu) { + // + // super.contributeToMenu(menu); + // + // IMenuManager editMenu= menu.findMenuUsingPath(IWorkbenchActionConstants.M_EDIT); + // if (editMenu != null) { + // editMenu.add(new Separator(IContextMenuConstants.GROUP_OPEN)); + // editMenu.add(new Separator(IContextMenuConstants.GROUP_GENERATE)); + // + // editMenu.appendToGroup(IContextMenuConstants.GROUP_GENERATE, fRetargetContentAssist); + // } + // } + + /* + * @see EditorActionBarContributor#contributeToToolBar(IToolBarManager) + */ + public void contributeToToolBar(IToolBarManager tbm) { + tbm.add(new Separator()); + Iterator e = fRetargetToolbarActions.iterator(); + while (e.hasNext()) + tbm.add((IAction) e.next()); + } + + /* * @see IEditorActionBarContributor#init(IActionBars) */ public void init(IActionBars bars) { super.init(bars); IMenuManager menuManager = bars.getMenuManager(); - IMenuManager editMenu = menuManager.findMenuUsingPath(IWorkbenchActionConstants.M_EDIT); + IMenuManager editMenu = + menuManager.findMenuUsingPath(IWorkbenchActionConstants.M_EDIT); if (editMenu != null) { editMenu.add(new Separator()); - editMenu.add(fContentAssistProposal); - editMenu.add(fContentAssistTip); + editMenu.add(fContentAssist); + editMenu.add(fGotoMatchingBracket); + + // editMenu.add(fContentAssistTip); } - IToolBarManager toolBarManager = bars.getToolBarManager(); - if (toolBarManager != null) { - toolBarManager.add(new Separator()); - toolBarManager.add(fTogglePresentation); - } + bars.setGlobalActionHandler( + PHPdtActionConstants.CONTENT_ASSIST, + fContentAssist); + // IToolBarManager toolBarManager = bars.getToolBarManager(); + // if (toolBarManager != null) { + // toolBarManager.add(new Separator()); + // toolBarManager.add(fTogglePresentation); + // } } private void doSetActiveEditor(IEditorPart part) { super.setActiveEditor(part); - ITextEditor editor = null; + ITextEditor textEditor = null; if (part instanceof ITextEditor) - editor = (ITextEditor) part; - - fContentAssistProposal.setAction(getAction(editor, "ContentAssistProposal")); //$NON-NLS-1$ - fContentAssistTip.setAction(getAction(editor, "ContentAssistTip")); //$NON-NLS-1$ - - IActionBars bars= getActionBars(); - bars.setGlobalActionHandler(COMMENT, getAction(editor, "Comment")); - bars.setGlobalActionHandler(UNCOMMENT, getAction(editor, "Uncomment")); - - fTogglePresentation.setEditor(editor); - fTogglePresentation.update(); + textEditor = (ITextEditor) part; + + fContentAssist.setAction(getAction(textEditor, "ContentAssistProposal")); //$NON-NLS-1$ + // fContentAssistTip.setAction(getAction(editor, "ContentAssistTip")); //$NON-NLS-1$ + fGotoMatchingBracket.setAction( + getAction(textEditor, GotoMatchingBracketAction.GOTO_MATCHING_BRACKET)); + + IActionBars bars = getActionBars(); + bars.setGlobalActionHandler( + PHPdtActionConstants.COMMENT, + getAction(textEditor, "Comment")); + bars.setGlobalActionHandler( + PHPdtActionConstants.UNCOMMENT, + getAction(textEditor, "Uncomment")); + bars.setGlobalActionHandler( + PHPdtActionConstants.FORMAT, + getAction(textEditor, "Format")); + + if (part instanceof PHPEditor) { + PHPEditor cuEditor = (PHPEditor) part; + ActionGroup group = cuEditor.getActionGroup(); + if (group != null) + group.fillActionBars(bars); + } + // fTogglePresentation.setEditor(editor); + // fTogglePresentation.update(); - parserAction.setEditor(editor); + parserAction.setEditor(textEditor); parserAction.update(); } @@ -95,9 +192,7 @@ public class PHPActionContributor extends TextEditorActionContributor { * @see IEditorActionBarContributor#setActiveEditor(IEditorPart) */ public void setActiveEditor(IEditorPart part) { - super.setActiveEditor(part); doSetActiveEditor(part); - } /*