had to rename the packages to make them compliant with buckminster
[taxeditor.git] / eu.etaxonomy.taxeditor.navigation / src / test / java / eu / etaxonomy / taxeditor / navigation / Application.java
diff --git a/eu.etaxonomy.taxeditor.navigation/src/test/java/eu/etaxonomy/taxeditor/navigation/Application.java b/eu.etaxonomy.taxeditor.navigation/src/test/java/eu/etaxonomy/taxeditor/navigation/Application.java
new file mode 100644 (file)
index 0000000..9cca65d
--- /dev/null
@@ -0,0 +1,45 @@
+package eu.etaxonomy.taxeditor.navigation;
+
+import org.eclipse.equinox.app.IApplication;
+import org.eclipse.equinox.app.IApplicationContext;
+import org.eclipse.swt.widgets.Display;
+import org.eclipse.ui.IWorkbench;
+import org.eclipse.ui.PlatformUI;
+
+/**
+ * This class controls all aspects of the application's execution
+ */
+public class Application implements IApplication {
+
+       /* (non-Javadoc)
+        * @see org.eclipse.equinox.app.IApplication#start(org.eclipse.equinox.app.IApplicationContext)
+        */
+       public Object start(IApplicationContext context) {
+               Display display = PlatformUI.createDisplay();
+               try {
+                       int returnCode = PlatformUI.createAndRunWorkbench(display, new ApplicationWorkbenchAdvisor());
+                       if (returnCode == PlatformUI.RETURN_RESTART) {
+                               return IApplication.EXIT_RESTART;
+                       }
+                       return IApplication.EXIT_OK;
+               } finally {
+                       display.dispose();
+               }
+       }
+
+       /* (non-Javadoc)
+        * @see org.eclipse.equinox.app.IApplication#stop()
+        */
+       public void stop() {
+               final IWorkbench workbench = PlatformUI.getWorkbench();
+               if (workbench == null)
+                       return;
+               final Display display = workbench.getDisplay();
+               display.syncExec(new Runnable() {
+                       public void run() {
+                               if (!display.isDisposed())
+                                       workbench.close();
+                       }
+               });
+       }
+}