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.ui.api.app.SubAppContext;
37 import info.magnolia.ui.api.app.SubAppDescriptor;
38 import info.magnolia.ui.api.overlay.OverlayCloser;
39 import info.magnolia.ui.api.overlay.OverlayLayer;
40 import info.magnolia.ui.api.shell.Shell;
41 import info.magnolia.ui.api.view.View;
42 import info.magnolia.ui.framework.app.SubAppContextImpl;
43 import info.magnolia.ui.framework.overlay.OverlayPresenter;
44
45 import javax.inject.Inject;
46
47
48
49
50
51
52 public class M5SubAppContext extends SubAppContextImpl {
53 private final Shell shell;
54 private final OverlayPresenter overlayPresenter;
55
56 public M5SubAppContext(SubAppDescriptor subAppDescriptor, Shell shell) {
57 super(subAppDescriptor, shell);
58 this.shell = shell;
59 this.overlayPresenter = initializeOverlayPresenter();
60 }
61
62 protected OverlayPresenter initializeOverlayPresenter() {
63 return new SubAppOverlayPresenter(this, shell);
64 }
65
66 @Override
67 public OverlayLayer getOverlayDelegate() {
68 return overlayPresenter;
69 }
70
71
72
73
74 static class SubAppOverlayPresenter extends OverlayPresenter {
75 private final SubAppContext subAppContext;
76 private final Shell shell;
77
78 @Inject
79 public SubAppOverlayPresenter(SubAppContext subAppContext, Shell shell) {
80 this.subAppContext = subAppContext;
81 this.shell = shell;
82 }
83
84 @Override
85 public OverlayCloser openOverlay(View view, ModalityLevel modalityLevel) {
86
87 View overlayParent = subAppContext.getAppContext().getView().getSubAppViewContainer(subAppContext.getInstanceId());
88 return shell.openOverlayOnView(view, overlayParent, ModalityDomain.SUB_APP, modalityLevel);
89 }
90 }
91 }