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.templating.editor.client.widget.overlay;
35
36
37 import info.magnolia.templating.editor.client.dom.MgnlElement;
38
39 import com.google.gwt.dom.client.Document;
40 import com.google.gwt.dom.client.Element;
41 import com.google.gwt.dom.client.Style;
42 import com.google.gwt.user.client.ui.FlowPanel;
43
44
45
46
47
48 public class AbstractOverlay extends FlowPanel {
49
50 protected String label;
51 protected int level = 1;
52 private double top;
53 public AbstractOverlay(MgnlElement element) {
54
55 this.label = element.getAttribute("label");
56
57 for (MgnlElement parent = element.getParent(); parent != null; parent = parent.getParent()) {
58 this.level++;
59 }
60
61
62 this.setStyleName("mgnlEditorOverlay");
63
64 this.getElement().getStyle().setPosition(Style.Position.ABSOLUTE);
65 this.getElement().getStyle().setZIndex(level);
66
67 }
68
69 public void attach() {
70 Element body = Document.get().getBody();
71 body.appendChild(this.getElement());
72 onAttach();
73 }
74
75 public void toggleVisible() {
76 setVisible(!isVisible());
77 }
78
79 public void setTop(double top) {
80 this.top = top;
81 this.getElement().getStyle().setTop(top, Style.Unit.PX);
82 }
83 public double getTop() {
84 return top;
85 }
86 public void setLeft(double left) {
87 this.getElement().getStyle().setLeft(left, Style.Unit.PX);
88 }
89
90 public void setWidth(double width) {
91 this.getElement().getStyle().setWidth(width, Style.Unit.PX);
92 }
93
94 public void setHeight(double height) {
95 this.getElement().getStyle().setHeight(height, Style.Unit.PX);
96 }
97
98
99 }