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.ui.vaadin.gwt.client.widget.controlbar;
35
36 import info.magnolia.jcr.util.NodeTypes;
37
38 import com.google.gwt.dom.client.Element;
39 import com.google.gwt.user.client.DOM;
40 import com.google.gwt.user.client.ui.FlowPanel;
41 import com.google.gwt.user.client.ui.Widget;
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59 public abstract class AbstractBar extends SimpleBar {
60
61
62 private final static String EDITOR_BAR_LABEL_CLASS_NAME = "mgnlEditorBarLabel";
63 private final static String EDITOR_BAR_BUTTONS_CLASS_NAME = "mgnlEditorBarButtons";
64 private final static String EDITOR_BAR_WITH_STATUS_CLASS_NAME = "mgnlEditorBarStatusIndicator";
65
66 private final static String MGNL_LEVEL_CLASS_NAME = "mgnlLevel-";
67
68 protected final static String AREA_CLASS_NAME = "area";
69 protected final static String COMPONENT_CLASS_NAME = "component";
70
71 protected final static String ICON_CLASS_NAME = "editorIcon";
72 protected final static String EDIT_CLASS_NAME = "icon-edit";
73 protected final static String ADD_CLASS_NAME = "icon-add-item";
74
75 private final static String STATUS_INDICATOR_CLASS_NAME = "status-indicator";
76 private final static String STATUS_INACTIVATED_CLASS_NAME = "background-color-red icon-status-red";
77 private final static String STATUS_MODIFIED_CLASS_NAME = "background-color-yellow icon-status-orange";
78
79 private final static int MAX_LEVEL = 6;
80
81 private FlowPanel buttons;
82 private Element label;
83 private Element activationIndicator;
84
85
86
87
88
89
90 protected void initLayout() {
91 this.buttons = new FlowPanel();
92 this.activationIndicator = DOM.createDiv();
93 this.label = DOM.createDiv();
94
95 buttons.setStylePrimaryName(EDITOR_BAR_BUTTONS_CLASS_NAME);
96 insert(buttons, 0);
97
98 getElement().appendChild(activationIndicator);
99 getElement().appendChild(label);
100 }
101
102
103
104
105 protected void addLabel(String text, int level) {
106 label.setClassName(EDITOR_BAR_LABEL_CLASS_NAME);
107 label.setInnerText(text);
108
109 label.setTitle(text);
110
111 label.addClassName(MGNL_LEVEL_CLASS_NAME + (level > MAX_LEVEL ? "max" : String.valueOf(level)));
112 }
113
114
115
116
117
118 protected void addStatusIndicator(int activationStatus) {
119 switch (activationStatus) {
120 case NodeTypes.Activatable.ACTIVATION_STATUS_MODIFIED:
121 activationIndicator.setClassName(STATUS_INDICATOR_CLASS_NAME);
122 activationIndicator.addClassName(STATUS_MODIFIED_CLASS_NAME);
123 addStyleName(EDITOR_BAR_WITH_STATUS_CLASS_NAME);
124 break;
125 case NodeTypes.Activatable.ACTIVATION_STATUS_NOT_ACTIVATED:
126 activationIndicator.setClassName(STATUS_INDICATOR_CLASS_NAME);
127 activationIndicator.addClassName(STATUS_INACTIVATED_CLASS_NAME);
128 addStyleName(EDITOR_BAR_WITH_STATUS_CLASS_NAME);
129 break;
130
131 case NodeTypes.Activatable.ACTIVATION_STATUS_ACTIVATED:
132 default:
133 break;
134 }
135 }
136
137 @Override
138 public void onAttach() {
139 super.onAttach();
140 }
141
142 protected void addButton(final Widget button) {
143 buttons.add(button);
144 }
145 }