Fix file rename/delete again, and editor title
diff --git a/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/validation/BPMN2ProjectValidator.java b/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/validation/BPMN2ProjectValidator.java
index 189c795..818839a 100644
--- a/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/validation/BPMN2ProjectValidator.java
+++ b/org.eclipse.bpmn2.modeler.core/src/org/eclipse/bpmn2/modeler/core/validation/BPMN2ProjectValidator.java
@@ -90,7 +90,7 @@
 		rs.setURIConverter(new ProxyURIConverterImplExtension());
 
 		Resource resource = rs.createResource(
-                URI.createPlatformResourceURI(modelFile.getFullPath().toString(), false),
+                URI.createPlatformResourceURI(modelFile.getFullPath().toString(), true),
                 Bpmn2ModelerResourceImpl.BPMN2_CONTENT_TYPE_ID);
         try {
             resource.load(null);
diff --git a/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/editor/BPMN2Editor.java b/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/editor/BPMN2Editor.java
index 4145eb6..fcfae8a 100644
--- a/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/editor/BPMN2Editor.java
+++ b/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/editor/BPMN2Editor.java
@@ -12,6 +12,7 @@
  ******************************************************************************/
 package org.eclipse.bpmn2.modeler.ui.editor;
 
+import java.io.File;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -709,13 +710,9 @@
 		}
 	}
 	
-	public void setEditorTitle(final String title) {
-		Display display = getSite().getShell().getDisplay();
-		display.asyncExec(new Runnable() {
-			public void run() {
-				setPartName(title);
-			}
-		});
+	public void refreshTitle() {
+		String name = getEditorInput().getName();
+		setPartName(URI.decode(name));
 	}
 
 	public BPMN2EditingDomainListener getEditingDomainListener() {
@@ -776,6 +773,14 @@
 			IEditorReference[] refs = p.getEditorReferences();
 			instances += refs.length;
 		}
+		File diagramFile = new File(diagramUri.toFileString());
+		if (diagramFile.exists()) {
+			try {
+				diagramFile.delete();
+			}
+			catch (Exception e) {
+			}
+		}
 		ModelUtil.clearIDs(modelHandler.getResource(), instances==0);
 		getPreferences().getGlobalPreferences().removePropertyChangeListener(this);
 		
@@ -977,8 +982,6 @@
 			targetRuntime = null;
 			modelHandler = ModelHandlerLocator.createModelHandler(modelUri, (Bpmn2ResourceImpl)resource);
 			ModelHandlerLocator.put(diagramUri, modelHandler);
-
-			setEditorTitle(modelUri.trimFileExtension().lastSegment());
 		}
 		else if (diagramUri.equals(oldURI)) {
 			ModelHandlerLocator.remove(diagramUri);
diff --git a/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/editor/DesignEditor.java b/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/editor/DesignEditor.java
index da8cb2c..3e98992 100644
--- a/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/editor/DesignEditor.java
+++ b/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/editor/DesignEditor.java
@@ -17,6 +17,7 @@
 import org.eclipse.bpmn2.modeler.core.di.DIUtils;
 import org.eclipse.bpmn2.modeler.core.utils.BusinessObjectUtil;
 import org.eclipse.bpmn2.modeler.core.utils.ModelUtil;
+import org.eclipse.bpmn2.modeler.ui.wizards.Bpmn2DiagramEditorInput;
 import org.eclipse.emf.common.command.Command;
 import org.eclipse.emf.common.notify.Notification;
 import org.eclipse.emf.common.util.TreeIterator;
@@ -97,12 +98,16 @@
 	
 	@Override
     protected void setPartName(String partName) {
-		IEditorInput input = getEditorInput();
-		if (input instanceof DiagramEditorInput) {
-			URI uri = ((DiagramEditorInput)input).getUri();
-			partName = URI.decode(uri.trimFileExtension().lastSegment());
-		}
-		super.setPartName(partName);
+//		IEditorInput input = getEditorInput();
+//		if (input instanceof Bpmn2DiagramEditorInput) {
+//			URI uri = ((Bpmn2DiagramEditorInput)input).getModelUri();
+//			partName = URI.decode(uri.trimFileExtension().lastSegment());
+//		}
+//		else if (input instanceof DiagramEditorInput) {
+//			URI uri = ((DiagramEditorInput)input).getUri();
+//			partName = URI.decode(uri.trimFileExtension().lastSegment());
+//		}
+		super.setPartName(URI.decode(partName));
     }
 
 	private boolean inSelectionChanged = false;
diff --git a/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/property/dialogs/SchemaImportDialog.java b/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/property/dialogs/SchemaImportDialog.java
index 745e301..15c705a 100644
--- a/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/property/dialogs/SchemaImportDialog.java
+++ b/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/property/dialogs/SchemaImportDialog.java
@@ -992,7 +992,7 @@
 				return URI.createFileURI( path );				
 			
 			case BID_BROWSE_WORKSPACE :
-				return URI.createPlatformResourceURI(path,false);				
+				return URI.createPlatformResourceURI(path,true);				
 			
 			case BID_BROWSE_WSIL :
 				//return URI.createFileURI( path );
diff --git a/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/wizards/BPMN2DiagramCreator.java b/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/wizards/BPMN2DiagramCreator.java
index dcb376c..dcd9b4e 100644
--- a/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/wizards/BPMN2DiagramCreator.java
+++ b/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/wizards/BPMN2DiagramCreator.java
@@ -52,7 +52,6 @@
 
 		String modelName = modelUri.trimFragment().trimFileExtension().lastSegment();
 		final Diagram diagram = Graphiti.getPeCreateService().createDiagram("BPMN2", modelName, true);
-		diagram.setName(modelName);
 
 		String diagramName = FileService.createTempName(modelName);
 		URI diagramUri = URI.createFileURI(diagramName);
diff --git a/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/wizards/Bpmn2DiagramEditorInput.java b/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/wizards/Bpmn2DiagramEditorInput.java
index 273c45c..d47155b 100644
--- a/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/wizards/Bpmn2DiagramEditorInput.java
+++ b/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/wizards/Bpmn2DiagramEditorInput.java
@@ -54,6 +54,22 @@
 		return modelUri;
 	}
 	
+	public String getToolTipText() {
+		return modelUri.toPlatformString(true);
+	}
+	
+	public String getName() {
+		return URI.decode(modelUri.trimFileExtension().lastSegment());
+	}
+	
+	public void updateUri(URI diagramFileUri) {
+		if (diagramFileUri.isPlatformResource()) {
+			modelUri = diagramFileUri;
+		}
+		else
+			super.updateUri(diagramFileUri);
+	}
+	
 	@Override
 	public boolean equals(Object obj) {
 		boolean superEquals = super.equals(obj);
diff --git a/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/wizards/FileService.java b/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/wizards/FileService.java
index a539747..becf0cb 100644
--- a/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/wizards/FileService.java
+++ b/org.eclipse.bpmn2.modeler.ui/src/org/eclipse/bpmn2/modeler/ui/wizards/FileService.java
@@ -206,7 +206,13 @@
 		try {
 			if (input instanceof Bpmn2DiagramEditorInput) {
 				URI uri = getInputUri(input);
-				File file = new File(uri.toFileString());
+				String fileName = null;
+				if (uri.isFile())
+					fileName = uri.toFileString();
+				else if (uri.isPlatformResource())
+					fileName = uri.toPlatformString(false);
+				
+				File file = new File(fileName);
 				if (file.exists()) {
 					InputStream is = new FileInputStream(file);
 					return is;
@@ -253,7 +259,8 @@
 	
 	public static String createTempName(String name) {
 		String tempDir = System.getProperty("java.io.tmpdir");
-		return tempDir + name + "." + EcoreUtil.generateUUID();
+		String tempName = tempDir + name + "." + EcoreUtil.generateUUID();
+		return tempName;
 	}
 	
 	public static File createTempFile(String name) {