Loading GUI/src/main/java/cz/fidentis/analyst/core/ControlPanelBuilder.java +14 −9 Original line number Diff line number Diff line Loading @@ -461,10 +461,11 @@ public class ControlPanelBuilder { public JTextField addSliderWithVal(int max, ActionListener inputAction) { JSlider slider = addSlider(max); IntValueRange range = max == -1 ? null : new IntValueRange(0, max); boolean percentageSlider = max == -1; IntValueRange range = percentageSlider ? null : new IntValueRange(0, max); JTextField inputField = addFormattedInputField(range, inputAction); connectSliderWithTextField(slider, inputField, max); connectSliderWithTextField(slider, inputField, percentageSlider); return inputField; } Loading @@ -483,10 +484,11 @@ public class ControlPanelBuilder { public JTextField addSliderButtonedWithVal(int max, double stepSize, ActionListener inputAction) { JSlider slider = addSlider(max); IntValueRange range = max == -1 ? null : new IntValueRange(0, max); boolean percentageSlider = max == -1; IntValueRange range = percentageSlider ? null : new IntValueRange(0, max); JTextField inputField = addFormattedInputFieldButtoned(range, stepSize, inputAction); connectSliderWithTextField(slider, inputField, max); connectSliderWithTextField(slider, inputField, percentageSlider); return inputField; } Loading @@ -497,12 +499,15 @@ public class ControlPanelBuilder { * * @param slider Slider to be associated with the given text field. * @param inputField Text field to be associated with the given slider. * @param max Max value of the slider (and the text field). * If {@code -1}, then percentage slider is used with 100 as the max. value. * @param percentage If {@code true}, the slider is treated as a percentage slider * with 100 as the maximum value. The text field then treats * the percentual values as <b>decimal</b> numbers from the interval [0,1].<br> * If {@code false}, the slider works with <b>integer</b> values * from the interval [0,{@code max}] and so does the text field. */ private void connectSliderWithTextField(JSlider slider, JTextField inputField, int max) { private void connectSliderWithTextField(JSlider slider, JTextField inputField, boolean percentage) { slider.addChangeListener((ChangeEvent ce) -> { if (max == -1) { if (percentage) { inputField.setText(doubleToStringLocale(slider.getValue() / 100.0)); } else { inputField.setText(intToStringLocale(slider.getValue())); Loading Loading @@ -544,7 +549,7 @@ public class ControlPanelBuilder { ); inputField.addActionListener((ActionEvent ae) -> { if (max == -1) { // percents in [0,1] if (percentage) { // percents in [0,1] slider.setValue((int) (parseLocaleDouble(inputField) * 100)); } else { // integers slider.setValue(parseLocaleInt(inputField)); Loading Loading
GUI/src/main/java/cz/fidentis/analyst/core/ControlPanelBuilder.java +14 −9 Original line number Diff line number Diff line Loading @@ -461,10 +461,11 @@ public class ControlPanelBuilder { public JTextField addSliderWithVal(int max, ActionListener inputAction) { JSlider slider = addSlider(max); IntValueRange range = max == -1 ? null : new IntValueRange(0, max); boolean percentageSlider = max == -1; IntValueRange range = percentageSlider ? null : new IntValueRange(0, max); JTextField inputField = addFormattedInputField(range, inputAction); connectSliderWithTextField(slider, inputField, max); connectSliderWithTextField(slider, inputField, percentageSlider); return inputField; } Loading @@ -483,10 +484,11 @@ public class ControlPanelBuilder { public JTextField addSliderButtonedWithVal(int max, double stepSize, ActionListener inputAction) { JSlider slider = addSlider(max); IntValueRange range = max == -1 ? null : new IntValueRange(0, max); boolean percentageSlider = max == -1; IntValueRange range = percentageSlider ? null : new IntValueRange(0, max); JTextField inputField = addFormattedInputFieldButtoned(range, stepSize, inputAction); connectSliderWithTextField(slider, inputField, max); connectSliderWithTextField(slider, inputField, percentageSlider); return inputField; } Loading @@ -497,12 +499,15 @@ public class ControlPanelBuilder { * * @param slider Slider to be associated with the given text field. * @param inputField Text field to be associated with the given slider. * @param max Max value of the slider (and the text field). * If {@code -1}, then percentage slider is used with 100 as the max. value. * @param percentage If {@code true}, the slider is treated as a percentage slider * with 100 as the maximum value. The text field then treats * the percentual values as <b>decimal</b> numbers from the interval [0,1].<br> * If {@code false}, the slider works with <b>integer</b> values * from the interval [0,{@code max}] and so does the text field. */ private void connectSliderWithTextField(JSlider slider, JTextField inputField, int max) { private void connectSliderWithTextField(JSlider slider, JTextField inputField, boolean percentage) { slider.addChangeListener((ChangeEvent ce) -> { if (max == -1) { if (percentage) { inputField.setText(doubleToStringLocale(slider.getValue() / 100.0)); } else { inputField.setText(intToStringLocale(slider.getValue())); Loading Loading @@ -544,7 +549,7 @@ public class ControlPanelBuilder { ); inputField.addActionListener((ActionEvent ae) -> { if (max == -1) { // percents in [0,1] if (percentage) { // percents in [0,1] slider.setValue((int) (parseLocaleDouble(inputField) * 100)); } else { // integers slider.setValue(parseLocaleInt(inputField)); Loading