PHP perspective and new Project Wizard
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpeclipse / resourcesview / MainActionGroup.java
diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/resourcesview/MainActionGroup.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpeclipse/resourcesview/MainActionGroup.java
new file mode 100644 (file)
index 0000000..3ad7a7b
--- /dev/null
@@ -0,0 +1,150 @@
+package net.sourceforge.phpeclipse.resourcesview;
+
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.jface.viewers.IStructuredSelection;
+import org.eclipse.jface.viewers.TreeViewer;
+import org.eclipse.swt.graphics.Image;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Shell;
+import org.eclipse.ui.IMemento;
+import org.eclipse.ui.IPropertyListener;
+import org.eclipse.ui.IViewSite;
+import org.eclipse.ui.IWorkbenchActionConstants;
+import org.eclipse.ui.IWorkbenchPartSite;
+import org.eclipse.ui.IWorkingSet;
+import org.eclipse.ui.PartInitException;
+import org.eclipse.ui.actions.ActionContext;
+import org.eclipse.ui.actions.ActionGroup;
+import org.eclipse.ui.actions.RefreshAction;
+import org.eclipse.ui.dialogs.PropertyDialogAction;
+import org.eclipse.ui.views.framelist.FrameList;
+import org.eclipse.ui.views.navigator.IResourceNavigator;
+import org.eclipse.ui.views.navigator.OpenActionGroup;
+import org.eclipse.ui.views.navigator.RefactorActionGroup;
+import org.eclipse.ui.views.navigator.ResourcePatternFilter;
+import org.eclipse.ui.views.navigator.ResourceSorter;
+
+public class MainActionGroup extends ActionGroup {
+
+       private OpenActionGroup openActionGroup;
+       private RefactorActionGroup refactorActionGroup;
+       private PropertyDialogAction propertyDialogAction ;
+       private RefreshAction refreshAction ;
+
+       public MainActionGroup(PHPResourcesView phpResourcesView) {
+               ResourceNavigatorAdapter adapter = new ResourceNavigatorAdapter(phpResourcesView) ;
+               this.openActionGroup = new OpenActionGroup(adapter);
+               this.refactorActionGroup = new RefactorActionGroup(adapter);
+               Shell shell = phpResourcesView.getSite().getShell();
+               propertyDialogAction = new PropertyDialogAction(shell, phpResourcesView.getViewer());
+               refreshAction = new RefreshAction(shell) ;
+       }
+
+       public void fillContextMenu(IMenuManager menu) {
+               this.openActionGroup.fillContextMenu(menu);
+               menu.add(new Separator());
+               this.refactorActionGroup.fillContextMenu(menu);
+               menu.add(new Separator());
+               menu.add(refreshAction) ;               
+               menu.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS));
+               menu.add(new Separator(IWorkbenchActionConstants.MB_ADDITIONS + "-end")); //$NON-NLS-1$ 
+               menu.add(propertyDialogAction) ;
+
+       }
+
+       public void setContext(ActionContext actionContext) {
+               this.openActionGroup.setContext(actionContext);
+               this.refactorActionGroup.setContext(actionContext);
+       }
+
+       public void runDefaultAction(IStructuredSelection selection) {
+               this.openActionGroup.runDefaultAction(selection);
+       }
+
+       class ResourceNavigatorAdapter implements IResourceNavigator {
+               PHPResourcesView phpResourcesView;
+               ResourceNavigatorAdapter(PHPResourcesView phpResourcesView) {
+                       this.phpResourcesView = phpResourcesView;
+               }
+
+               public FrameList getFrameList() {
+                       return null;
+               }
+
+               public ResourcePatternFilter getPatternFilter() {
+                       return null;
+               }
+
+               public ResourceSorter getSorter() {
+                       return null;
+               }
+
+               public TreeViewer getViewer() {
+                       return phpResourcesView.getViewer();
+               }
+
+               public IWorkingSet getWorkingSet() {
+                       return null;
+               }
+
+               public void setFiltersPreference(String[] patterns) {
+               }
+
+               public void setSorter(ResourceSorter sorter) {
+               }
+
+               public void setWorkingSet(IWorkingSet workingSet) {
+               }
+
+               public IViewSite getViewSite() {
+                       return phpResourcesView.getViewSite();
+               }
+
+               public void init(IViewSite arg0, IMemento arg1) throws PartInitException {
+               }
+
+               public void init(IViewSite arg0) throws PartInitException {
+               }
+
+               public void saveState(IMemento arg0) {
+               }
+
+               public void addPropertyListener(IPropertyListener arg0) {
+               }
+
+               public void createPartControl(Composite arg0) {
+               }
+
+               public void dispose() {
+               }
+
+               public IWorkbenchPartSite getSite() {
+                       return phpResourcesView.getSite();
+               }
+
+               public String getTitle() {
+                       return phpResourcesView.getTitle();
+               }
+
+               public Image getTitleImage() {
+                       return phpResourcesView.getTitleImage();
+               }
+
+               public String getTitleToolTip() {
+                       return phpResourcesView.getTitleToolTip();
+               }
+
+               public void removePropertyListener(IPropertyListener arg0) {
+               }
+
+               public void setFocus() {
+               }
+
+               public Object getAdapter(Class arg0) {
+                       return phpResourcesView.getAdapter(arg0);
+               }
+
+       }
+
+}
\ No newline at end of file