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.ui.vaadin.gwt.client.widget.controlbar.eventmanager.ControlBarEventHandler;
37 import info.magnolia.ui.vaadin.gwt.client.widget.controlbar.listener.AreaListener;
38
39 import com.google.gwt.core.client.GWT;
40 import com.google.gwt.dom.client.NativeEvent;
41 import com.google.gwt.user.client.ui.HTML;
42
43
44
45
46 public class AreaBar extends AbstractBar<AreaListener> {
47
48
49 private boolean addable;
50
51 protected AreaBar() {
52 addStyleName(AREA_CLASS_NAME);
53 }
54
55 @Override
56 protected void createControls() {
57 super.createControls();
58 if (addable) {
59 final HTML add = new HTML();
60 add.setStyleName(ICON_CLASS_NAME);
61 add.addStyleName(ADD_CLASS_NAME);
62 eventManager.addClickOrTouchHandler(add, new ControlBarEventHandler() {
63 @Override
64 public void handle(NativeEvent event) {
65 listener.createOptionalArea();
66 }
67 });
68 addButton(add);
69 }
70 }
71
72
73
74
75
76 public static class Builder extends AbstractBar.Builder<Builder, AreaBar, AreaListener> {
77
78 private boolean edit;
79 private boolean add;
80
81 public Builder withAdd(boolean add) {
82 this.add = add;
83 return this;
84 }
85
86 public Builder withEdit(boolean edit) {
87 this.edit = edit;
88 return this;
89 }
90
91 public AreaBar build() {
92 AreaBar areaBar = super.build(GWT.create(AreaBar.class));
93 areaBar.addable = add;
94 areaBar.editable = edit;
95 areaBar.createControls();
96 areaBar.addIcons();
97
98 return areaBar;
99 }
100 }
101 }