relocate method
diff --git a/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/policy/DefaultDirectEditPolicy.java b/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/policy/DefaultDirectEditPolicy.java
index d4916ef..f5dd0e4 100644
--- a/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/policy/DefaultDirectEditPolicy.java
+++ b/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/policy/DefaultDirectEditPolicy.java
@@ -74,7 +74,7 @@
 
 		final String message = request.getCellEditor().getErrorMessage();
 		if (message != null && message.length() != 0) {
-			MessageDialog.openError(GraphitiUiInternal.getUiService().getShell(), Messages.DefaultDirectEditPolicy_0_xmsg, message);
+			MessageDialog.openError(GraphitiUiInternal.getWorkbenchService().getShell(), Messages.DefaultDirectEditPolicy_0_xmsg, message);
 			return null;
 		}
 
diff --git a/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/services/IUiService.java b/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/services/IUiService.java
index a8194d4..f6bb047 100644
--- a/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/services/IUiService.java
+++ b/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/services/IUiService.java
@@ -72,11 +72,6 @@
 	 */
 	public abstract void startSaveAsImageDialog(GraphicalViewer graphicalViewer);
 
-	/**
-	 * Returns the shell of the active workbench window.
-	 * 
-	 * @return the shell
-	 */
-	public abstract Shell getShell();
+
 
 }
\ No newline at end of file
diff --git a/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/services/IWorkbenchService.java b/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/services/IWorkbenchService.java
index 4ed35e4..0b48d29 100644
--- a/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/services/IWorkbenchService.java
+++ b/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/services/IWorkbenchService.java
@@ -20,6 +20,7 @@
 import org.eclipse.graphiti.platform.IDiagramEditor;
 import org.eclipse.jface.action.IStatusLineManager;
 import org.eclipse.jface.action.StatusLineManager;
+import org.eclipse.swt.widgets.Shell;
 import org.eclipse.ui.IWorkbenchWindow;
 
 /**
@@ -70,4 +71,11 @@
 	public IDiagramEditor openDiagramEditor(Diagram diagram, TransactionalEditingDomain domain, String providerId,
 			boolean disposeEditingDomain);
 
+	/**
+	 * Returns the shell of the active workbench window.
+	 * 
+	 * @return the shell
+	 */
+	public Shell getShell();
+
 }
\ No newline at end of file
diff --git a/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/services/impl/UiService.java b/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/services/impl/UiService.java
index ccda88e..00c328f 100644
--- a/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/services/impl/UiService.java
+++ b/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/services/impl/UiService.java
@@ -129,14 +129,15 @@
 	public void startSaveAsImageDialog(GraphicalViewer graphicalViewer) {
 		String METHOD = "startSaveAsImageDialog(graphicalViewer)"; //$NON-NLS-1$
 
+		Shell shell = GraphitiUiInternal.getWorkbenchService().getShell();
 		// select image-format and scale-factor
-		SaveFigureAsImageDialog saveAsImageDialog = new SaveFigureAsImageDialog(getShell(), graphicalViewer);
+		SaveFigureAsImageDialog saveAsImageDialog = new SaveFigureAsImageDialog(shell, graphicalViewer);
 		saveAsImageDialog.open();
 		if (saveAsImageDialog.getReturnCode() == Window.CANCEL)
 			return;
 
 		// select filename with file-dialog
-		FileDialog fileDialog = new FileDialog(getShell(), SWT.SAVE);
+		FileDialog fileDialog = new FileDialog(shell, SWT.SAVE);
 		String fileExtensions[] = new String[] { "*." + saveAsImageDialog.getFileExtensionForImageFormat() }; //$NON-NLS-1$
 		fileDialog.setFilterExtensions(fileExtensions);
 		String filename = fileDialog.open();
@@ -151,10 +152,10 @@
 
 				// save image as file
 				WorkspaceModifyOperation saveOperation = saveContentsToFile(filename, image);
-				new ProgressMonitorDialog(getShell()).run(false, false, saveOperation);
+				new ProgressMonitorDialog(shell).run(false, false, saveOperation);
 			} catch (Exception e) {
 				String message = "Can not save image: "; //$NON-NLS-1$
-				MessageDialog.openError(getShell(), "Can not save image", message + e.getMessage()); //$NON-NLS-1$
+				MessageDialog.openError(shell, "Can not save image", message + e.getMessage()); //$NON-NLS-1$
 				T.racer().error(METHOD, message + "\nDetails: " + GraphitiUiInternal.getTraceService().getStacktrace(e)); //$NON-NLS-1$
 				e.printStackTrace();
 			}
@@ -198,14 +199,4 @@
 		return operation;
 	}
 
-	/**
-	 * Returns the currently active Shell.
-	 * 
-	 * @return The currently active Shell.
-	 */
-	@Override
-	public Shell getShell() {
-		return GraphitiUIPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow().getShell();
-	}
-
 }
diff --git a/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/services/impl/WorkbenchService.java b/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/services/impl/WorkbenchService.java
index c4015f3..4ef37cb 100644
--- a/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/services/impl/WorkbenchService.java
+++ b/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/services/impl/WorkbenchService.java
@@ -21,10 +21,12 @@
 import org.eclipse.graphiti.platform.IDiagramEditor;
 import org.eclipse.graphiti.ui.editor.DiagramEditor;
 import org.eclipse.graphiti.ui.editor.DiagramEditorInput;
+import org.eclipse.graphiti.ui.internal.GraphitiUIPlugin;
 import org.eclipse.graphiti.ui.internal.services.IWorkbenchService;
 import org.eclipse.graphiti.ui.services.GraphitiUi;
 import org.eclipse.jface.action.IStatusLineManager;
 import org.eclipse.jface.action.StatusLineManager;
+import org.eclipse.swt.widgets.Shell;
 import org.eclipse.ui.IEditorActionBarContributor;
 import org.eclipse.ui.IEditorPart;
 import org.eclipse.ui.IViewPart;
@@ -42,12 +44,7 @@
  */
 public class WorkbenchService implements IWorkbenchService {
 
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @seeorg.eclipse.graphiti.ui.internal.util.ui.IWorkbenchService#
-	 * getActiveStatusLineManager()
-	 */
+
 	public IStatusLineManager getActiveStatusLineManager() {
 		final IWorkbenchPart activePart = getActiveOrFirstWorkbenchWindow().getActivePage().getActivePart();
 		if (activePart instanceof IViewPart) {
@@ -66,12 +63,7 @@
 		return new StatusLineManager();
 	}
 
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @seeorg.eclipse.graphiti.ui.internal.util.ui.IWorkbenchService#
-	 * getActiveOrFirstWorkbenchWindow()
-	 */
+
 	public IWorkbenchWindow getActiveOrFirstWorkbenchWindow() {
 		IWorkbenchWindow result = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
 		if (result == null) {
@@ -140,4 +132,10 @@
 			return workbenchWindow.getActivePage();
 		return null;
 	}
+
+
+	@Override
+	public Shell getShell() {
+		return GraphitiUIPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow().getShell();
+	}
 }