org.symbian.tools.mtw.ui/src/org/symbian/tools/tmw/ui/navigator/RenameMoveActionProvider.java
changeset 461 7a8f9fa8d278
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/org.symbian.tools.mtw.ui/src/org/symbian/tools/tmw/ui/navigator/RenameMoveActionProvider.java	Mon Aug 09 15:18:34 2010 -0700
@@ -0,0 +1,101 @@
+/**
+ * Copyright (c) 2010 Symbian Foundation and/or its subsidiary(-ies).
+ * All rights reserved.
+ * This component and the accompanying materials are made available
+ * under the terms of the License "Eclipse Public License v1.0"
+ * which accompanies this distribution, and is available
+ * at the URL "http://www.eclipse.org/legal/epl-v10.html".
+ *
+ * Initial Contributors:
+ * Symbian Foundation - initial contribution.
+ * Contributors:
+ * Description:
+ * Overview:
+ * Details:
+ * Platforms/Drives/Compatibility:
+ * Assumptions/Requirement/Pre-requisites:
+ * Failures and causes:
+ */
+package org.symbian.tools.tmw.ui.navigator;
+
+import java.util.Collection;
+import java.util.HashSet;
+
+import org.eclipse.jface.action.IAction;
+import org.eclipse.jface.action.IMenuManager;
+import org.eclipse.jface.action.Separator;
+import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionProvider;
+import org.eclipse.ui.IActionBars;
+import org.eclipse.ui.IViewPart;
+import org.eclipse.ui.IWorkbenchPartSite;
+import org.eclipse.ui.actions.ActionContext;
+import org.eclipse.ui.actions.ActionFactory;
+import org.eclipse.ui.navigator.CommonActionProvider;
+import org.eclipse.ui.navigator.ICommonActionExtensionSite;
+import org.eclipse.ui.navigator.ICommonViewerWorkbenchSite;
+import org.eclipse.wst.jsdt.ui.IContextMenuConstants;
+import org.eclipse.wst.jsdt.ui.actions.IJavaEditorActionDefinitionIds;
+import org.eclipse.wst.jsdt.ui.actions.JdtActionConstants;
+import org.eclipse.wst.jsdt.ui.actions.MoveAction;
+import org.eclipse.wst.jsdt.ui.actions.RenameAction;
+import org.eclipse.wst.jsdt.ui.actions.SelectionDispatchAction;
+
+public class RenameMoveActionProvider extends CommonActionProvider {
+ 	private SelectionDispatchAction fMoveAction;
+	private SelectionDispatchAction fRenameAction;
+	
+	private final Collection<IAction> fActions = new HashSet<IAction>();
+
+	public void fillActionBars(IActionBars actionBars) {
+		if (fActions.size() > 0) {
+			actionBars.setGlobalActionHandler(JdtActionConstants.RENAME, fRenameAction);
+			actionBars.setGlobalActionHandler(ActionFactory.RENAME.getId(), fRenameAction);
+
+			actionBars.setGlobalActionHandler(JdtActionConstants.MOVE, fMoveAction);
+			actionBars.setGlobalActionHandler(ActionFactory.MOVE.getId(), fMoveAction);
+		}
+	}
+
+	public void fillContextMenu(IMenuManager menu) {
+		menu.appendToGroup(IContextMenuConstants.GROUP_REORGANIZE, new Separator());
+		for (IAction action : fActions) {
+			menu.appendToGroup(IContextMenuConstants.GROUP_REORGANIZE, action);
+		}
+	}
+
+	public void init(ICommonActionExtensionSite site) {
+		ICommonViewerWorkbenchSite workbenchSite= null;
+		if (site.getViewSite() instanceof ICommonViewerWorkbenchSite) {
+            workbenchSite= (ICommonViewerWorkbenchSite) site.getViewSite();
+        }
+
+		// we only initialize the refactor group when in a view part 
+		// (required for the constructor)
+		if (workbenchSite != null) {
+			if (workbenchSite.getPart() != null && workbenchSite.getPart() instanceof IViewPart) {
+				IViewPart viewPart= (IViewPart) workbenchSite.getPart();
+				IWorkbenchPartSite s = viewPart.getSite();
+
+				fRenameAction= new RenameAction(s);
+				initUpdatingAction(fRenameAction, workbenchSite.getSelectionProvider(), workbenchSite.getSelectionProvider().getSelection(), IJavaEditorActionDefinitionIds.RENAME_ELEMENT);
+				fMoveAction= new MoveAction(s);
+				initUpdatingAction(fMoveAction, workbenchSite.getSelectionProvider(), workbenchSite.getSelectionProvider().getSelection(), IJavaEditorActionDefinitionIds.RENAME_ELEMENT);
+			}
+		}
+	}
+
+	private void initUpdatingAction(SelectionDispatchAction action, ISelectionProvider provider, ISelection selection, String actionDefinitionId){
+		action.setActionDefinitionId(actionDefinitionId);
+		action.update(selection);
+		if (provider != null) {
+            provider.addSelectionChangedListener(action);
+        }
+		fActions.add(action);
+	}
+
+	
+	public void setContext(ActionContext context) {
+		// Do nothing
+	}
+}