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 private OverlayLayer.ModalityLevel modalityLevel;
61
62 public ResurfaceDialogViewImpl() {
63 this.dialogComponent = new DialogComponent();
64 }
65
66 public void setCaption(String caption) {
67 this.title = caption;
68 }
69
70 @Override
71 public String getTitle() {
72 return title;
73 }
74
75 @Override
76 public void setContent(View content) {
77 this.contentView = content;
78 this.dialogComponent.setContent(content.asVaadinComponent());
79 }
80
81 @Override
82 public void setClosable(boolean isClosable) {
83 this.isClosable = isClosable;
84 }
85
86 @Override
87 public boolean isClosable() {
88 return this.isClosable;
89 }
90
91 @Override
92 public void close() {
93
94
95 if (!isClosed) {
96 isClosed = true;
97 this.dialogCloseHandlers.forEach(handler -> handler.onDialogClose(this));
98 }
99 }
100
101 @Override
102 public void addDialogCloseHandler(DialogCloseHandler handler) {
103 dialogCloseHandlers.add(handler);
104 }
105
106 @Override
107 public void removeDialogCloseHandler(DialogCloseHandler handler) {
108 dialogCloseHandlers.remove(handler);
109 }
110
111 @Override
112 public void addShortcut(ShortcutListener shortcut) {
113 this.shortcutListeners.add(shortcut);
114 this.dialogComponent.addShortcutListener(shortcut);
115 }
116
117 @Override
118 public void removeShortcut(ShortcutListener shortcut) {
119 this.shortcutListeners.remove(shortcut);
120 this.dialogComponent.removeShortcutListener(shortcut);
121 }
122
123 @Override
124 public void setActionAreaView(EditorActionAreaView actionView) {
125 this.actionView = actionView;
126 this.dialogComponent.setFooter(actionView.asVaadinComponent());
127 }
128
129 @Override
130 public View getContentView() {
131 return this.contentView;
132 }
133
134 @Override
135 public EditorActionAreaView getActionAreaView() {
136 return this.actionView;
137 }
138
139 @Override
140 public OverlayLayer.ModalityLevel getModalityLevel() {
141 return modalityLevel;
142 }
143
144 @Override
145 public AbstractComponent asVaadinComponent() {
146 return this.dialogComponent;
147 }
148
149 @Override
150 public void setModalityLevel(OverlayLayer.ModalityLevel modalityLevel) {
151 this.modalityLevel = modalityLevel;
152 }
153
154 @Override
155 public void setDescriptionVisible(boolean isDescriptionVisible) {
156
157 }
158
159 @Override
160 public void setDescription(String description) {
161
162 }
163 }