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.dom.client.Element;
37 import com.google.gwt.dom.client.Node;
38
39 import info.magnolia.templating.editor.client.PageEditor;
40 import info.magnolia.templating.editor.client.dom.MgnlElement;
41
42
43
44
45 public class ElementProcessor {
46
47 private static final String CMS_ADD = "cms:add";
48 private static final String CMS_PLACEHOLDER = "cms:placeholder";
49 private static final String CMS_EDIT = "cms:edit";
50
51 public static void process(Node node, MgnlElement mgnlElement) {
52
53 Element element = node.cast();
54 if (element.hasTagName("A")) {
55 disableLink(element);
56 removeHover(element);
57 }
58 PageEditor.model.addElement(mgnlElement, element);
59
60 if (mgnlElement.getFirstElement() == null) {
61 mgnlElement.setFirstElement(element);
62 }
63
64 if (mgnlElement.getLastElement() == null || !mgnlElement.getLastElement().isOrHasChild(element)) {
65 mgnlElement.setLastElement(element);
66 }
67
68
69
70 if (element.hasAttribute(CMS_ADD)) {
71 mgnlElement.setComponentElement(element);
72 }
73
74 else if (element.hasAttribute(CMS_PLACEHOLDER)) {
75 mgnlElement.setAreaElement(element);
76 }
77
78 else if (element.hasAttribute(CMS_EDIT)) {
79 mgnlElement.setEditElement(element);
80 }
81 }
82
83 public static void removeHover (Element element) {
84 element.addClassName("disabled");
85 }
86
87 public native static void disableLink(Element element)
88
89
90
91
92
93 ;
94 }