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.dom.processor;
35
36 import com.google.gwt.core.client.GWT;
37
38 import info.magnolia.rendering.template.AreaDefinition;
39 import info.magnolia.templating.editor.client.PageEditor;
40 import info.magnolia.templating.editor.client.dom.MgnlElement;
41 import info.magnolia.templating.editor.client.widget.controlbar.AreaBar;
42 import info.magnolia.templating.editor.client.widget.controlbar.AreaEndBar;
43 import info.magnolia.templating.editor.client.widget.placeholder.AreaPlaceHolder;
44 import info.magnolia.templating.editor.client.widget.placeholder.ComponentPlaceHolder;
45
46
47
48
49 public class AreaProcessor extends MgnlElementProcessor {
50
51 public AreaProcessor(MgnlElement mgnlElement) {
52 super(mgnlElement);
53 }
54
55 @Override
56 public void process() {
57 AreaBar areaBar = null;
58 try {
59 areaBar = new AreaBar(getMgnlElement());
60
61 boolean noComponent = getMgnlElement().getComment().getAttribute("type").equals(AreaDefinition.TYPE_NO_COMPONENT);
62 if (getMgnlElement().getComponents().isEmpty() && !noComponent) {
63 new AreaPlaceHolder(getMgnlElement());
64 }
65
66 try {
67 ComponentPlaceHolder placeHolder = new ComponentPlaceHolder(getMgnlElement());
68 placeHolder.attach();
69 }
70 catch(IllegalArgumentException e) {
71 GWT.log("Not creating componentPLaceHolder for this element. Missing parameters.");
72 }
73
74 new AreaEndBar(getMgnlElement());
75 }
76 catch (IllegalArgumentException e) {
77 GWT.log("Not creating areabar for this element. Missing parameters. Will be deleted.");
78 }
79
80 if (areaBar == null) {
81
82
83
84
85 getMgnlElement().delete();
86
87
88
89 PageEditor.model.removeMgnlElement(getMgnlElement());
90 }
91 }
92
93 }