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.thumbnaillayout.widget;
35
36 import info.magnolia.ui.vaadin.gwt.client.icon.widget.IconWidget;
37 import info.magnolia.ui.vaadin.gwt.client.mgwt.SliderClientBundle;
38
39 import com.google.gwt.core.shared.GWT;
40 import com.google.gwt.dom.client.Style;
41 import com.google.gwt.event.logical.shared.HasValueChangeHandlers;
42 import com.google.gwt.event.logical.shared.ValueChangeHandler;
43 import com.google.gwt.event.shared.HandlerRegistration;
44 import com.google.gwt.user.client.ui.Composite;
45 import com.google.gwt.user.client.ui.FlowPanel;
46 import com.google.gwt.user.client.ui.HasValue;
47 import com.googlecode.mgwt.ui.client.widget.MSlider;
48
49
50
51
52 public class Slider extends Composite implements HasValueChangeHandlers<Integer>, HasValue<Integer> {
53
54 private final SliderClientBundle cssBundle = GWT.create(SliderClientBundle.class);
55
56 private final MSlider slider = new MSlider(cssBundle.css());
57
58 private FlowPanel panel = new FlowPanel();
59
60 public Slider() {
61 super();
62
63 IconWidget iconSizeSmall = new IconWidget();
64 iconSizeSmall.setIconName("search");
65 iconSizeSmall.setSize(20);
66 iconSizeSmall.setColor("#aaa");
67 iconSizeSmall.getElement().getStyle().setVerticalAlign(Style.VerticalAlign.TOP);
68
69 panel.addStyleName("slider-panel");
70 panel.getElement().getStyle().setPadding(10, Style.Unit.PX);
71 panel.add(iconSizeSmall);
72 panel.add(slider);
73
74 slider.setWidth("125px");
75 initWidget(panel);
76 }
77
78 @Override
79 public HandlerRegistration addValueChangeHandler(ValueChangeHandler<Integer> integerValueChangeHandler) {
80 return slider.addValueChangeHandler(integerValueChangeHandler);
81 }
82
83 @Override
84 public Integer getValue() {
85 return slider.getValue();
86 }
87
88 @Override
89 public void setValue(Integer value) {
90 slider.setValue(value);
91 }
92
93 @Override
94 public void setValue(Integer value, boolean fireEvents) {
95 slider.setValue(value, fireEvents);
96 }
97 }