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.placeholder;
35
36 import info.magnolia.templating.editor.client.PageEditor;
37 import info.magnolia.templating.editor.client.dom.MgnlElement;
38
39
40 import com.google.gwt.dom.client.Element;
41 import com.google.gwt.user.client.ui.Label;
42
43
44
45
46 public class AreaPlaceHolder extends AbstractPlaceHolder {
47
48
49 public AreaPlaceHolder(MgnlElement mgnlElement) {
50
51 super(mgnlElement);
52
53 this.addStyleName("area");
54 String label = mgnlElement.getComment().getAttribute("label");
55 Label areaName = new Label(label + " Placeholder");
56 areaName.setStyleName("label");
57
58 if (mgnlElement.getRootArea() != mgnlElement) {
59 setVisible(false);
60 }
61 add(areaName);
62
63 ComponentPlaceHolder placeHolder = new ComponentPlaceHolder(mgnlElement);
64
65 add(placeHolder);
66 attach();
67 PageEditor.model.addAreaPlaceHolder(getMgnlElement(), this);
68
69 }
70
71 public void attach() {
72 Element parent = getMgnlElement().getAreaElement();
73 if (parent == null) {
74 parent = PageEditor.model.getEditBar(getMgnlElement()).getElement().getParentElement();
75 parent.insertAfter(getElement(), PageEditor.model.getEditBar(getMgnlElement()).getElement());
76 }
77 else {
78 parent.insertFirst(getElement());
79 }
80
81 onAttach();
82 }
83
84 public void setActive(boolean active) {
85 setStyleName("active", active);
86 }
87 }