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) {