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.ui.admincentral.compatibility;
35
36 import info.magnolia.i18nsystem.I18nizer;
37 import info.magnolia.i18nsystem.SimpleTranslator;
38 import info.magnolia.monitoring.SystemMonitor;
39 import info.magnolia.ui.api.app.AppContext;
40 import info.magnolia.ui.api.app.AppController;
41 import info.magnolia.ui.api.app.AppDescriptor;
42 import info.magnolia.ui.api.location.LocationController;
43 import info.magnolia.ui.api.overlay.OverlayCloser;
44 import info.magnolia.ui.api.overlay.OverlayLayer;
45 import info.magnolia.ui.api.shell.Shell;
46 import info.magnolia.ui.api.view.View;
47 import info.magnolia.ui.framework.app.AppInstanceControllerImpl;
48 import info.magnolia.ui.framework.message.MessagesManager;
49 import info.magnolia.ui.framework.overlay.OverlayPresenter;
50
51 import javax.inject.Inject;
52
53
54
55
56
57 public class M5AppInstanceController extends AppInstanceControllerImpl {
58 private final Shell shell;
59 private final OverlayPresenter overlayPresenter;
60
61 @Inject
62 public M5AppInstanceController(AppController appController, LocationController locationController,
63 Shell shell, MessagesManager messagesManager, AppDescriptor appDescriptor,
64 SystemMonitor systemMonitor, I18nizer i18nizer, SimpleTranslator i18n) {
65 super(appController, locationController, shell, messagesManager, appDescriptor, systemMonitor, i18nizer, i18n);
66 this.shell = shell;
67 this.overlayPresenter = initializeOverlayPresenter();
68 }
69
70 protected OverlayPresenter initializeOverlayPresenter() {
71 return new AppOverlayPresenter(this, shell);
72 }
73
74 @Override
75 public OverlayLayer getOverlayDelegate() {
76 return overlayPresenter;
77 }
78
79
80
81
82 static class AppOverlayPresenter extends OverlayPresenter {
83 private final AppContext appContext;
84 private final Shell shell;
85
86 @Inject
87 public AppOverlayPresenter(AppContext appContext, Shell shell) {
88 this.appContext = appContext;
89 this.shell = shell;
90 }
91
92 @Override
93 public OverlayCloser openOverlay(View view, ModalityLevel modalityLevel) {
94 View overlayParent = appContext.getView();
95 return shell.openOverlayOnView(view, overlayParent, ModalityDomain.APP, modalityLevel);
96 }
97 }
98 }