1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package info.magnolia.admincentral;
35
36 import info.magnolia.objectfactory.ComponentProvider;
37 import info.magnolia.ui.form.field.converter.NonRoundingConverterFactory;
38 import info.magnolia.ui.framework.ioc.CurrentUiContextReference;
39 import info.magnolia.ui.framework.ioc.SessionStore;
40 import info.magnolia.ui.framework.ioc.UiContextBoundComponentProvider;
41 import info.magnolia.ui.framework.ioc.UiContextReference;
42
43 import java.util.HashMap;
44 import java.util.Map;
45
46 import org.slf4j.Logger;
47 import org.slf4j.LoggerFactory;
48
49 import com.google.inject.Key;
50 import com.vaadin.annotations.JavaScript;
51 import com.vaadin.annotations.Theme;
52 import com.vaadin.server.VaadinRequest;
53 import com.vaadin.server.VaadinSession;
54 import com.vaadin.ui.UI;
55
56
57
58
59
60
61 @Theme("resurface-admincentral")
62 @JavaScript({ "jquery-3.3.1.min.js", "jquery-migrate-3.0.1.min.js" })
63 public class ResurfaceUI extends UI {
64 private static final Logger log = LoggerFactory.getLogger(ResurfaceUI.class);
65 private ResurfaceUIPresenter presenter;
66
67 @Override
68 protected void init(VaadinRequest request) {
69 log.debug("Initializing Resurface Admincentral UI...");
70 getPage().setTitle("Admincentral - Magnolia");
71
72
73 VaadinSession currentSession = VaadinSession.getCurrent();
74 currentSession.setConverterFactory(new NonRoundingConverterFactory());
75
76 log.debug("Initializing ComponentProvider with Admincentral UiContext...");
77 UiContextReference admincentralUiReference = UiContextReference.ofUi(this);
78
79 Map<Key, Object> instances = new HashMap<>();
80 instances.put(Key.get(CurrentUiContextReference.class), new CurrentUiContextReference());
81 SessionStore.access().createBeanStore(admincentralUiReference, instances);
82
83 ComponentProvider componentProvider = new UiContextBoundComponentProvider(admincentralUiReference);
84
85 setContent(componentProvider.getComponent(ResurfaceUILayout.class));
86
87 presenter = componentProvider.newInstance(ResurfaceUIPresenter.class, this);
88 presenter.start();
89 }
90
91 @Override
92 public void detach() {
93 try {
94 SessionStore.access().releaseBeanStore(UiContextReference.ofCurrentUi());
95 presenter.stop();
96
97 super.detach();
98 } catch (Exception e) {
99 getErrorHandler().error(new com.vaadin.server.ErrorEvent(e));
100 }
101 }
102 }