public FloatOptionEditComponent(Option opt) {
FloatOption option = (FloatOption) opt;
this.editedOption = option;
double minVal = option.getMinValue();
double maxVal = option.getMaxValue();
setLayout(new GridLayout(1, 0));
this.spinner = new JSpinner(new SpinnerNumberModel(option.getValue(),
minVal, maxVal, 0.001));
add(this.spinner);
if ((minVal > Double.NEGATIVE_INFINITY)
&& (maxVal < Double.POSITIVE_INFINITY)) {
this.slider = new JSlider(0, SLIDER_RESOLUTION,
floatValueToSliderValue(option.getValue()));
add(this.slider);
this.slider.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
FloatOptionEditComponent.this.spinner.setValue(sliderValueToFloatValue(FloatOptionEditComponent.this.slider.getValue()));
}
});
this.spinner.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
FloatOptionEditComponent.this.slider.setValue(floatValueToSliderValue(((Double) FloatOptionEditComponent.this.spinner.getValue()).doubleValue()));
}
});
}
}