1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.vectomatic.svg.edit.client.gxt.binding;
19
20 import org.vectomatic.svg.edit.client.gxt.form.FloatSliderField;
21
22 import com.extjs.gxt.ui.client.data.ModelData;
23 import com.extjs.gxt.ui.client.event.DragEvent;
24 import com.extjs.gxt.ui.client.event.DragListener;
25 import com.extjs.gxt.ui.client.event.Events;
26 import com.extjs.gxt.ui.client.event.Listener;
27 import com.extjs.gxt.ui.client.event.SliderEvent;
28 import com.extjs.gxt.ui.client.widget.Slider;
29
30
31
32
33
34
35 public class FloatSliderFieldBinding extends DelayedBindingBase {
36 private Listener<SliderEvent> sliderClickListener;
37 private DragListener dragListener;
38
39 public FloatSliderFieldBinding(FloatSliderField field, String property) {
40 super(field, property);
41 sliderClickListener = new Listener<SliderEvent>() {
42 public void handleEvent(SliderEvent be) {
43
44 commitChanges();
45 }
46 };
47
48
49
50
51
52
53 dragListener = new DragListener() {
54 @Override
55 public void dragEnd(DragEvent de) {
56
57 commitChanges();
58 }
59 };
60 }
61
62 @Override
63 public void bind(ModelData model) {
64 super.bind(model);
65 Slider slider = ((FloatSliderField)field).getSlider();
66 slider.addListener(Events.DragEnd, dragListener);
67 slider.addListener(Events.OnClick, sliderClickListener);
68 }
69
70 @Override
71 public void unbind() {
72 Slider slider = ((FloatSliderField)field).getSlider();
73 slider.removeListener(Events.DragEnd, dragListener);
74 slider.removeListener(Events.OnClick, sliderClickListener);
75 super.unbind();
76 }
77 }