Started with PHP/HTML Formatter menu => doesn't work right now
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpeclipse / phpeditor / PHPActionContributor.java
index 84fdf1c..587bc9d 100644 (file)
@@ -12,27 +12,31 @@ Contributors:
     Klaus Hartlage - www.eclipseproject.de
 **********************************************************************/
 
-import java.util.ResourceBundle;
+import net.sourceforge.phpdt.ui.IContextMenuConstants;
+import net.sourceforge.phpdt.ui.actions.PHPdtActionConstants;
+
 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.RetargetTextEditorAction;
-import org.eclipse.ui.texteditor.TextEditorAction;
 
 /**
  * Contributes interesting PHP actions to the desktop's Edit menu and the toolbar.
  */
-public class PHPActionContributor extends BasicTextEditorActionContributor implements PHPEditorActionDefinitionIds {
+public class PHPActionContributor extends BasicTextEditorActionContributor   {
 
-  protected RetargetTextEditorAction fContentAssistProposal;
   // protected RetargetTextEditorAction fContentAssistTip;
   // protected TextEditorAction fTogglePresentation;
+  protected RetargetAction fRetargetContentAssist;
+       
+  protected RetargetTextEditorAction fContentAssist;
+  
   protected PHPParserAction parserAction;
 
   /**
@@ -40,13 +44,41 @@ public class PHPActionContributor extends BasicTextEditorActionContributor imple
    */
   public PHPActionContributor() {
     super();
-    fContentAssistProposal = new RetargetTextEditorAction(PHPEditorMessages.getResourceBundle(), "ContentAssistProposal."); //$NON-NLS-1$
+    
+       fRetargetContentAssist= new RetargetAction(PHPdtActionConstants.CONTENT_ASSIST,  PHPEditorMessages.getString("ContentAssistProposal.label")); //$NON-NLS-1$
+       fRetargetContentAssist.setActionDefinitionId(PHPEditorActionDefinitionIds.CONTENT_ASSIST_PROPOSALS);
+               
+       fContentAssist= new RetargetTextEditorAction(PHPEditorMessages.getResourceBundle(), "ContentAssistProposal."); //$NON-NLS-1$
+       fContentAssist.setActionDefinitionId(PHPEditorActionDefinitionIds.CONTENT_ASSIST_PROPOSALS); 
+//     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) {
+//               editMenu.add(new Separator(IContextMenuConstants.GROUP_OPEN));
+//               editMenu.add(new Separator(IContextMenuConstants.GROUP_GENERATE));
+//                     
+//               editMenu.appendToGroup(IContextMenuConstants.GROUP_GENERATE, fRetargetContentAssist);
+//       }             
+//  }
+  
+  /*
    * @see IEditorActionBarContributor#init(IActionBars)
    */
   public void init(IActionBars bars) {
@@ -56,10 +88,11 @@ public class PHPActionContributor extends BasicTextEditorActionContributor imple
     IMenuManager editMenu = menuManager.findMenuUsingPath(IWorkbenchActionConstants.M_EDIT);
     if (editMenu != null) {
       editMenu.add(new Separator());
-      editMenu.add(fContentAssistProposal);
+      editMenu.add(fContentAssist);
       //   editMenu.add(fContentAssistTip);
     }
 
+       bars.setGlobalActionHandler(PHPdtActionConstants.CONTENT_ASSIST, fContentAssist);
     //    IToolBarManager toolBarManager = bars.getToolBarManager();
     //    if (toolBarManager != null) {
     //      toolBarManager.add(new Separator());
@@ -74,13 +107,20 @@ public class PHPActionContributor extends BasicTextEditorActionContributor imple
     if (part instanceof ITextEditor)
       textEditor = (ITextEditor) part;
 
-    fContentAssistProposal.setAction(getAction(textEditor, "ContentAssistProposal")); //$NON-NLS-1$
+    fContentAssist.setAction(getAction(textEditor, "ContentAssistProposal")); //$NON-NLS-1$
     //  fContentAssistTip.setAction(getAction(editor, "ContentAssistTip")); //$NON-NLS-1$
-
+    
     IActionBars bars = getActionBars();
-    bars.setGlobalActionHandler(COMMENT, getAction(textEditor, "Comment"));
-    bars.setGlobalActionHandler(UNCOMMENT, getAction(textEditor, "Uncomment"));
-
+    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();
 
@@ -92,9 +132,7 @@ public class PHPActionContributor extends BasicTextEditorActionContributor imple
    * @see IEditorActionBarContributor#setActiveEditor(IEditorPart)
    */
   public void setActiveEditor(IEditorPart part) {
-    super.setActiveEditor(part);
-    doSetActiveEditor(part);
-
+    doSetActiveEditor(part);   
   }
 
   /*