-package org.simantics.db.procore.ui.internal;\r
-\r
-import java.io.File;\r
-import java.lang.reflect.Method;\r
-import java.util.HashMap;\r
-import java.util.Map;\r
-\r
-import org.eclipse.swt.widgets.Display;\r
-import org.eclipse.swt.widgets.Shell;\r
-import org.simantics.db.common.utils.Logger;\r
-import org.simantics.db.exception.InternalException;\r
-import org.simantics.db.server.DatabaseCorruptedException;\r
-import org.simantics.db.server.DatabaseLastExitException;\r
-import org.simantics.db.server.DatabaseProtocolException;\r
-import org.simantics.db.server.DatabaseStartException;\r
-import org.simantics.db.server.DatabaseVersionException;\r
-import org.simantics.db.server.GuardFileVersionException;\r
-import org.simantics.db.server.ProCoreException;\r
-\r
-public class UI {\r
- public static boolean delete(Shell shell, File folder) {\r
- return HandlerUtil.delete(shell, folder, "Database Delete", null);\r
- }\r
- public static boolean purge(Shell shell, File folder) {\r
- return HandlerUtil.purge(shell, folder, "Database Purge", null);\r
- }\r
- public static boolean handleStart(Shell shell, InternalException e) throws ProCoreException {\r
- if (!(e instanceof ProCoreException))\r
- return false; // Can not fix this exception.\r
- ProCoreException pce = (ProCoreException)e;\r
- Handler handler = getStart(pce);\r
- assert(null != handler);\r
- return handler.start(shell, pce);\r
- }\r
- public static Display getDisplay() {\r
- Display d = Display.getCurrent();\r
- if (d == null)\r
- d = Display.getDefault();\r
- return d;\r
- }\r
- static Map<Long, Handler> startHandlers = new HashMap<Long, Handler>();\r
- static {\r
- startHandlers.put(GuardFileVersionException.getHandlerId(), new GuardFileVersionHandler());\r
- startHandlers.put(DatabaseCorruptedException.getHandlerId(), new DatabaseCorruptedHandler());\r
- startHandlers.put(DatabaseStartException.getHandlerId(), new DatabaseStartHandler());\r
- startHandlers.put(DatabaseVersionException.getHandlerId(), new DatabaseVersionHandler());\r
- startHandlers.put(DatabaseLastExitException.getHandlerId(), new DatabaseLastExitHandler());\r
- startHandlers.put(DatabaseProtocolException.getHandlerId(), new DatabaseProtocolHandler());\r
- }\r
- private static <E extends ProCoreException> long getId(E pe) {\r
- long id = 0;\r
- try {\r
- Method m = pe.getClass().getMethod("getHandlerId");\r
- Object value = m.invoke(null);\r
- id = (long)value;\r
- } catch (RuntimeException e) {\r
- Logger.defaultLogError(e);\r
- } catch (Exception e) {\r
- Logger.defaultLogError(e);\r
- }\r
- return id;\r
- }\r
- private static <E extends ProCoreException> Handler getStart(E e) {\r
- Handler h = startHandlers.get(getId(e));\r
- if (null == h)\r
- return new DefaultHandler();\r
- else\r
- return h;\r
- }\r
-}\r
+package org.simantics.db.procore.ui.internal;
+
+import java.io.File;
+import java.lang.reflect.Method;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.swt.widgets.Shell;
+import org.simantics.db.common.utils.Logger;
+import org.simantics.db.exception.InternalException;
+import org.simantics.db.server.DatabaseCorruptedException;
+import org.simantics.db.server.DatabaseLastExitException;
+import org.simantics.db.server.DatabaseProtocolException;
+import org.simantics.db.server.DatabaseStartException;
+import org.simantics.db.server.DatabaseVersionException;
+import org.simantics.db.server.GuardFileVersionException;
+import org.simantics.db.server.ProCoreException;
+
+public class UI {
+ public static boolean delete(Shell shell, File folder) {
+ return HandlerUtil.delete(shell, folder, "Database Delete", null);
+ }
+ public static boolean purge(Shell shell, File folder) {
+ return HandlerUtil.purge(shell, folder, "Database Purge", null);
+ }
+ public static boolean handleStart(Shell shell, InternalException e) throws ProCoreException {
+ if (!(e instanceof ProCoreException))
+ return false; // Can not fix this exception.
+ ProCoreException pce = (ProCoreException)e;
+ Handler handler = getStart(pce);
+ assert(null != handler);
+ return handler.start(shell, pce);
+ }
+ public static Display getDisplay() {
+ Display d = Display.getCurrent();
+ if (d == null)
+ d = Display.getDefault();
+ return d;
+ }
+ static Map<Long, Handler> startHandlers = new HashMap<Long, Handler>();
+ static {
+ startHandlers.put(GuardFileVersionException.getHandlerId(), new GuardFileVersionHandler());
+ startHandlers.put(DatabaseCorruptedException.getHandlerId(), new DatabaseCorruptedHandler());
+ startHandlers.put(DatabaseStartException.getHandlerId(), new DatabaseStartHandler());
+ startHandlers.put(DatabaseVersionException.getHandlerId(), new DatabaseVersionHandler());
+ startHandlers.put(DatabaseLastExitException.getHandlerId(), new DatabaseLastExitHandler());
+ startHandlers.put(DatabaseProtocolException.getHandlerId(), new DatabaseProtocolHandler());
+ }
+ private static <E extends ProCoreException> long getId(E pe) {
+ long id = 0;
+ try {
+ Method m = pe.getClass().getMethod("getHandlerId");
+ Object value = m.invoke(null);
+ id = (long)value;
+ } catch (RuntimeException e) {
+ Logger.defaultLogError(e);
+ } catch (Exception e) {
+ Logger.defaultLogError(e);
+ }
+ return id;
+ }
+ private static <E extends ProCoreException> Handler getStart(E e) {
+ Handler h = startHandlers.get(getId(e));
+ if (null == h)
+ return new DefaultHandler();
+ else
+ return h;
+ }
+}