-package org.simantics.db.procore.ui.internal;\r
-\r
-import org.eclipse.jface.dialogs.MessageDialog;\r
-import org.eclipse.swt.widgets.Display;\r
-import org.eclipse.swt.widgets.Shell;\r
-import org.simantics.db.common.utils.Logger;\r
-\r
-public class Util {\r
- static void showInfo(Shell shell, String message) {\r
- MessageDialog.openInformation(shell, "Information", message);\r
- }\r
- static void showWarning(Shell shell, String message) {\r
- MessageDialog.openWarning(shell, "Warning", message);\r
- }\r
- public static void showError(Shell shell, String message) {\r
- Util.showError(shell, message, null);\r
- }\r
- static void showError(Shell shell, String message, Throwable t) {\r
- Logger.defaultLogError(message, t);\r
- if (null != t)\r
- message += "\n" + t.getMessage();\r
- MessageDialog.openError(shell, "Error", message);\r
- }\r
- public static void logError(String message) {\r
- Util.logError(message, null);\r
- }\r
- public static void logError(String message, Throwable cause) {\r
- Logger.defaultLogError(message, cause);\r
- }\r
- public static void trace(Class<?> clazz) {\r
- trace(clazz, null);\r
- }\r
- public static void trace(String message) {\r
- trace(null, message);\r
- }\r
- public static void trace(Class<?> clazz, String message) {\r
- String s = "";\r
- if (null != clazz)\r
- s += clazz.getSimpleName() + " called.\n";\r
- if (null != message)\r
- s += message;\r
- Logger.defaultLogTrace(s);\r
- }\r
- private static String NL = System.getProperty("line.separator");\r
- static class Choice {\r
- public Choice(String button, String text) {\r
- this.button = button;\r
- this.text = text;\r
- }\r
- public String button;\r
- public String text;\r
- }\r
- public static int select(final Shell shell, final String title, String message, Choice[] choices, int def) {\r
- assert(choices.length > 0);\r
- if (def < 0 || def >= choices.length)\r
- def = 0;\r
- final String[] labels = new String[choices.length];\r
- final StringBuilder sb = new StringBuilder(message.length() + 256);\r
- sb.append(message);\r
- for (int i=0; i<labels.length; ++ i) {\r
- labels[i] = choices[i].button;\r
- sb.append(NL + NL + choices[i].text);\r
- }\r
- if (Display.getDefault().getThread() == Thread.currentThread())\r
- return select(shell, title, sb.toString(), labels, def);\r
- class SelectRunnable implements Runnable {\r
- int ret;\r
- int def;\r
- SelectRunnable(int def) {\r
- this.def = def;\r
- }\r
- public void run() {\r
- ret = select(shell, title, sb.toString(), labels, def);\r
- }\r
- };\r
- SelectRunnable sr = new SelectRunnable(def);\r
- Display.getDefault().syncExec(sr);\r
- return sr.ret;\r
- }\r
- private static int select(Shell shell, String title, String message, String[] labels, int def) {\r
- MessageDialog dialog = new MessageDialog(shell, title, null, message, MessageDialog.QUESTION, labels, def);\r
- int answer = dialog.open();\r
- if (answer < 0 || answer >= labels.length)\r
- answer = 0;\r
- return answer;\r
- }\r
- public static boolean confirm(Shell shell, String title, String message) {\r
- String[] labels = new String[2];\r
- labels[0] = "Yes";\r
- labels[1] = "No";\r
- MessageDialog dialog = new MessageDialog(shell, title, null, message, MessageDialog.QUESTION, labels, 1);\r
- int answer = dialog.open();\r
- return answer == 0;\r
- }\r
- public static boolean openDefaultNo(Shell shell, String title, String message, int style) {\r
- String[] labels = new String[2];\r
- labels[0] = "Yes";\r
- labels[1] = "No";\r
- MessageDialog dialog = new MessageDialog(shell, title, null, message, style, labels, 1);\r
- int answer = dialog.open();\r
- return answer == 0;\r
- }\r
- public static String getMessage(Throwable t) {\r
- StringBuilder s = new StringBuilder(t.getMessage());\r
- final int LIMIT = 10;\r
- int i = 0;\r
- for (Throwable c = t.getCause(); null != c && i < LIMIT; ++i, c = c.getCause())\r
- s.append(NL + "cause: " + c.getMessage());\r
- return s.toString();\r
- }\r
-}\r
+package org.simantics.db.procore.ui.internal;
+
+import org.eclipse.jface.dialogs.MessageDialog;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+import org.simantics.db.common.utils.Logger;
+
+public class Util {
+ static void showInfo(Shell shell, String message) {
+ MessageDialog.openInformation(shell, "Information", message);
+ }
+ static void showWarning(Shell shell, String message) {
+ MessageDialog.openWarning(shell, "Warning", message);
+ }
+ public static void showError(Shell shell, String message) {
+ Util.showError(shell, message, null);
+ }
+ static void showError(Shell shell, String message, Throwable t) {
+ Logger.defaultLogError(message, t);
+ if (null != t)
+ message += "\n" + t.getMessage();
+ MessageDialog.openError(shell, "Error", message);
+ }
+ public static void logError(String message) {
+ Util.logError(message, null);
+ }
+ public static void logError(String message, Throwable cause) {
+ Logger.defaultLogError(message, cause);
+ }
+ public static void trace(Class<?> clazz) {
+ trace(clazz, null);
+ }
+ public static void trace(String message) {
+ trace(null, message);
+ }
+ public static void trace(Class<?> clazz, String message) {
+ String s = "";
+ if (null != clazz)
+ s += clazz.getSimpleName() + " called.\n";
+ if (null != message)
+ s += message;
+ Logger.defaultLogTrace(s);
+ }
+ private static String NL = System.getProperty("line.separator");
+ static class Choice {
+ public Choice(String button, String text) {
+ this.button = button;
+ this.text = text;
+ }
+ public String button;
+ public String text;
+ }
+ public static int select(final Shell shell, final String title, String message, Choice[] choices, int def) {
+ assert(choices.length > 0);
+ if (def < 0 || def >= choices.length)
+ def = 0;
+ final String[] labels = new String[choices.length];
+ final StringBuilder sb = new StringBuilder(message.length() + 256);
+ sb.append(message);
+ for (int i=0; i<labels.length; ++ i) {
+ labels[i] = choices[i].button;
+ sb.append(NL + NL + choices[i].text);
+ }
+ if (Display.getDefault().getThread() == Thread.currentThread())
+ return select(shell, title, sb.toString(), labels, def);
+ class SelectRunnable implements Runnable {
+ int ret;
+ int def;
+ SelectRunnable(int def) {
+ this.def = def;
+ }
+ public void run() {
+ ret = select(shell, title, sb.toString(), labels, def);
+ }
+ };
+ SelectRunnable sr = new SelectRunnable(def);
+ Display.getDefault().syncExec(sr);
+ return sr.ret;
+ }
+ private static int select(Shell shell, String title, String message, String[] labels, int def) {
+ MessageDialog dialog = new MessageDialog(shell, title, null, message, MessageDialog.QUESTION, labels, def);
+ int answer = dialog.open();
+ if (answer < 0 || answer >= labels.length)
+ answer = 0;
+ return answer;
+ }
+ public static boolean confirm(Shell shell, String title, String message) {
+ String[] labels = new String[2];
+ labels[0] = "Yes";
+ labels[1] = "No";
+ MessageDialog dialog = new MessageDialog(shell, title, null, message, MessageDialog.QUESTION, labels, 1);
+ int answer = dialog.open();
+ return answer == 0;
+ }
+ public static boolean openDefaultNo(Shell shell, String title, String message, int style) {
+ String[] labels = new String[2];
+ labels[0] = "Yes";
+ labels[1] = "No";
+ MessageDialog dialog = new MessageDialog(shell, title, null, message, style, labels, 1);
+ int answer = dialog.open();
+ return answer == 0;
+ }
+ public static String getMessage(Throwable t) {
+ StringBuilder s = new StringBuilder(t.getMessage());
+ final int LIMIT = 10;
+ int i = 0;
+ for (Throwable c = t.getCause(); null != c && i < LIMIT; ++i, c = c.getCause())
+ s.append(NL + "cause: " + c.getMessage());
+ return s.toString();
+ }
+}