[unrelated] better editor load failure diagnostics
diff --git a/plugins/org.eclipse.ocl.xtext.base.ui/src/org/eclipse/ocl/xtext/base/ui/messages/BaseUIMessages.java b/plugins/org.eclipse.ocl.xtext.base.ui/src/org/eclipse/ocl/xtext/base/ui/messages/BaseUIMessages.java
index 5b848a9..cb29df8 100644
--- a/plugins/org.eclipse.ocl.xtext.base.ui/src/org/eclipse/ocl/xtext/base/ui/messages/BaseUIMessages.java
+++ b/plugins/org.eclipse.ocl.xtext.base.ui/src/org/eclipse/ocl/xtext/base/ui/messages/BaseUIMessages.java
@@ -21,6 +21,8 @@
static {
NLS.initializeMessages(BaseUIMessages.class.getName(), BaseUIMessages.class);
}
+
+ public static String LoadError_Title;
public static String NewWizardPage_errorTitle;
public static String NewWizardPage_file;
diff --git a/plugins/org.eclipse.ocl.xtext.base.ui/src/org/eclipse/ocl/xtext/base/ui/messages/BaseUIMessages.properties b/plugins/org.eclipse.ocl.xtext.base.ui/src/org/eclipse/ocl/xtext/base/ui/messages/BaseUIMessages.properties
index e53ce63..df58fc9 100644
--- a/plugins/org.eclipse.ocl.xtext.base.ui/src/org/eclipse/ocl/xtext/base/ui/messages/BaseUIMessages.properties
+++ b/plugins/org.eclipse.ocl.xtext.base.ui/src/org/eclipse/ocl/xtext/base/ui/messages/BaseUIMessages.properties
@@ -11,6 +11,8 @@
#
###############################################################################
+LoadError_Title = Load Problems
+
NewWizardPage_errorTitle = Creation problems
NewWizardPage_file=file
NewWizardPage_internalErrorTitle = Creation problems
diff --git a/plugins/org.eclipse.ocl.xtext.base.ui/src/org/eclipse/ocl/xtext/base/ui/model/BaseCSorASDocumentProvider.java b/plugins/org.eclipse.ocl.xtext.base.ui/src/org/eclipse/ocl/xtext/base/ui/model/BaseCSorASDocumentProvider.java
index 4ed4a52..e09c886 100644
--- a/plugins/org.eclipse.ocl.xtext.base.ui/src/org/eclipse/ocl/xtext/base/ui/model/BaseCSorASDocumentProvider.java
+++ b/plugins/org.eclipse.ocl.xtext.base.ui/src/org/eclipse/ocl/xtext/base/ui/model/BaseCSorASDocumentProvider.java
@@ -14,6 +14,7 @@
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
+import java.io.PrintWriter;
import java.io.StringReader;
import java.io.StringWriter;
import java.util.ArrayList;
@@ -39,6 +40,7 @@
import org.eclipse.emf.edit.ui.util.EditUIUtil;
import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.jface.dialogs.ErrorDialog;
+import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.text.Document;
import org.eclipse.jface.text.IDocument;
import org.eclipse.ocl.pivot.Model;
@@ -51,6 +53,8 @@
import org.eclipse.ocl.pivot.utilities.ClassUtil;
import org.eclipse.ocl.xtext.base.ui.BaseUiModule;
import org.eclipse.ocl.xtext.base.ui.BaseUiPluginHelper;
+import org.eclipse.ocl.xtext.base.ui.messages.BaseUIMessages;
+import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.IEditorInput;
import org.eclipse.ui.IFileEditorInput;
import org.eclipse.xtext.parsetree.reconstr.XtextSerializationException;
@@ -349,6 +353,19 @@
// throw new CoreException(new Status(IStatus.ERROR, OCLExamplesCommonPlugin.PLUGIN_ID, "Failed to load", e));
} catch (IOException e) {
throw new CoreException(new Status(IStatus.ERROR, BaseUiModule.PLUGIN_ID, "Failed to load", e));
+ } catch (Throwable e) {
+ Runnable displayRefresh = new Runnable() {
+ @Override
+ public void run() {
+ StringWriter stringWriter = new StringWriter();
+ PrintWriter pw = new PrintWriter(stringWriter);
+ e.printStackTrace(pw);
+ String string = stringWriter.toString().replace("\r", "");
+ MessageDialog.openError(null, BaseUIMessages.LoadError_Title, string);
+ }
+ };
+ Display.getDefault().asyncExec(displayRefresh);
+ displayText = "/* Load failed */";
}
superSetDocumentText(document, displayText);
}