removed dependency from XSDEditor in refactoring actions
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/XSDMenuListener.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/XSDMenuListener.java
index 4343091..60ad27d 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/XSDMenuListener.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/XSDMenuListener.java
@@ -2061,7 +2061,7 @@
   }
   
   protected void addRefactorMenuGroup(IMenuManager manager){
-    	fRefactorMenuGroup = new RefactorActionGroup();
+	  	fRefactorMenuGroup = new RefactorActionGroup(selectionProvider, getXSDSchema());
      	ActionContext context= new ActionContext(selectionProvider.getSelection());
     	fRefactorMenuGroup.setContext(context);
     	fRefactorMenuGroup.fillContextMenu(manager);
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/XSDTextEditor.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/XSDTextEditor.java
index 386c4e1..6bde5f0 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/XSDTextEditor.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/XSDTextEditor.java
@@ -376,7 +376,8 @@
     
     wrappedAction = new WrappedOpenFileAction(resourceBundle, StructuredTextEditorActionConstants.ACTION_NAME_OPEN_FILE + DOT, this);
     setAction(StructuredTextEditorActionConstants.ACTION_NAME_OPEN_FILE, wrappedAction);
-	fRefactorMenuGroup = new RefactorActionGroup(this, ITextEditorActionConstants.GROUP_EDIT);
+	fRefactorMenuGroup = new RefactorActionGroup(this.getXSDEditor().getSelectionManager(), getXSDSchema(), ITextEditorActionConstants.GROUP_EDIT
+);
 
   }
   /* (non-Javadoc)
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/actions/MakeLocalElementGlobalAction.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/actions/MakeLocalElementGlobalAction.java
index 0361aff..de0b330 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/actions/MakeLocalElementGlobalAction.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/actions/MakeLocalElementGlobalAction.java
@@ -10,62 +10,23 @@
  *******************************************************************************/
 package org.eclipse.wst.xsd.ui.internal.refactor.actions;
 
-import java.util.List;
-
-import org.eclipse.jface.text.ITextSelection;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchSite;
+import org.eclipse.jface.viewers.ISelectionProvider;
 import org.eclipse.wst.xml.core.internal.document.DocumentImpl;
-import org.eclipse.wst.xsd.ui.internal.XSDEditor;
 import org.eclipse.wst.xsd.ui.internal.commands.MakeLocalElementGlobalCommand;
 import org.eclipse.wst.xsd.ui.internal.refactor.RefactoringMessages;
 import org.eclipse.xsd.XSDConcreteComponent;
 import org.eclipse.xsd.XSDElementDeclaration;
+import org.eclipse.xsd.XSDSchema;
 import org.w3c.dom.Node;
 
 public class MakeLocalElementGlobalAction extends SelectionDispatchAction {
 
-	private XSDEditor fEditor;
-
 	XSDElementDeclaration fSelectedComponent;
 
-	public MakeLocalElementGlobalAction(IWorkbenchSite site) {
-		super(site);
-		setText(RefactoringMessages
-				.getString("MakeLocalElementGlobalAction.text")); //$NON-NLS-1$
-
-		IEditorPart editorPart = site.getPage().getActiveEditor();
-		if (editorPart instanceof XSDEditor) {
-			fEditor = (XSDEditor) editorPart;
-		}
-		setEnabled(canOperateOn(fEditor));
-	}
-
-	public MakeLocalElementGlobalAction(XSDEditor editor) {
-		this(editor.getEditorSite());
-		fEditor = editor;
-		setEnabled(canOperateOn(fEditor));
-	}
-
-	public static boolean canOperateOn(XSDEditor editor) {
-		if (editor == null)
-			return false;
-		return editor.getEditorInput() != null;
-
-	}
-
-	public void selectionChanged(ITextSelection selection) {
-
-		if(fEditor == null){
-			setEnabled(false);
-			return;
-		}
-		List elements = fEditor.getSelectedNodes();
-		if (elements.size() == 1) {
-			Object object = elements.get(0);
-			setEnabled(canEnable(object));
-		}
-
+	public MakeLocalElementGlobalAction(ISelectionProvider selectionProvider, XSDSchema schema) {
+		super(selectionProvider);
+		setText(RefactoringMessages.getString("MakeLocalElementGlobalAction.text")); //$NON-NLS-1$
+		setSchema(schema);
 	}
 	
 	public boolean canRun() {
@@ -88,13 +49,12 @@
 	
 	protected boolean canEnable(Object selectedObject) {
 		
-		if(fEditor == null) return false;
 		if (selectedObject instanceof XSDConcreteComponent) {
 			return canEnable((XSDConcreteComponent)selectedObject);
 		}
 		else if (selectedObject instanceof Node) {
 			Node node = (Node) selectedObject;
-			XSDConcreteComponent concreteComponent = fEditor.getXSDSchema()
+			XSDConcreteComponent concreteComponent = getSchema()
 					.getCorrespondingComponent(node);
 			return canEnable(concreteComponent);
 		}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/actions/RefactorActionGroup.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/actions/RefactorActionGroup.java
index 3a48b28..0b699e7 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/actions/RefactorActionGroup.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/actions/RefactorActionGroup.java
@@ -20,6 +20,7 @@
 import org.eclipse.jface.action.IMenuManager;
 import org.eclipse.jface.action.MenuManager;
 import org.eclipse.jface.action.Separator;
+import org.eclipse.jface.util.Assert;
 import org.eclipse.jface.viewers.ISelection;
 import org.eclipse.jface.viewers.ISelectionChangedListener;
 import org.eclipse.jface.viewers.ISelectionProvider;
@@ -27,16 +28,12 @@
 import org.eclipse.swt.events.MenuEvent;
 import org.eclipse.swt.widgets.Menu;
 import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IEditorPart;
 import org.eclipse.ui.IWorkbenchActionConstants;
-import org.eclipse.ui.IWorkbenchPart;
 import org.eclipse.ui.IWorkbenchSite;
 import org.eclipse.ui.actions.ActionFactory;
 import org.eclipse.ui.actions.ActionGroup;
-import org.eclipse.wst.xsd.ui.internal.XSDEditor;
-import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.XSDTextEditor;
 import org.eclipse.wst.xsd.ui.internal.refactor.RefactoringMessages;
+import org.eclipse.xsd.XSDSchema;
 
 /**
  * Action group that adds refactor actions (for example 'Rename', 'Move') to a
@@ -61,9 +58,16 @@
 	 */
 	public static final String GROUP_REORGANIZE = IWorkbenchActionConstants.GROUP_REORGANIZE;
 
+	/**
+	 * 
+	 * @deprecated
+	 * 
+	 */
 	private IWorkbenchSite fSite;
 
-	private XSDEditor fEditor;
+	private ISelectionProvider fSelectionProvider;
+
+	private XSDSchema fSchema;
 
 	private String fGroupName = GROUP_REORGANIZE;
 
@@ -84,51 +88,38 @@
 	}
 
 	private Action fNoActionAvailable = new NoActionAvailable();
-
-	public RefactorActionGroup() {
-		
-		IWorkbenchPart part = XSDEditorPlugin.getPlugin().getWorkbench()
-				.getActiveWorkbenchWindow().getPartService().getActivePart();
-		if(part != null){
-			fSite = part.getSite();
-			IEditorPart editorPart = fSite.getPage().getActiveEditor();
-			if (editorPart instanceof XSDEditor) {
-				fEditor = (XSDEditor) editorPart;
-			}
-			initActions(fSite);
-			
-		}
-
-	}
-
-	public RefactorActionGroup(XSDTextEditor textEditor, String groupName) {
-		fEditor = textEditor.getXSDEditor();
-		fSite = fEditor.getEditorSite();
+	
+	public RefactorActionGroup(ISelectionProvider selectionProvider,
+			XSDSchema schema, String groupName) {
+		this(selectionProvider, schema);
 		fGroupName = groupName;
-		initActions(fSite);
-	}
-
-	private static void initAction(SelectionDispatchAction action,
-			ISelectionProvider provider, ISelection selection) {
-		
-		action.update(selection);
-		provider.addSelectionChangedListener(action);
 	}
 	
-	private void initActions(IWorkbenchSite site) {
+	public RefactorActionGroup(ISelectionProvider selectionProvider,
+			XSDSchema schema) {
+		fSelectionProvider = selectionProvider;
+		fSchema = schema;
 		fEditorActions = new ArrayList();
-		fRenameAction = new RenameAction(site);
+		fRenameAction = new RenameAction(selectionProvider, schema);
 		fRenameAction.setActionDefinitionId(RENAME_ELEMENT);
 		fEditorActions.add(fRenameAction);
 
-		fMakeLocalElementGlobal = new MakeLocalElementGlobalAction(site);
+		fMakeLocalElementGlobal = new MakeLocalElementGlobalAction(
+				selectionProvider, schema);
 		fMakeLocalElementGlobal.setActionDefinitionId(MAKE_ELEMENT_GLOBAL);
 		fEditorActions.add(fMakeLocalElementGlobal);
 
-		ISelectionProvider provider = site.getSelectionProvider();
-		ISelection selection = provider.getSelection();
-		initAction(fRenameAction, provider, selection);
-		initAction(fMakeLocalElementGlobal, provider, selection);
+		initAction(fRenameAction, fSelectionProvider);
+		initAction(fMakeLocalElementGlobal, fSelectionProvider);
+	}
+
+	private static void initAction(SelectionDispatchAction action,
+			ISelectionProvider provider) {
+
+		Assert.isNotNull(provider);
+		Assert.isNotNull(action);
+		action.update(provider.getSelection());
+		provider.addSelectionChangedListener(action);
 	}
 
 	/*
@@ -163,9 +154,9 @@
 	 * @see ActionGroup#dispose()
 	 */
 	public void dispose() {
-		ISelectionProvider provider = fSite.getSelectionProvider();
-		disposeAction(fRenameAction, provider);
-		disposeAction(fMakeLocalElementGlobal, provider);
+		//ISelectionProvider provider = fSite.getSelectionProvider();
+		disposeAction(fRenameAction, fSelectionProvider);
+		disposeAction(fMakeLocalElementGlobal, fSelectionProvider);
 		super.dispose();
 	}
 
@@ -176,11 +167,11 @@
 	}
 
 	private void addRefactorSubmenu(IMenuManager menu) {
-		
+
 		String menuText = RefactoringMessages.getString("RefactorMenu.label"); //$NON-NLS-1$
 
 		fRefactorSubmenu = new MenuManager(menuText, MENU_ID);
-		if (fEditor != null) {
+		//if (fEditor != null) {
 			fRefactorSubmenu.addMenuListener(new IMenuListener() {
 				public void menuAboutToShow(IMenuManager manager) {
 					refactorMenuShown(manager);
@@ -188,17 +179,16 @@
 			});
 			fRefactorSubmenu.add(fNoActionAvailable);
 			if (menu.find(fRefactorSubmenu.getId()) == null) {
-				if(menu.find(fGroupName) == null){
+				if (menu.find(fGroupName) == null) {
 					menu.add(fRefactorSubmenu);
-				}
-				else{
+				} else {
 					menu.appendToGroup(fGroupName, fRefactorSubmenu);
 				}
 			}
-		} else {
-			if (fillRefactorMenu(fRefactorSubmenu) > 0)
-				menu.appendToGroup(fGroupName, fRefactorSubmenu);
-		}
+//		} else {
+//			if (fillRefactorMenu(fRefactorSubmenu) > 0)
+//				menu.appendToGroup(fGroupName, fRefactorSubmenu);
+//		}
 	}
 
 	private int fillRefactorMenu(IMenuManager refactorSubmenu) {
@@ -236,8 +226,9 @@
 				refactorMenuHidden(refactorSubmenu);
 			}
 		});
-		ISelection selection = (ISelection) fEditor.getSelectionManager()
-				.getSelection();
+//		ISelection selection = (ISelection) fEditor.getSelectionManager()
+//				.getSelection();
+		ISelection selection = fSelectionProvider.getSelection();
 		for (Iterator iter = fEditorActions.iterator(); iter.hasNext();) {
 			Action action = (Action) iter.next();
 			if (action instanceof SelectionDispatchAction) {
@@ -251,8 +242,9 @@
 	}
 
 	private void refactorMenuHidden(IMenuManager manager) {
-		ISelection selection = (ISelection) fEditor.getSelectionManager()
-				.getSelection();
+//		ISelection selection = (ISelection) fEditor.getSelectionManager()
+//				.getSelection();
+		ISelection selection = fSelectionProvider.getSelection();
 		for (Iterator iter = fEditorActions.iterator(); iter.hasNext();) {
 			Action action = (Action) iter.next();
 			if (action instanceof SelectionDispatchAction) {
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/actions/RenameAction.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/actions/RenameAction.java
index fcf363c..b01cb8a 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/actions/RenameAction.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/actions/RenameAction.java
@@ -5,12 +5,12 @@
 import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.text.ITextSelection;
 import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionProvider;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchSite;
-import org.eclipse.wst.xsd.ui.internal.XSDEditor;
+import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
 import org.eclipse.wst.xsd.ui.internal.refactor.RefactoringMessages;
+import org.eclipse.xsd.XSDSchema;
 
 
 /**
@@ -28,27 +28,16 @@
 
 	private RenameComponentAction fRenameXSDElement;
 	private RenameResourceAction fRenameResource;
-	private XSDEditor fEditor;
-		
-	/**
-	 * Creates a new <code>RenameAction</code>. The action requires
-	 * that the selection provided by the site's selection provider is of type <code>
-	 * org.eclipse.jface.viewers.IStructuredSelection</code>.
-	 * 
-	 * @param site the site providing context information for this action
-	 */
-	public RenameAction(IWorkbenchSite site) {
-		super(site);
+	
+	
+	public RenameAction(ISelectionProvider selectionProvider, XSDSchema schema) {
+		super(selectionProvider);
 		setText(RefactoringMessages.getString("RenameAction.text")); //$NON-NLS-1$
-		fRenameXSDElement= new RenameComponentAction(site);
+		fRenameXSDElement= new RenameComponentAction(selectionProvider, schema);
 		fRenameXSDElement.setText(getText());
-		fRenameResource= new RenameResourceAction(site);
+		fRenameResource= new RenameResourceAction(selectionProvider);
 		fRenameResource.setText(getText());
-		IEditorPart editorPart = site.getPage().getActiveEditor();
-		if(editorPart instanceof XSDEditor){
-			fEditor = (XSDEditor)editorPart;
-		}
-		//TODO set help context ids
+		
 	}
 	
 	/*
@@ -92,12 +81,11 @@
 		if (fRenameXSDElement.canRun())
 			fRenameXSDElement.run(selection);
 		else
-			MessageDialog.openInformation(fEditor.getEditorSite().getShell(), RefactoringMessages.getString("RenameAction.rename"), RefactoringMessages.getString("RenameAction.unavailable"));  //$NON-NLS-1$ //$NON-NLS-2$
+			MessageDialog.openInformation(XSDEditorPlugin.getShell(), RefactoringMessages.getString("RenameAction.rename"), RefactoringMessages.getString("RenameAction.unavailable"));  //$NON-NLS-1$ //$NON-NLS-2$
 	}
 	public void run(ISelection selection) {
 	    if(selection == null){
-	    	ISelection editorSelection = fEditor.getSelectionManager().getSelection();
-	    	super.dispatchRun(editorSelection);
+	    	super.run();
 	    }
 	    else{
 	    	super.run(selection);
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/actions/RenameComponentAction.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/actions/RenameComponentAction.java
index 4fe970a..0d7a46b 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/actions/RenameComponentAction.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/actions/RenameComponentAction.java
@@ -10,19 +10,14 @@
  *******************************************************************************/
 package org.eclipse.wst.xsd.ui.internal.refactor.actions;
 
-import java.util.List;
-
 import org.eclipse.core.resources.IncrementalProjectBuilder;
 import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.jface.text.ITextSelection;
 import org.eclipse.jface.viewers.ISelection;
+import org.eclipse.jface.viewers.ISelectionProvider;
 import org.eclipse.ltk.core.refactoring.participants.RenameRefactoring;
 import org.eclipse.ltk.ui.refactoring.RefactoringWizard;
 import org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation;
-import org.eclipse.ui.IEditorPart;
-import org.eclipse.ui.IWorkbenchSite;
 import org.eclipse.ui.actions.GlobalBuildAction;
-import org.eclipse.wst.xsd.ui.internal.XSDEditor;
 import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
 import org.eclipse.wst.xsd.ui.internal.refactor.RefactoringMessages;
 import org.eclipse.wst.xsd.ui.internal.refactor.rename.RenameComponentProcessor;
@@ -30,112 +25,97 @@
 import org.eclipse.xsd.XSDConcreteComponent;
 import org.eclipse.xsd.XSDElementDeclaration;
 import org.eclipse.xsd.XSDNamedComponent;
+import org.eclipse.xsd.XSDSchema;
 import org.w3c.dom.Node;
 
-
 public class RenameComponentAction extends SelectionDispatchAction {
 
-	private XSDEditor fEditor;
 	private XSDNamedComponent fSelectedComponent;
-	
-	public RenameComponentAction(IWorkbenchSite site) {
-		super(site);
-		IEditorPart editorPart = site.getPage().getActiveEditor();
-		if(editorPart instanceof XSDEditor){
-			fEditor = (XSDEditor)editorPart;
-			setEnabled(canOperateOn(fEditor));
-		}
-	}
-	
-	public static boolean canOperateOn(XSDEditor editor) {
-		if (editor == null)
-			return false;
-		return editor.getEditorInput() != null;
-		
-	}
 
-	public void selectionChanged(ITextSelection selection) {
-
-		List elements = fEditor.getSelectedNodes();
-		if (elements.size() == 1) {
-			Object object = elements.get(0);
-			setEnabled(canEnable(object));
-		}
-
+	public RenameComponentAction(ISelectionProvider selectionProvider,
+			XSDSchema schema) {
+		super(selectionProvider);
+		setSchema(schema);
 	}
 
 	protected boolean canEnable(XSDConcreteComponent selectedObject) {
-		
+
 		fSelectedComponent = null;
 		if (selectedObject instanceof XSDNamedComponent) {
 			fSelectedComponent = (XSDNamedComponent) selectedObject;
-			
+
 			// if it's element reference, then this action is not appropriate
 			if (fSelectedComponent instanceof XSDElementDeclaration) {
 				XSDElementDeclaration element = (XSDElementDeclaration) fSelectedComponent;
 				if (element.isElementDeclarationReference()) {
 					fSelectedComponent = null;
 				}
-			} 
-		} 
-		
+			}
+		}
+
 		return canRun();
 	}
-	
-	
+
 	protected boolean canEnable(Object selectedObject) {
-		
-		if(fEditor == null) return false;
+
 		if (selectedObject instanceof XSDConcreteComponent) {
-			return canEnable((XSDConcreteComponent)selectedObject);
-		}
-		else if (selectedObject instanceof Node) {
+			return canEnable((XSDConcreteComponent) selectedObject);
+		} else if (selectedObject instanceof Node) {
 			Node node = (Node) selectedObject;
-			XSDConcreteComponent concreteComponent = fEditor.getXSDSchema()
-					.getCorrespondingComponent(node);
-			return canEnable(concreteComponent);
+			if (getSchema() != null) {
+				XSDConcreteComponent concreteComponent = getSchema()
+						.getCorrespondingComponent(node);
+				return canEnable(concreteComponent);
+			}
 		}
 		return false;
-		
+
 	}
-	
+
 	public boolean canRun() {
 
 		return fSelectedComponent != null;
 	}
 
 	public void run(ISelection selection) {
-		if (fSelectedComponent.getName() == null){
+		if (fSelectedComponent.getName() == null) {
 			fSelectedComponent.setName(new String());
 		}
-		if(fSelectedComponent.getSchema() == null){
-			fEditor.getXSDSchema().updateElement(true);
+		if (fSelectedComponent.getSchema() == null) {
+			if (getSchema() != null) {
+				getSchema().updateElement(true);
+			}
+
 		}
-		RenameComponentProcessor processor = new RenameComponentProcessor(fSelectedComponent, fSelectedComponent.getName());
+		RenameComponentProcessor processor = new RenameComponentProcessor(
+				fSelectedComponent, fSelectedComponent.getName());
 		RenameRefactoring refactoring = new RenameRefactoring(processor);
 		try {
 			RefactoringWizard wizard = new RenameRefactoringWizard(
 					refactoring,
-					RefactoringMessages.getString("RenameComponentWizard.defaultPageTitle"), //$NON-NLS-1$ TODO: provide correct strings
-					RefactoringMessages.getString("RenameComponentWizard.inputPage.description"), //$NON-NLS-1$
+					RefactoringMessages
+							.getString("RenameComponentWizard.defaultPageTitle"), //$NON-NLS-1$ TODO: provide correct strings
+					RefactoringMessages
+							.getString("RenameComponentWizard.inputPage.description"), //$NON-NLS-1$
 					null);
-			RefactoringWizardOpenOperation op= new RefactoringWizardOpenOperation(wizard);
-			int result= op.run(XSDEditorPlugin.getShell(), wizard.getDefaultPageTitle());
+			RefactoringWizardOpenOperation op = new RefactoringWizardOpenOperation(
+					wizard);
+			int result = op.run(XSDEditorPlugin.getShell(), wizard
+					.getDefaultPageTitle());
 			op.getInitialConditionCheckingStatus();
 			triggerBuild();
 		} catch (InterruptedException e) {
 			// do nothing. User action got cancelled
 		}
-		
+
 	}
 
-	
 	public static void triggerBuild() {
 		if (ResourcesPlugin.getWorkspace().getDescription().isAutoBuilding()) {
-			new GlobalBuildAction(XSDEditorPlugin.getPlugin().getWorkbench().getActiveWorkbenchWindow(), IncrementalProjectBuilder.INCREMENTAL_BUILD).run();
+			new GlobalBuildAction(XSDEditorPlugin.getPlugin().getWorkbench()
+					.getActiveWorkbenchWindow(),
+					IncrementalProjectBuilder.INCREMENTAL_BUILD).run();
 		}
 	}
-	
-	
-	  
+
 }
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/actions/RenameResourceAction.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/actions/RenameResourceAction.java
index 52c1d22..b025199 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/actions/RenameResourceAction.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/actions/RenameResourceAction.java
@@ -11,11 +11,12 @@
 package org.eclipse.wst.xsd.ui.internal.refactor.actions;
 
 import org.eclipse.core.resources.IResource;
+import org.eclipse.jface.viewers.ISelectionProvider;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.ltk.core.refactoring.participants.RenameRefactoring;
 import org.eclipse.ltk.ui.refactoring.RefactoringWizard;
 import org.eclipse.ltk.ui.refactoring.RefactoringWizardOpenOperation;
-import org.eclipse.ui.IWorkbenchSite;
+import org.eclipse.wst.xsd.ui.internal.XSDEditorPlugin;
 import org.eclipse.wst.xsd.ui.internal.refactor.RefactoringMessages;
 import org.eclipse.wst.xsd.ui.internal.refactor.rename.RenameRefactoringWizard;
 import org.eclipse.wst.xsd.ui.internal.refactor.rename.RenameResourceProcessor;
@@ -24,8 +25,9 @@
 
 public class RenameResourceAction extends SelectionDispatchAction {
 
-	public RenameResourceAction(IWorkbenchSite site) {
-		super(site);
+
+	public RenameResourceAction(ISelectionProvider selectionProvider) {
+		super(selectionProvider);
 	}
 	
 	public void selectionChanged(IStructuredSelection selection) {
@@ -53,7 +55,7 @@
 						RefactoringMessages.getString("RenameComponentWizard.inputPage.description"), //$NON-NLS-1$
 						null);
 				RefactoringWizardOpenOperation op= new RefactoringWizardOpenOperation(wizard);
-				int result= op.run(getShell(), wizard.getDefaultPageTitle());
+				int result= op.run(XSDEditorPlugin.getShell(), wizard.getDefaultPageTitle());
 				op.getInitialConditionCheckingStatus();
 			} catch (InterruptedException e) {
 				// do nothing. User action got cancelled
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/actions/RenameResourceActionDelegate.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/actions/RenameResourceActionDelegate.java
index 916cbb1..523f710 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/actions/RenameResourceActionDelegate.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/actions/RenameResourceActionDelegate.java
@@ -16,7 +16,6 @@
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.ui.IObjectActionDelegate;
 import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.IWorkbenchSite;
 
 /**
  * @author ebelisar@ca.ibm.com
@@ -24,14 +23,14 @@
 public class RenameResourceActionDelegate implements IObjectActionDelegate {
 	
 	private ISelection fCurrentSelection;
-	private IWorkbenchSite fSite;
+
+	private IWorkbenchPart fPart;
 
 	/* (non-Javadoc)
 	 * @see org.eclipse.ui.IObjectActionDelegate#setActivePart(org.eclipse.jface.action.IAction, org.eclipse.ui.IWorkbenchPart)
 	 */
 	public void setActivePart(IAction action, IWorkbenchPart targetPart) {
-		fSite= targetPart.getSite();
-
+		fPart = targetPart;
 	}
 	/* (non-Javadoc)
 	 * @see org.eclipse.ui.IActionDelegate#run(org.eclipse.jface.action.IAction)
@@ -41,7 +40,7 @@
 			IStructuredSelection structuredSelection= (IStructuredSelection) fCurrentSelection;
 			Object first= structuredSelection.getFirstElement();
 			if (first instanceof IFile) {
-				RenameResourceAction renameAction = new RenameResourceAction(fSite);
+				RenameResourceAction renameAction = new RenameResourceAction(fPart.getSite().getSelectionProvider());
 				renameAction.run(structuredSelection);
 			}
 		}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/actions/SelectionDispatchAction.java b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/actions/SelectionDispatchAction.java
index e206afc..532b74d 100644
--- a/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/actions/SelectionDispatchAction.java
+++ b/bundles/org.eclipse.wst.xsd.ui/src/org/eclipse/wst/xsd/ui/internal/refactor/actions/SelectionDispatchAction.java
@@ -18,8 +18,7 @@
 import org.eclipse.jface.viewers.ISelectionProvider;
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.viewers.SelectionChangedEvent;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IWorkbenchSite;
+import org.eclipse.xsd.XSDSchema;
 
 
 
@@ -47,28 +46,13 @@
  */
 public abstract class SelectionDispatchAction extends Action implements ISelectionChangedListener {
 	
-	private IWorkbenchSite fSite;
+	private ISelectionProvider fSelectionProvider;
 	
-	/**
-	 * Creates a new action with no text and no image.
-	 * <p>
-	 * Configure the action later using the set methods.
-	 * </p>
-	 * 
-	 * @param site the site this action is working on
-	 */
-	protected SelectionDispatchAction(IWorkbenchSite site) {
-		Assert.isNotNull(site);
-		fSite= site;
-	}
-
-	/**
-	 * Returns the site owning this action.
-	 * 
-	 * @return the site owning this action
-	 */
-	public IWorkbenchSite getSite() {
-		return fSite;
+	private XSDSchema fSchema;
+	
+	protected SelectionDispatchAction(ISelectionProvider selectionProvider) {
+		Assert.isNotNull(selectionProvider);
+		fSelectionProvider = selectionProvider;
 	}
 
 	/**
@@ -84,21 +68,12 @@
 	}
 
 	/**
-	 * Returns the shell provided by the site owning this action.
-	 * 
-	 * @return the site's shell	
-	 */
-	public  Shell getShell() {
-		return fSite.getShell();
-	}
-	
-	/**
 	 * Returns the selection provider managed by the site owning this action.
 	 * 
 	 * @return the site's selection provider	
 	 */
 	public ISelectionProvider getSelectionProvider() {
-		return fSite.getSelectionProvider();
+		return fSelectionProvider;
 	}
 
 	/**
@@ -211,4 +186,14 @@
 			run(selection);
 		}
 	}
+
+	public XSDSchema getSchema() {
+		return fSchema;
+	}
+
+	public void setSchema(XSDSchema schema) {
+		fSchema = schema;
+	}
+	
+	
 }