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.controlbar;
35
36
37 import info.magnolia.templating.editor.client.PageEditor;
38 import info.magnolia.templating.editor.client.dom.MgnlElement;
39
40 import com.google.gwt.dom.client.Element;
41 import com.google.gwt.dom.client.Node;
42 import com.google.gwt.user.client.ui.FlowPanel;
43
44
45
46
47
48 public class AreaEndBar extends FlowPanel {
49
50
51 private MgnlElement mgnlElement;
52
53 public AreaEndBar(MgnlElement mgnlElement) {
54
55 this.mgnlElement = mgnlElement;
56 this.setStyleName("mgnlEditor mgnlEditorBar");
57 this.addStyleName("area");
58 this.addStyleName("end");
59
60 setVisible(false);
61
62 attach();
63
64 }
65
66 public void attach() {
67 if (mgnlElement.getFirstElement() != null && mgnlElement.getFirstElement() == mgnlElement.getLastElement()) {
68 attach(mgnlElement);
69 }
70 else {
71 attach(mgnlElement.getEndComment().getElement());
72 }
73 }
74
75 public void attach(MgnlElement mgnlElement) {
76 Element element = mgnlElement.getFirstElement();
77 if (element != null) {
78 element.appendChild(getElement());
79 }
80 onAttach();
81 }
82
83 public void attach(Element element) {
84 final Node parentNode = element.getParentNode();
85 parentNode.insertBefore(getElement(), element);
86 onAttach();
87 }
88
89 @Override
90 protected void onAttach() {
91 PageEditor.model.addElements(mgnlElement, getElement());
92 PageEditor.model.addAreaEndBar(mgnlElement, this);
93 super.onAttach();
94 }
95
96
97 }