1 package io.github.magwas.inez.ui;
2
3 import org.eclipse.e4.core.di.IInjector;
4 import org.eclipse.e4.core.di.InjectorFactory;
5 import org.eclipse.equinox.app.IApplication;
6 import org.eclipse.equinox.app.IApplicationContext;
7 import org.eclipse.swt.widgets.Display;
8 import org.eclipse.ui.PlatformUI;
9
10 import io.github.magwas.inez.ui.tree.ModelTreeContentProvider;
11 import io.github.magwas.inez.ui.tree.ModelTreeLabelProvider;
12 import io.github.magwas.inez.ui.tree.NewDiagramAction;
13
14 public class Application implements IApplication {
15
16 @Override
17 public Object start(IApplicationContext context) {
18 System.err.println("appStart");
19 IInjector injector = InjectorFactory.getDefault();
20 injector.addBinding(ModelTreeContentProvider.class);
21 injector.addBinding(ModelTreeLabelProvider.class);
22 injector.addBinding(NewDiagramAction.class);
23 Display display = PlatformUI.createDisplay();
24 try {
25 int returnCode = PlatformUI.createAndRunWorkbench(display,
26 new ApplicationWorkbenchAdvisor());
27 if (returnCode == PlatformUI.RETURN_RESTART) {
28 return EXIT_RESTART;
29 }
30 return EXIT_OK;
31 } finally {
32 display.dispose();
33 }
34 }
35
36 @Override
37 public void stop() {
38 System.err.println("appStop");
39 }
40 }