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.layout.lazylayout.widget;
35
36 import com.google.gwt.event.dom.client.ClickHandler;
37 import com.google.gwt.event.logical.shared.HasValueChangeHandlers;
38 import com.google.gwt.event.logical.shared.ValueChangeHandler;
39 import com.google.gwt.event.shared.HandlerRegistration;
40 import com.google.gwt.user.client.ui.Button;
41 import com.google.gwt.user.client.ui.Composite;
42 import com.google.gwt.user.client.ui.FlowPanel;
43 import com.google.gwt.user.client.ui.HasValue;
44 import com.vaadin.v7.client.ui.VSlider;
45
46
47
48
49 public class Slider extends Composite implements HasValueChangeHandlers<Double>, HasValue<Double> {
50
51 private VSlider slider = new VSlider();
52
53
54 public Slider() {
55 super();
56 slider.setMinValue(0);
57 slider.setMaxValue(100);
58
59 FlowPanel panel = new FlowPanel();
60 panel.addStyleName("slider-panel");
61 panel.add(createButton("icon-close-node", event -> slider.setValue(slider.getValue() - 10, true)));
62 panel.add(slider);
63 panel.add(createButton("icon-open-node", event -> slider.setValue(slider.getValue() + 10, true)));
64
65 initWidget(panel);
66 }
67
68 private Button createButton(String icon, ClickHandler clickHandler) {
69 Button button = new Button("<span class=\"" + icon + "\"></span>");
70 button.addStyleName("icon");
71 button.addClickHandler(clickHandler);
72 return button;
73 }
74
75 @Override
76 public HandlerRegistration addValueChangeHandler(ValueChangeHandler<Double> integerValueChangeHandler) {
77 return slider.addValueChangeHandler(integerValueChangeHandler);
78 }
79
80 @Override
81 public Double getValue() {
82 return slider.getValue();
83 }
84
85 @Override
86 public void setValue(Double value) {
87 slider.setValue(value);
88 }
89
90 @Override
91 public void setValue(Double value, boolean fireEvents) {
92 slider.setValue(value, fireEvents);
93 }
94 }