Added: PreferencePage; External Browser startup; extended syntax highlighting
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpeclipse / phpeditor / PHPActionContributor.java
diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/PHPActionContributor.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/phpeditor/PHPActionContributor.java
new file mode 100644 (file)
index 0000000..1fbefe5
--- /dev/null
@@ -0,0 +1,97 @@
+package net.sourceforge.phpeclipse.phpeditor;
+
+/**********************************************************************
+Copyright (c) 2000, 2002 IBM Corp. 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:
+    IBM Corporation - Initial implementation
+    Klaus Hartlage - www.eclipseproject.de
+**********************************************************************/
+
+import java.util.ResourceBundle;
+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.texteditor.BasicTextEditorActionContributor;
+import org.eclipse.ui.texteditor.ITextEditor;
+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.
+ */
+public class PHPActionContributor extends TextEditorActionContributor {
+
+       protected RetargetTextEditorAction fContentAssistProposal;
+       protected RetargetTextEditorAction fContentAssistTip;
+       protected TextEditorAction fTogglePresentation;
+
+       /**
+        * Default constructor.
+        */
+       public PHPActionContributor() {
+               super();
+               fContentAssistProposal= new RetargetTextEditorAction(PHPEditorMessages.getResourceBundle(), "ContentAssistProposal."); //$NON-NLS-1$
+               fContentAssistTip= new RetargetTextEditorAction(PHPEditorMessages.getResourceBundle(), "ContentAssistTip."); //$NON-NLS-1$
+               fTogglePresentation= new PresentationAction();
+       }
+       
+       /*
+        * @see IEditorActionBarContributor#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);
+               }
+       }
+       
+       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#setActiveEditor(IEditorPart)
+        */
+       public void setActiveEditor(IEditorPart part) {
+               super.setActiveEditor(part);
+               doSetActiveEditor(part);
+       }
+       
+       /*
+        * @see IEditorActionBarContributor#dispose()
+        */
+       public void dispose() {
+               doSetActiveEditor(null);
+               super.dispose();
+       }
+}