org.symbian.tools.mtw.ui/src/org/symbian/tools/mtw/ui/navigator/RenameMoveActionProvider.java
changeset 461 7a8f9fa8d278
parent 460 c0bff5ed874c
child 462 cdc4995b1677
equal deleted inserted replaced
460:c0bff5ed874c 461:7a8f9fa8d278
     1 /**
       
     2  * Copyright (c) 2010 Symbian Foundation and/or its subsidiary(-ies).
       
     3  * All rights reserved.
       
     4  * This component and the accompanying materials are made available
       
     5  * under the terms of the License "Eclipse Public License v1.0"
       
     6  * which accompanies this distribution, and is available
       
     7  * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8  *
       
     9  * Initial Contributors:
       
    10  * Symbian Foundation - initial contribution.
       
    11  * Contributors:
       
    12  * Description:
       
    13  * Overview:
       
    14  * Details:
       
    15  * Platforms/Drives/Compatibility:
       
    16  * Assumptions/Requirement/Pre-requisites:
       
    17  * Failures and causes:
       
    18  */
       
    19 package org.symbian.tools.mtw.ui.navigator;
       
    20 
       
    21 import java.util.Collection;
       
    22 import java.util.HashSet;
       
    23 
       
    24 import org.eclipse.jface.action.IAction;
       
    25 import org.eclipse.jface.action.IMenuManager;
       
    26 import org.eclipse.jface.action.Separator;
       
    27 import org.eclipse.jface.viewers.ISelection;
       
    28 import org.eclipse.jface.viewers.ISelectionProvider;
       
    29 import org.eclipse.ui.IActionBars;
       
    30 import org.eclipse.ui.IViewPart;
       
    31 import org.eclipse.ui.IWorkbenchPartSite;
       
    32 import org.eclipse.ui.actions.ActionContext;
       
    33 import org.eclipse.ui.actions.ActionFactory;
       
    34 import org.eclipse.ui.navigator.CommonActionProvider;
       
    35 import org.eclipse.ui.navigator.ICommonActionExtensionSite;
       
    36 import org.eclipse.ui.navigator.ICommonViewerWorkbenchSite;
       
    37 import org.eclipse.wst.jsdt.ui.IContextMenuConstants;
       
    38 import org.eclipse.wst.jsdt.ui.actions.IJavaEditorActionDefinitionIds;
       
    39 import org.eclipse.wst.jsdt.ui.actions.JdtActionConstants;
       
    40 import org.eclipse.wst.jsdt.ui.actions.MoveAction;
       
    41 import org.eclipse.wst.jsdt.ui.actions.RenameAction;
       
    42 import org.eclipse.wst.jsdt.ui.actions.SelectionDispatchAction;
       
    43 
       
    44 public class RenameMoveActionProvider extends CommonActionProvider {
       
    45  	private SelectionDispatchAction fMoveAction;
       
    46 	private SelectionDispatchAction fRenameAction;
       
    47 	
       
    48 	private final Collection<IAction> fActions = new HashSet<IAction>();
       
    49 
       
    50 	public void fillActionBars(IActionBars actionBars) {
       
    51 		if (fActions.size() > 0) {
       
    52 			actionBars.setGlobalActionHandler(JdtActionConstants.RENAME, fRenameAction);
       
    53 			actionBars.setGlobalActionHandler(ActionFactory.RENAME.getId(), fRenameAction);
       
    54 
       
    55 			actionBars.setGlobalActionHandler(JdtActionConstants.MOVE, fMoveAction);
       
    56 			actionBars.setGlobalActionHandler(ActionFactory.MOVE.getId(), fMoveAction);
       
    57 		}
       
    58 	}
       
    59 
       
    60 	public void fillContextMenu(IMenuManager menu) {
       
    61 		menu.appendToGroup(IContextMenuConstants.GROUP_REORGANIZE, new Separator());
       
    62 		for (IAction action : fActions) {
       
    63 			menu.appendToGroup(IContextMenuConstants.GROUP_REORGANIZE, action);
       
    64 		}
       
    65 	}
       
    66 
       
    67 	public void init(ICommonActionExtensionSite site) {
       
    68 		ICommonViewerWorkbenchSite workbenchSite= null;
       
    69 		if (site.getViewSite() instanceof ICommonViewerWorkbenchSite) {
       
    70             workbenchSite= (ICommonViewerWorkbenchSite) site.getViewSite();
       
    71         }
       
    72 
       
    73 		// we only initialize the refactor group when in a view part 
       
    74 		// (required for the constructor)
       
    75 		if (workbenchSite != null) {
       
    76 			if (workbenchSite.getPart() != null && workbenchSite.getPart() instanceof IViewPart) {
       
    77 				IViewPart viewPart= (IViewPart) workbenchSite.getPart();
       
    78 				IWorkbenchPartSite s = viewPart.getSite();
       
    79 
       
    80 				fRenameAction= new RenameAction(s);
       
    81 				initUpdatingAction(fRenameAction, workbenchSite.getSelectionProvider(), workbenchSite.getSelectionProvider().getSelection(), IJavaEditorActionDefinitionIds.RENAME_ELEMENT);
       
    82 				fMoveAction= new MoveAction(s);
       
    83 				initUpdatingAction(fMoveAction, workbenchSite.getSelectionProvider(), workbenchSite.getSelectionProvider().getSelection(), IJavaEditorActionDefinitionIds.RENAME_ELEMENT);
       
    84 			}
       
    85 		}
       
    86 	}
       
    87 
       
    88 	private void initUpdatingAction(SelectionDispatchAction action, ISelectionProvider provider, ISelection selection, String actionDefinitionId){
       
    89 		action.setActionDefinitionId(actionDefinitionId);
       
    90 		action.update(selection);
       
    91 		if (provider != null) {
       
    92             provider.addSelectionChangedListener(action);
       
    93         }
       
    94 		fActions.add(action);
       
    95 	}
       
    96 
       
    97 	
       
    98 	public void setContext(ActionContext context) {
       
    99 		// Do nothing
       
   100 	}
       
   101 }