DiagramEditor cleanup
diff --git a/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/features/AbstractPasteFeature.java b/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/features/AbstractPasteFeature.java
index 56464bf..4e2d2cb 100644
--- a/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/features/AbstractPasteFeature.java
+++ b/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/features/AbstractPasteFeature.java
@@ -108,7 +108,7 @@
 	 * @see #isCompositionAllowed(EObject, EObject[])
 	 */
 	protected Object[] getCopiesFromClipBoard(Object target) {
-		return ModelClipboard.getDefault().duplicateAndPaste(target, getDiagramEditor().getTransactionalEditingDomain()).toArray();
+		return ModelClipboard.getDefault().duplicateAndPaste(target, getDiagramEditor().getEditingDomain()).toArray();
 	}
 
 	/**
diff --git a/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/action/AbstractPreDefinedAction.java b/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/action/AbstractPreDefinedAction.java
index 0168d1c..dfb88f6 100644
--- a/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/action/AbstractPreDefinedAction.java
+++ b/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/action/AbstractPreDefinedAction.java
@@ -72,7 +72,7 @@
 
 	protected void executeOnCommandStack(ICommand command) {
 		CommandStack commandStack = getConfigurationProvider().getDiagramEditor().getEditDomain().getCommandStack();
-		commandStack.execute(new GefCommandWrapper(command, getConfigurationProvider().getDiagramEditor().getTransactionalEditingDomain()));
+		commandStack.execute(new GefCommandWrapper(command, getConfigurationProvider().getDiagramEditor().getEditingDomain()));
 	}
 
 	protected void genericRun(IContextAndFeatureProvider cfProvider) {
diff --git a/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/action/CustomAction.java b/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/action/CustomAction.java
index cde0551..43e1b7e 100644
--- a/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/action/CustomAction.java
+++ b/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/action/CustomAction.java
@@ -60,6 +60,6 @@
 
 	protected void executeOnCommandStack(ICommand command) {
 		CommandStack commandStack = diagramEditor.getEditDomain().getCommandStack();
-		commandStack.execute(new GefCommandWrapper(command, diagramEditor.getTransactionalEditingDomain()));
+		commandStack.execute(new GefCommandWrapper(command, diagramEditor.getEditingDomain()));
 	}
 }
\ No newline at end of file
diff --git a/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/command/AbstractCommand.java b/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/command/AbstractCommand.java
index eae62fd..ec68e5b 100644
--- a/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/command/AbstractCommand.java
+++ b/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/command/AbstractCommand.java
@@ -48,6 +48,6 @@
 	}
 
 	protected TransactionalEditingDomain getTransactionalEditingDomain() {
-		return configurationProvider.getDiagramEditor().getTransactionalEditingDomain();
+		return configurationProvider.getDiagramEditor().getEditingDomain();
 	}
 }
\ No newline at end of file
diff --git a/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/editor/DiagramEditor.java b/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/editor/DiagramEditor.java
index 5f76a48..b163a7a 100644
--- a/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/editor/DiagramEditor.java
+++ b/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/editor/DiagramEditor.java
@@ -23,7 +23,6 @@
 import java.util.Map;
 
 import org.eclipse.core.commands.operations.IUndoContext;
-import org.eclipse.core.resources.IMarker;
 import org.eclipse.core.runtime.IAdaptable;
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.draw2d.FigureCanvas;
@@ -141,7 +140,6 @@
 import org.eclipse.ui.PartInitException;
 import org.eclipse.ui.actions.ActionFactory;
 import org.eclipse.ui.handlers.IHandlerService;
-import org.eclipse.ui.ide.IGotoMarker;
 import org.eclipse.ui.navigator.CommonNavigator;
 import org.eclipse.ui.views.properties.IPropertySheetPage;
 import org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor;
@@ -151,14 +149,8 @@
  * The Class DiagramEditor.
  */
 public class DiagramEditor extends GraphicalEditorWithFlyoutPalette implements IConfigurationProviderHolder, IDiagramEditor,
-		ITabbedPropertySheetPageContributor, IGotoMarker, IResourceRegistryHolder, IRefreshableContent, IEditingDomainProvider {
+		ITabbedPropertySheetPageContributor, IResourceRegistryHolder, IRefreshableContent, IEditingDomainProvider {
 
-	private static final String GRAPHITI = " (Graphiti)";
-
-	/**
-	 * The Constant UIJOB_FAMILY_REFRESH.
-	 */
-	public static final String UIJOB_FAMILY_REFRESH = "org.eclipse.graphiti.ui.internal.refresh"; //$NON-NLS-1$
 
 	private final CommandStackEventListener cmdStackListener = new CommandStackEventListener() {
 		public void stackChanged(CommandStackEvent event) {
@@ -173,7 +165,7 @@
 		}
 	};
 
-	public class FWCommandStackListener implements CommandStackListener {
+	protected class FWCommandStackListener implements CommandStackListener {
 
 		@Override
 		public void commandStackChanged(EventObject event) {
@@ -315,26 +307,6 @@
 		return ret;
 	}
 
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.gef.commands.CommandStackListener#commandStackChanged(java
-	 * .util.EventObject)
-	 */
-	@Override
-	public void commandStackChanged(EventObject event) {
-		super.commandStackChanged(event);
-		/*
-		 * disabled to prevent a SWTException (Invalid thread access) from
-		 * occurring when using a progress bar during long running operations
-		 */
-		// firePropertyChange(PROP_DIRTY);
-		// if (REFRESH_ON_COMMAND_STACK_CHANGES) {
-		// refresh();
-		// }
-	}
-
 	/**
 	 * Called to configure the editor, before it receives its content. The
 	 * default-implementation is for example doing the following: configure the
@@ -361,9 +333,7 @@
 		// configure ZoomManager
 		viewer.setRootEditPart(rootEditPart); // support
 
-		// animation
-		// of the
-		// zoom
+		// animation of the zoom
 		ZoomManager zoomManager = rootEditPart.getZoomManager();
 		List<String> zoomLevels = new ArrayList<String>(3);
 		zoomLevels.add(ZoomManager.FIT_ALL);
@@ -548,11 +518,6 @@
 
 	// ====================== standard behaviour ==============================
 
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IWorkbenchPart#dispose()
-	 */
 	@Override
 	public void dispose() {
 
@@ -582,10 +547,10 @@
 			resourceRegistry.dispose();
 		}
 
-		DiagramEditorBehavior me = getBehavior();
-		me.getEditingDomain().getCommandStack().removeCommandStackListener(fwListener);
+		DiagramEditorBehavior behavior = getBehavior();
+		behavior.getEditingDomain().getCommandStack().removeCommandStackListener(fwListener);
 		fwListener = null;
-		me.dispose();
+		behavior.dispose();
 
 		super.dispose();
 
@@ -751,13 +716,6 @@
 		return _keyHandler;
 	}
 
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.graphiti.ui.internal.config.IConfigurationProviderHolder#
-	 * getConfigurationProvider()
-	 */
 	public IConfigurationProvider getConfigurationProvider() {
 		return _configurationProvider;
 	}
@@ -800,11 +758,6 @@
 		return contributorId;
 	}
 
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.graphiti.platform.IDiagramEditor#getCurrentSize()
-	 */
 	public IDimension getCurrentSize() {
 
 		if (getDiagramScrollingBehavior() == DiagramScrollingBehavior.SCROLLBARS_ALWAYS_VISIBLE) {
@@ -841,12 +794,6 @@
 		return this.diagramScrollingBehavior;
 	}
 
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.graphiti.platform.IDiagramEditor#getDiagramTypeProvider()
-	 */
 	public IDiagramTypeProvider getDiagramTypeProvider() {
 		IConfigurationProvider cfgProvider = getConfigurationProvider();
 		if (cfgProvider != null)
@@ -854,11 +801,6 @@
 		return null;
 	}
 
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.ui.parts.GraphicalEditor#getEditDomain()
-	 */
 	@Override
 	public DefaultEditDomain getEditDomain() {
 		return super.getEditDomain();
@@ -902,7 +844,7 @@
 	 * 
 	 * @return the gFW figure canvas
 	 */
-	public GFFigureCanvas getGFWFigureCanvas() {
+	private GFFigureCanvas getGFWFigureCanvas() {
 		GraphicalViewer viewer = getGraphicalViewer();
 		if (viewer != null)
 			return (GFFigureCanvas) viewer.getControl();
@@ -910,11 +852,6 @@
 			return null;
 	}
 
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.ui.parts.GraphicalEditor#getGraphicalViewer()
-	 */
 	@Override
 	public GraphicalViewer getGraphicalViewer() {
 		return super.getGraphicalViewer();
@@ -932,12 +869,6 @@
 		return mouseLocation;
 	}
 
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @seeorg.eclipse.gef.ui.parts.GraphicalEditorWithFlyoutPalette#
-	 * getPalettePreferences()
-	 */
 	@Override
 	protected FlyoutPreferences getPalettePreferences() {
 		return new FlyoutPreferences() {
@@ -973,13 +904,6 @@
 		return ps;
 	}
 
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.gef.ui.parts.GraphicalEditorWithFlyoutPalette#getPaletteRoot
-	 * ()
-	 */
 	@Override
 	protected PaletteRoot getPaletteRoot() {
 		if (_paletteRoot == null)
@@ -1027,13 +951,6 @@
 		return resourceRegistry;
 	}
 
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.graphiti.platform.IDiagramEditor#getSelectedPictogramElements
-	 * ()
-	 */
 	public PictogramElement[] getSelectedPictogramElements() {
 		PictogramElement pe[] = new PictogramElement[0];
 		ISelectionProvider selectionProvider = getSite().getSelectionProvider();
@@ -1068,11 +985,6 @@
 		return getSelectionSynchronizer();
 	}
 
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.part.EditorPart#getTitleToolTip()
-	 */
 	@Override
 	public String getTitleToolTip() {
 		if (getDiagramTypeProvider() != null && getDiagramTypeProvider().getCurrentToolBehaviorProvider() != null) {
@@ -1110,17 +1022,6 @@
 		return Math.max(0.05D, zoomManager.getZoom());
 	}
 
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.ui.ide.IGotoMarker#gotoMarker(org.eclipse.core.resources.
-	 * IMarker)
-	 */
-	public void gotoMarker(IMarker marker) {
-		//do nothing
-	}
-
 	/**
 	 * Handle auto update at startup.
 	 * 
@@ -1129,7 +1030,7 @@
 	 * @param diagramTypeProvider
 	 *            the diagram type provider
 	 */
-	protected void handleAutoUpdateAtStartup(Diagram diagram, IDiagramTypeProvider diagramTypeProvider) {
+	private void handleAutoUpdateAtStartup(Diagram diagram, IDiagramTypeProvider diagramTypeProvider) {
 		if (diagramTypeProvider.isAutoUpdateAtStartup()) {
 			autoUpdate(diagram, diagramTypeProvider);
 		}
@@ -1143,7 +1044,7 @@
 	 * @param diagramTypeProvider
 	 *            the diagram type provider
 	 */
-	protected void handleAutoUpdateAtReset(Diagram diagram, IDiagramTypeProvider diagramTypeProvider) {
+	private void handleAutoUpdateAtReset(Diagram diagram, IDiagramTypeProvider diagramTypeProvider) {
 		if (diagramTypeProvider.isAutoUpdateAtReset()) {
 			autoUpdate(diagram, diagramTypeProvider);
 		}
@@ -1328,7 +1229,7 @@
 	public boolean isAlive() {
 		IConfigurationProvider cp = getConfigurationProvider();
 		if (cp != null) {
-			TransactionalEditingDomain editingDomain = getTransactionalEditingDomain();
+			TransactionalEditingDomain editingDomain = getEditingDomain();
 			Diagram diagram = cp.getDiagram();
 			if (editingDomain != null && GraphitiInternal.getEmfService().isObjectAlive(diagram)) {
 				return true;
@@ -1346,18 +1247,6 @@
 		return autoRefresh;
 	}
 
-	protected void postInit() {
-		getDiagramTypeProvider().postInit();
-
-		// if (mrisToSelect != null) {
-		// selectMris(mrisToSelect);
-		// mrisToSelect = null;
-		// }
-
-		// after create part control
-		getEditDomain().getCommandStack().addCommandStackEventListener(cmdStackListener);
-	}
-
 	/**
 	 * Inits the refresh.
 	 */
@@ -1367,11 +1256,6 @@
 		refreshedFigure4PE = new HashSet<PictogramElement>();
 	}
 
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.graphiti.platform.IDiagramEditor#refresh()
-	 */
 	public void refresh() {
 
 		if (!isAlive()) {
@@ -1455,7 +1339,7 @@
 		if (name == null || name.length() == 0) {
 			name = getConfigurationElement().getAttribute("name"); //$NON-NLS-1$
 		}
-		setPartName(name + GRAPHITI);
+		setPartName(name);
 	}
 
 	public void refreshTitleToolTip() {
@@ -1491,7 +1375,7 @@
 	 */
 	private void registerDiagramResourceSetListener() {
 		diagramChangeListener = new DiagramChangeListener(this);
-		TransactionalEditingDomain eDomain = getTransactionalEditingDomain();
+		TransactionalEditingDomain eDomain = getEditingDomain();
 		eDomain.addResourceSetListener(diagramChangeListener);
 	}
 
@@ -1501,50 +1385,26 @@
 	 */
 	protected void registerBOListener() {
 		domainModelListener = new DomainModelChangeListener(this);
-		TransactionalEditingDomain eDomain = getTransactionalEditingDomain();
+		TransactionalEditingDomain eDomain = getEditingDomain();
 		eDomain.addResourceSetListener(domainModelListener);
 	}
 
 	private void unregisterDiagramResourceSetListener() {
 		if (diagramChangeListener != null) {
 			diagramChangeListener.stopListening();
-			TransactionalEditingDomain eDomain = getTransactionalEditingDomain();
+			TransactionalEditingDomain eDomain = getEditingDomain();
 			eDomain.removeResourceSetListener(diagramChangeListener);
 		}
 	}
 
 	protected void unregisterBOListener() {
 		if (domainModelListener != null) {
-			TransactionalEditingDomain eDomain = getTransactionalEditingDomain();
+			TransactionalEditingDomain eDomain = getEditingDomain();
 			eDomain.removeResourceSetListener(domainModelListener);
 		}
 	}
 
-	/**
-	 * selects the editpart the PE is associated with.
-	 * 
-	 * @param pictogramElement
-	 *            the pictogram element
-	 */
-	protected void selectEditPartFor(PictogramElement pictogramElement) {
-		EditPart editPart = (EditPart) getGraphicalViewer().getEditPartRegistry().get(pictogramElement);
 
-		if (editPart == null) {
-			if (GraphitiInternal.getEmfService().isObjectAlive(pictogramElement) && pictogramElement instanceof Shape)
-				selectEditPartFor(((Shape) pictogramElement).getContainer());
-
-		} else {
-			getGraphicalViewer().select(editPart);
-		}
-	}
-
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.gef.ui.parts.GraphicalEditor#selectionChanged(org.eclipse
-	 * .ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection)
-	 */
 	@Override
 	public void selectionChanged(IWorkbenchPart part, ISelection selection) {
 		// If not the active editor, ignore selection changed.
@@ -1684,16 +1544,11 @@
 
 		DefaultEditDomain editDomain = new DefaultEditDomain(this);
 		// XXX: replace default CommandStack with CombinedCommandStack
-		CommandStack commandStack = new GFCommandStack(configurationProvider, getTransactionalEditingDomain());
+		CommandStack commandStack = new GFCommandStack(configurationProvider, getEditingDomain());
 		editDomain.setCommandStack(commandStack);
 		setEditDomain(editDomain);
 	}
 
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.ui.IWorkbenchPart#setFocus()
-	 */
 	@Override
 	public void setFocus() {
 		if (getGraphicalViewer() == null)
@@ -1732,13 +1587,6 @@
 		// </sw 3.9.08>
 	}
 
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.eclipse.graphiti.platform.IDiagramEditor#setPictogramElementForSelection
-	 * (org.eclipse.graphiti.mm.pictograms.PictogramElement)
-	 */
 	public void setPictogramElementForSelection(PictogramElement pictogramElementForSelection) {
 		if (pictogramElementForSelection == null)
 			this.pictogramElementsForSelection = null;
@@ -1784,39 +1632,29 @@
 	@Override
 	public void createPartControl(Composite parent) {
 		super.createPartControl(parent);
-		postInit();
+		getDiagramTypeProvider().postInit();
+		getEditDomain().getCommandStack().addCommandStackEventListener(cmdStackListener);
 	}
 
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.eclipse.gef.ui.parts.GraphicalEditor#isDirty()
-	 */
 	@Override
 	public boolean isDirty() {
-		// boolean isDirty = getModelEditor().isDirty();
-		// return isDirty;
-
 		return getBehavior().isDirty();
 
 	}
 
 	@Override
-	public EditingDomain getEditingDomain() {
-		return getTransactionalEditingDomain();
-	}
-
-	public TransactionalEditingDomain getTransactionalEditingDomain() {
+	public TransactionalEditingDomain getEditingDomain() {
 		return editingDomain;
 	}
 
+
 	/**
 	 * 
 	 * @return the resource set
 	 */
 	public ResourceSet getResourceSet() {
 		ResourceSet ret = null;
-		TransactionalEditingDomain editingDomain = getTransactionalEditingDomain();
+		TransactionalEditingDomain editingDomain = getEditingDomain();
 		if (editingDomain != null) {
 			ret = editingDomain.getResourceSet();
 		}
diff --git a/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/editor/DiagramEditorBehavior.java b/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/editor/DiagramEditorBehavior.java
index e3c71b5..058be7f 100644
--- a/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/editor/DiagramEditorBehavior.java
+++ b/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/editor/DiagramEditorBehavior.java
@@ -58,6 +58,7 @@
 import org.eclipse.graphiti.ui.internal.services.GraphitiUiInternal;
 import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.dialogs.ProgressMonitorDialog;
+import org.eclipse.swt.widgets.Display;
 import org.eclipse.swt.widgets.Shell;
 import org.eclipse.ui.IEditorInput;
 import org.eclipse.ui.IEditorPart;
@@ -65,6 +66,7 @@
 import org.eclipse.ui.ISaveablePart;
 import org.eclipse.ui.IWorkbenchPage;
 import org.eclipse.ui.IWorkbenchPartSite;
+import org.eclipse.ui.PlatformUI;
 import org.eclipse.ui.actions.WorkspaceModifyOperation;
 
 /**
@@ -225,7 +227,7 @@
 					}
 
 					if (updateProblemIndication) {
-						editorPart.getSite().getShell().getDisplay().asyncExec(new Runnable() {
+						getShell().getDisplay().asyncExec(new Runnable() {
 							public void run() {
 								updateProblemIndication();
 							}
@@ -250,6 +252,10 @@
 		}
 	};
 
+	private Shell getShell() {
+		return editorPart.getSite().getShell();
+	}
+
 	private final Adapter updateAdapter = new AdapterImpl() {
 		@Override
 		public void notifyChanged(Notification msg) {
@@ -264,7 +270,7 @@
 						setResourceChanged(true);
 						final IEditorPart activeEditor = editorPart.getSite().getPage().getActiveEditor();
 						if (activeEditor == editorPart) {
-							editorPart.getSite().getShell().getDisplay().asyncExec(new Runnable() {
+							getShell().getDisplay().asyncExec(new Runnable() {
 								public void run() {
 									handleActivate();
 								}
@@ -294,7 +300,7 @@
 							setResourceDeleted(true);
 							final IEditorPart activeEditor = editorPart.getSite().getPage().getActiveEditor();
 							if (activeEditor == editorPart) {
-								editorPart.getSite().getShell().getDisplay().asyncExec(new Runnable() {
+								getShell().getDisplay().asyncExec(new Runnable() {
 									public void run() {
 										handleActivate();
 									}
@@ -308,21 +314,25 @@
 		}
 
 		private void startCloseEditorJob() {
-			editorPart.getSite().getShell().getDisplay().asyncExec(new Runnable() {
+			Display.getDefault().asyncExec(new Runnable() {
 				public void run() {
-					IWorkbenchPartSite site = editorPart.getSite();
-					// Since we run async we have to check if our ui is still there.
-					if (site == null)
-						return;
-					IWorkbenchPage page = site.getPage();
-					if (page == null)
-						return;
-					page.closeEditor(editorPart, false);
+					closeEd();
 				}
 			});
 		}
 	};
 
+	private void closeEd() {
+		IWorkbenchPartSite site = editorPart.getSite();
+		// Since we run async we have to check if our ui is still there.
+		if (site == null)
+			return;
+		IWorkbenchPage page = site.getPage();
+		if (page == null)
+			return;
+		page.closeEditor(editorPart, false);
+	}
+
 	private boolean adapterActive;
 
 	/**
@@ -331,7 +341,7 @@
 	private void handleActivate() {
 		if (isResourceDeleted()) {
 			if (handleDirtyConflict()) {
-				editorPart.getSite().getPage().closeEditor(editorPart, false);
+				closeEd();
 			} else {
 				setResourceDeleted(false);
 				setResourceChanged(false);
@@ -410,7 +420,8 @@
 	 * Shows a dialog that asks if conflicting changes should be discarded.
 	 */
 	private boolean handleDirtyConflict() {
-		return MessageDialog.openQuestion(this.editorPart.getSite().getShell(), Messages.DiscardChangesDialog_0_xmsg,
+		return MessageDialog.openQuestion(PlatformUI.getWorkbench().getModalDialogShellProvider().getShell(),
+				Messages.DiscardChangesDialog_0_xmsg,
 				Messages.DiscardChangesDialog_1_xmsg);
 	}
 
@@ -490,7 +501,7 @@
 		this.updateProblemIndication = false;
 		try {
 			// This runs the options, and shows progress.
-			new ProgressMonitorDialog(editorPart.getSite().getShell()).run(true, false, operation);
+			new ProgressMonitorDialog(PlatformUI.getWorkbench().getModalDialogShellProvider().getShell()).run(true, false, operation);
 
 			((BasicCommandStack) editingDomain.getCommandStack()).saveIsDone();
 			// Refresh the necessary state.
diff --git a/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/editor/DiagramEditorDummy.java b/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/editor/DiagramEditorDummy.java
index 281e287..72bc636 100644
--- a/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/editor/DiagramEditorDummy.java
+++ b/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/editor/DiagramEditorDummy.java
@@ -39,7 +39,7 @@
 	}
 
 	@Override
-	public TransactionalEditingDomain getTransactionalEditingDomain() {
+	public TransactionalEditingDomain getEditingDomain() {
 		return null;
 	}
 
diff --git a/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/editor/DiagramRefreshJob.java b/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/editor/DiagramRefreshJob.java
index 8b56165..6a9f575 100644
--- a/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/editor/DiagramRefreshJob.java
+++ b/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/editor/DiagramRefreshJob.java
@@ -41,6 +41,11 @@
  */
 class DiagramRefreshJob extends UIJob {
 
+	/**
+	 * The Constant UIJOB_FAMILY_REFRESH.
+	 */
+	private final String UIJOB_FAMILY_REFRESH = "org.eclipse.graphiti.ui.internal.refresh"; //$NON-NLS-1$
+
 	private final Set<EditPart> editParts = new HashSet<EditPart>();
 
 	private boolean refreshAll = false;
@@ -71,7 +76,7 @@
 
 	@Override
 	public boolean belongsTo(Object family) {
-		return DiagramEditor.UIJOB_FAMILY_REFRESH.equals(family);
+		return UIJOB_FAMILY_REFRESH.equals(family);
 	}
 
 	boolean isRefreshAll() {
diff --git a/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/figures/GFFigureUtil.java b/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/figures/GFFigureUtil.java
index b6c7bfb..d327cb7 100644
--- a/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/figures/GFFigureUtil.java
+++ b/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/figures/GFFigureUtil.java
@@ -84,28 +84,6 @@
 		graphics.fillGradient(fillRectangle.x, fillRectangle.y, fillRectangle.width, fillRectangle.height, vertical);
 	}
 
-	public static void paintImage(Image im, Rectangle rectangle, Graphics graphics, ColoredArea coloredArea, double zoom, boolean vertical) {
-		// calculate rectangle to fill
-		Rectangle fillRectangle;
-		if (vertical) {
-			int start = coloredArea.getStart().getLocation(rectangle.height, zoom);
-			int end = coloredArea.getEnd().getLocation(rectangle.height, zoom);
-			fillRectangle = new Rectangle(rectangle.x, rectangle.y + start, rectangle.width, end - start);
-		} else {
-			int start = coloredArea.getStart().getLocation(rectangle.width, zoom);
-			int end = coloredArea.getEnd().getLocation(rectangle.width, zoom);
-			fillRectangle = new Rectangle(rectangle.x + start, rectangle.y, end - start, rectangle.height);
-		}
-		GC gc = new GC(im);
-		Pattern pattern = new Pattern(Display.getCurrent(), fillRectangle.x, fillRectangle.y, fillRectangle.x, fillRectangle.y
-				+ fillRectangle.height, coloredArea.getStart().getColor(), graphics.getAlpha(), coloredArea.getEnd().getColor(), graphics
-				.getAlpha());
-		gc.setBackgroundPattern(pattern);
-		gc.fillRectangle(fillRectangle.x, fillRectangle.y, fillRectangle.width, fillRectangle.height);
-		gc.dispose();
-		pattern.dispose();
-	}
-
 	/**
 	 * Returns if the given point is contained in the ellipse defined by the
 	 * bounding rectangle. Possible results are
diff --git a/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/policy/ConnectionBendpointEditPolicy.java b/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/policy/ConnectionBendpointEditPolicy.java
index 9eba0ba..b8fe4fb 100644
--- a/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/policy/ConnectionBendpointEditPolicy.java
+++ b/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/policy/ConnectionBendpointEditPolicy.java
@@ -73,7 +73,7 @@
 			IAddBendpointFeature addBendpointFeature = getFeatureProvider().getAddBendpointFeature(context);
 			if (addBendpointFeature != null) {
 				ret = new GefCommandWrapper(new GenericFeatureCommandWithContext(addBendpointFeature, context), getConfigurationProvider()
-						.getDiagramEditor().getTransactionalEditingDomain());
+						.getDiagramEditor().getEditingDomain());
 			}
 		}
 		// workaround: no snapping to original position
@@ -95,7 +95,7 @@
 			IRemoveBendpointFeature removeBendpointFeature = getFeatureProvider().getRemoveBendpointFeature(context);
 			if (removeBendpointFeature != null) {
 				ret = new GefCommandWrapper(new GenericFeatureCommandWithContext(removeBendpointFeature, context),
-						getConfigurationProvider().getDiagramEditor().getTransactionalEditingDomain());
+						getConfigurationProvider().getDiagramEditor().getEditingDomain());
 			}
 		}
 
@@ -133,7 +133,7 @@
 			IMoveBendpointFeature moveBendpointFeature = getFeatureProvider().getMoveBendpointFeature(context);
 			if (moveBendpointFeature != null) {
 				ret = new GefCommandWrapper(new GenericFeatureCommandWithContext(moveBendpointFeature, context), getConfigurationProvider()
-						.getDiagramEditor().getTransactionalEditingDomain());
+						.getDiagramEditor().getEditingDomain());
 			}
 		}
 
diff --git a/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/policy/DefaultConnectionEditPolicy.java b/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/policy/DefaultConnectionEditPolicy.java
index aad904e..88ebb8e 100644
--- a/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/policy/DefaultConnectionEditPolicy.java
+++ b/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/policy/DefaultConnectionEditPolicy.java
@@ -119,7 +119,7 @@
 			IMoveShapeFeature layoutShapeFeature = featureProvider.getMoveShapeFeature(context);
 			if (layoutShapeFeature != null) {
 				result = new GefCommandWrapper(new MoveShapeFeatureCommandWithContext(layoutShapeFeature, context),
-						getConfigurationProvider().getDiagramEditor().getTransactionalEditingDomain());
+						getConfigurationProvider().getDiagramEditor().getEditingDomain());
 			}
 		}
 
@@ -242,7 +242,7 @@
 
 		GenericFeatureCommandWithContext command = new GenericFeatureCommandWithContext(feature, context);
 
-		return new GefCommandWrapper(command, getConfigurationProvider().getDiagramEditor().getTransactionalEditingDomain());
+		return new GefCommandWrapper(command, getConfigurationProvider().getDiagramEditor().getEditingDomain());
 	}
 
 	/**
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 93c51fc..17b0d86 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
@@ -108,7 +108,7 @@
 		final IFeatureProvider fp = directEditingFeature.getFeatureProvider();
 		final DiagramEditor diagramEditor = (DiagramEditor) fp.getDiagramTypeProvider().getDiagramEditor();
 		final CommandStack commandStack = diagramEditor.getEditDomain().getCommandStack();
-		commandStack.execute(new GefCommandWrapper(cmd, diagramEditor.getTransactionalEditingDomain()));
+		commandStack.execute(new GefCommandWrapper(cmd, diagramEditor.getEditingDomain()));
 		// CommandExec.getSingleton().executeCommand(cmd, fp.getConnection());
 
 		return null;
diff --git a/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/policy/ModelObjectDeleteEditPolicy.java b/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/policy/ModelObjectDeleteEditPolicy.java
index e30a2c6..38de48c 100644
--- a/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/policy/ModelObjectDeleteEditPolicy.java
+++ b/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/policy/ModelObjectDeleteEditPolicy.java
@@ -82,7 +82,7 @@
 
 		GenericFeatureCommandWithContext command = new GenericFeatureCommandWithContext(feature, context);
 
-		return new GefCommandWrapper(command, getConfigurationProvider().getDiagramEditor().getTransactionalEditingDomain());
+		return new GefCommandWrapper(command, getConfigurationProvider().getDiagramEditor().getEditingDomain());
 
 	}
 }
\ No newline at end of file
diff --git a/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/policy/ShapeContainerAndXYLayoutEditPolicy.java b/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/policy/ShapeContainerAndXYLayoutEditPolicy.java
index 60817b1..aaa6613 100644
--- a/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/policy/ShapeContainerAndXYLayoutEditPolicy.java
+++ b/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/policy/ShapeContainerAndXYLayoutEditPolicy.java
@@ -59,7 +59,7 @@
 				IMoveShapeFeature layoutShapeFeature = featureProvider.getMoveShapeFeature(context);
 				if (layoutShapeFeature != null) {
 					result = new GefCommandWrapper(new MoveShapeFeatureCommandWithContext(layoutShapeFeature, context),
-							getConfigurationProvider().getDiagramEditor().getTransactionalEditingDomain());
+							getConfigurationProvider().getDiagramEditor().getEditingDomain());
 				}
 			}
 		}
diff --git a/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/policy/ShapeXYLayoutEditPolicy.java b/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/policy/ShapeXYLayoutEditPolicy.java
index bd9b0df..a7467e1 100644
--- a/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/policy/ShapeXYLayoutEditPolicy.java
+++ b/plugins/org.eclipse.graphiti.ui/src/org/eclipse/graphiti/ui/internal/policy/ShapeXYLayoutEditPolicy.java
@@ -71,6 +71,7 @@
 import org.eclipse.graphiti.ui.internal.config.IConfigurationProvider;
 import org.eclipse.graphiti.ui.internal.contextbuttons.IContextButtonManager;
 import org.eclipse.graphiti.ui.internal.editor.DiagramEditor;
+import org.eclipse.graphiti.ui.internal.editor.GFFigureCanvas;
 import org.eclipse.graphiti.ui.internal.parts.ShapeEditPart;
 import org.eclipse.graphiti.ui.internal.services.GraphitiUiInternal;
 import org.eclipse.jface.viewers.ISelection;
@@ -125,7 +126,8 @@
 			Point viewLocation = null;
 			DiagramEditor diagramEditor = getConfigurationProvider().getDiagramEditor();
 			if (diagramEditor.getDiagramScrollingBehavior() == DiagramScrollingBehavior.SCROLLBARS_ALWAYS_VISIBLE) {
-				viewLocation = configurationProvider.getDiagramEditor().getGFWFigureCanvas().getViewport().getViewLocation();
+				GFFigureCanvas c =  (GFFigureCanvas) configurationProvider.getDiagramEditor().getGraphicalViewer().getControl();
+				viewLocation = c.getViewport().getViewLocation();
 			} else {
 				viewLocation = configurationProvider.getDiagramEditor().getFigureCanvas().getViewport().getViewLocation();
 			}
@@ -135,7 +137,7 @@
 			ICommand cmd = getMoveConnectionDecoratorCommand((ConnectionDecorator) model, (Rectangle) constraint, rectangle.x, rectangle.y);
 
 			if (cmd != null) {
-				return new GefCommandWrapper(cmd, configurationProvider.getDiagramEditor().getTransactionalEditingDomain());
+				return new GefCommandWrapper(cmd, configurationProvider.getDiagramEditor().getEditingDomain());
 			}
 		}
 		return null;
@@ -257,7 +259,7 @@
 			IContextButtonManager contextButtonManager = editor.getContextButtonManager();
 			contextButtonManager.hideContextButtonsInstantly();
 
-			return new GefCommandWrapper(ret, editor.getTransactionalEditingDomain());
+			return new GefCommandWrapper(ret, editor.getEditingDomain());
 		} else {
 			return null;
 		}