// f: voidfunc(DoubleRange) static RangeSlider rangeSliderZeroToOne(DoubleRange defRange, O f) { ret swing(func -> RangeSlider { int max = 9999; RangeSlider slider = new RangeSlider(0, max); rangeSliderSetZeroToOneDoubleRange(slider, max, defRange); slider.addChangeListener(new ChangeListener { DoubleRange lastValue = zeroToOneDoubleRangeFromRangeSlider(max, slider); public void stateChanged(ChangeEvent e) { DoubleRange value = zeroToOneDoubleRangeFromRangeSlider(max, slider); if (neq(value, lastValue)) { lastValue = value; setToolTip(slider, str(value)); pcallF(f, value); } } }); ret slider; }); }