private void editSliderSample(MouseEvent evt, final int sliderIndex) {
final PropertyContainer vc = new PropertyContainer();
vc.addProperty(Property.create("sample", getSliderSample(sliderIndex)));
vc.getDescriptor("sample").setDisplayName("sample");
vc.getDescriptor("sample").setUnit(getModel().getParameterUnit());
final ValueRange valueRange;
if (sliderIndex == 0) {
valueRange = new ValueRange(Double.NEGATIVE_INFINITY, round(getMaxSliderSample(sliderIndex)));
} else if (sliderIndex == getSliderCount() - 1) {
valueRange = new ValueRange(round(getMinSliderSample(sliderIndex)), Double.POSITIVE_INFINITY);
} else {
valueRange = new ValueRange(round(getMinSliderSample(sliderIndex)), round(getMaxSliderSample(sliderIndex)));
}
vc.getDescriptor("sample").setValueRange(valueRange);
final BindingContext ctx = new BindingContext(vc);
final NumberFormatter formatter = new NumberFormatter(new DecimalFormat("#0.0#"));
formatter.setValueClass(Double.class);
final JFormattedTextField field = new JFormattedTextField(formatter);
field.setColumns(11);
field.setHorizontalAlignment(JFormattedTextField.RIGHT);
ctx.bind("sample", field);
showPopup(evt, field);
ctx.addPropertyChangeListener("sample", pce -> {
hidePopup();
setSliderSample(sliderIndex, (Double) ctx.getBinding("sample").getPropertyValue());
computeZoomInToSliderLimits();
applyChanges();
});
}