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.sticker.widget;
35
36 import com.google.gwt.dom.client.DivElement;
37 import com.google.gwt.dom.client.SpanElement;
38 import com.google.gwt.dom.client.Style;
39 import com.google.gwt.event.dom.client.ClickEvent;
40 import com.google.gwt.event.dom.client.ClickHandler;
41 import com.google.gwt.event.dom.client.HasClickHandlers;
42 import com.google.gwt.event.shared.HandlerRegistration;
43 import com.google.gwt.user.client.DOM;
44 import com.google.gwt.user.client.ui.Widget;
45
46
47
48
49 public class VSticker extends Widget implements HasClickHandlers {
50
51 private static final String STICKER_CLASS_NAME = "v-sticker";
52
53 private static final String STICKER_ENVIRONMENT_CLASS_NAME = "v-sticker-environment";
54
55 private static final String STICKER_WEBAPP_CLASS_NAME = "v-sticker-webapp";
56
57 private DivElement div = DivElement.as(DOM.createDiv());
58
59 private SpanElement environmentSpan = SpanElement.as(DOM.createSpan());
60
61 private SpanElement webappSpan = SpanElement.as(DOM.createSpan());
62
63 private String backgroundColor;
64
65 private String textColor;
66
67 private String webappName;
68
69 private String environment;
70
71 private boolean expanded = false;
72
73 public VSticker() {
74 DOM.appendChild(div, environmentSpan);
75 DOM.appendChild(div, webappSpan);
76
77 div.addClassName(STICKER_CLASS_NAME);
78 environmentSpan.addClassName(STICKER_ENVIRONMENT_CLASS_NAME);
79 webappSpan.addClassName(STICKER_WEBAPP_CLASS_NAME);
80
81 addClickHandler(handler -> {
82 if (expanded) {
83 webappSpan.getStyle().setDisplay(Style.Display.NONE);
84 expanded = false;
85 } else {
86 webappSpan.getStyle().setDisplay(Style.Display.INLINE_BLOCK);
87 expanded = true;
88 }
89 });
90
91 setElement(div);
92 }
93
94 public void setEnvironment(String environment) {
95 this.environment = environment;
96 environmentSpan.setInnerText(getEnvironment());
97 }
98
99 public void setWebappName(String webappName) {
100 this.webappName = webappName;
101 webappSpan.setInnerText(getWebappName());
102 }
103
104 public void setBackgroundColor(String backgroundcolor) {
105 this.backgroundColor = backgroundcolor;
106 div.getStyle().setBackgroundColor(getBackgroundColor());
107 }
108
109 public void setTextColor(String textColor) {
110 this.textColor = textColor;
111 div.getStyle().setColor(getTextColor());
112 }
113
114 public String getEnvironment() {
115 return environment;
116 }
117
118 public String getWebappName() {
119 return webappName;
120 }
121
122
123 public String getBackgroundColor() {
124 return backgroundColor;
125 }
126
127 public String getTextColor() {
128 return textColor;
129 }
130
131 @Override
132 public HandlerRegistration addClickHandler(ClickHandler handler) {
133 return addDomHandler(handler, ClickEvent.getType());
134 }
135 }