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.dialog;
35
36 import info.magnolia.ui.api.overlay.OverlayLayer;
37 import info.magnolia.ui.api.view.View;
38 import info.magnolia.ui.dialog.actionarea.view.EditorActionAreaView;
39
40 import java.util.LinkedHashSet;
41 import java.util.Set;
42
43 import com.vaadin.event.ShortcutListener;
44 import com.vaadin.ui.AbstractComponent;
45 import com.vaadin.ui.CustomComponent;
46
47
48
49
50 public class ResurfaceDialogViewImpl extends CustomComponent implements DialogView {
51
52 private String title;
53 private boolean isClosable;
54 private Set<DialogCloseHandler> dialogCloseHandlers = new LinkedHashSet<>();
55 private Set<ShortcutListener> shortcutListeners = new LinkedHashSet<>();
56 private EditorActionAreaView actionView;
57 private View contentView;
58 private DialogComponent dialogComponent;
59 private boolean isClosed = false;
60
61 public ResurfaceDialogViewImpl() {
62 this.dialogComponent = new DialogComponent();
63 }
64
65 public void setCaption(String caption) {
66 this.title = caption;
67 }
68
69 @Override
70 public String getTitle() {
71 return title;
72 }
73
74 @Override
75 public void setContent(View content) {
76 this.contentView = content;
77 this.dialogComponent.setContent(content.asVaadinComponent());
78 }
79
80 @Override
81 public void setClosable(boolean isClosable) {
82 this.isClosable = isClosable;
83 }
84
85 @Override
86 public boolean isClosable() {
87 return this.isClosable;
88 }
89
90 @Override
91 public void close() {
92
93
94 if (!isClosed) {
95 isClosed = true;
96 this.dialogCloseHandlers.forEach(handler -> handler.onDialogClose(this));
97 }
98 }
99
100 @Override
101 public void addDialogCloseHandler(DialogCloseHandler handler) {
102 dialogCloseHandlers.add(handler);
103 }
104
105 @Override
106 public void removeDialogCloseHandler(DialogCloseHandler handler) {
107 dialogCloseHandlers.remove(handler);
108 }
109
110 @Override
111 public void addShortcut(ShortcutListener shortcut) {
112 this.shortcutListeners.add(shortcut);
113 this.dialogComponent.addShortcutListener(shortcut);
114 }
115
116 @Override
117 public void removeShortcut(ShortcutListener shortcut) {
118 this.shortcutListeners.remove(shortcut);
119 this.dialogComponent.removeShortcutListener(shortcut);
120 }
121
122 @Override
123 public void setActionAreaView(EditorActionAreaView actionView) {
124 this.actionView = actionView;
125 this.dialogComponent.setFooter(actionView.asVaadinComponent());
126 }
127
128 @Override
129 public View getContentView() {
130 return this.contentView;
131 }
132
133 @Override
134 public EditorActionAreaView getActionAreaView() {
135 return this.actionView;
136 }
137
138 @Override
139 public OverlayLayer.ModalityLevel getModalityLevel() {
140 return OverlayLayer.ModalityLevel.STRONG;
141 }
142
143 @Override
144 public AbstractComponent asVaadinComponent() {
145 return this.dialogComponent;
146 }
147
148 @Override
149 public void setModalityLevel(OverlayLayer.ModalityLevel modalityLevel) {
150
151 }
152
153 @Override
154 public void setDescriptionVisible(boolean isDescriptionVisible) {
155
156 }
157
158 @Override
159 public void setDescription(String description) {
160
161 }
162 }