Bug 467821 - Deleting a project does not close the application model
editor

The root cause was accessing UI from non UI thread - fixed this. Also
removed exceptions while closing project with opened model editor and
removes syserror output on editor creation.

Change-Id: I8f6fd8fe5195ba164c1d159ff10c21a8e0f060e0
Signed-off-by: Andrey Loskutov <loskutov@gmx.de>
diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/ModelEditor.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/ModelEditor.java
index 09fbd70..941c9df 100644
--- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/ModelEditor.java
+++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/ModelEditor.java
@@ -1285,7 +1285,7 @@
 	}
 
 	private void registerDefaultEditors() {
-		System.err.println(getClass().getName() + ".registerDefaultEditors: " + resourcePool); //$NON-NLS-1$
+		// System.err.println(getClass().getName() + ".registerDefaultEditors: " + resourcePool); //$NON-NLS-1$
 
 		registerEditor(ApplicationPackageImpl.Literals.APPLICATION,
 			ContextInjectionFactory.make(ApplicationEditor.class, context));
diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/properties/ProjectOSGiTranslationProvider.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/properties/ProjectOSGiTranslationProvider.java
index 1a964c7..1eb8d31 100644
--- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/properties/ProjectOSGiTranslationProvider.java
+++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/common/properties/ProjectOSGiTranslationProvider.java
@@ -176,6 +176,9 @@
 	 */
 	private void handleManifestChange(IFile file) {
 		try {
+			if (!file.isAccessible()) {
+				return;
+			}
 			final String newValue = extractBasenameFromManifest(file);
 
 			if (!newValue.equals(basename)) {
diff --git a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/wbm/ApplicationModelEditor.java b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/wbm/ApplicationModelEditor.java
index f994c56..b1961c4 100644
--- a/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/wbm/ApplicationModelEditor.java
+++ b/bundles/org.eclipse.e4.tools.emf.ui/src/org/eclipse/e4/tools/emf/ui/internal/wbm/ApplicationModelEditor.java
@@ -123,15 +123,21 @@
 			}
 		}
 
-		private void hidePart(boolean force) {
-			partService.hidePart(part, force);
+		private void hidePart(final boolean force) {
+			sync.asyncExec(new Runnable() {
+
+				@Override
+				public void run() {
+					partService.hidePart(part, force);
+				}
+			});
 		}
 	};
 
 	/**
 	 * Shows an error dialog based on the passed exception. It should never
 	 * occur but if it does, the user can report a problem.
-	 * 
+	 *
 	 * @param exc
 	 */
 	protected void statusDialog(final Exception exc) {