mirror of
https://github.com/OMGeeky/ATCS.git
synced 2025-12-26 23:57:25 +01:00
extract common stuff of addIntegerField & addDoubleField
This commit is contained in:
@@ -265,12 +265,12 @@ public abstract class Editor extends JPanel implements ProjectElementListener {
|
|||||||
return addIntegerField(pane, label, initialValue, 0, allowNegatives, editable, listener);
|
return addIntegerField(pane, label, initialValue, 0, allowNegatives, editable, listener);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static JSpinner addIntegerField(JPanel pane, String label, Integer initialValue, Integer defaultValue, boolean allowNegatives, boolean editable, final FieldUpdateListener listener) {
|
public static <T extends Comparable<?>> JSpinner addNumberField(JPanel pane, String label, boolean editable, final FieldUpdateListener listener, Number initialValue, Number defaultValue, T minimum, T maxValue, Number stepSize) {
|
||||||
JPanel tfPane = new JPanel();
|
JPanel tfPane = new JPanel();
|
||||||
tfPane.setLayout(new JideBoxLayout(tfPane, JideBoxLayout.LINE_AXIS, 6));
|
tfPane.setLayout(new JideBoxLayout(tfPane, JideBoxLayout.LINE_AXIS, 6));
|
||||||
JLabel tfLabel = new JLabel(label);
|
JLabel tfLabel = new JLabel(label);
|
||||||
tfPane.add(tfLabel, JideBoxLayout.FIX);
|
tfPane.add(tfLabel, JideBoxLayout.FIX);
|
||||||
final JSpinner spinner = new JSpinner(new SpinnerNumberModel(initialValue != null ? initialValue.intValue() : defaultValue.intValue(), allowNegatives ? Integer.MIN_VALUE : 0, Integer.MAX_VALUE, 1));
|
final JSpinner spinner = new JSpinner(new SpinnerNumberModel(initialValue != null ? initialValue : defaultValue, minimum, maxValue, stepSize));
|
||||||
((JSpinner.DefaultEditor) spinner.getEditor()).getTextField().setHorizontalAlignment(JTextField.LEFT);
|
((JSpinner.DefaultEditor) spinner.getEditor()).getTextField().setHorizontalAlignment(JTextField.LEFT);
|
||||||
spinner.setEnabled(editable);
|
spinner.setEnabled(editable);
|
||||||
((DefaultFormatter) ((NumberEditor) spinner.getEditor()).getTextField().getFormatter()).setCommitsOnValidEdit(true);
|
((DefaultFormatter) ((NumberEditor) spinner.getEditor()).getTextField().getFormatter()).setCommitsOnValidEdit(true);
|
||||||
@@ -294,6 +294,9 @@ public abstract class Editor extends JPanel implements ProjectElementListener {
|
|||||||
});
|
});
|
||||||
return spinner;
|
return spinner;
|
||||||
}
|
}
|
||||||
|
public static JSpinner addIntegerField(JPanel pane, String label, Integer initialValue, Integer defaultValue, boolean allowNegatives, boolean editable, final FieldUpdateListener listener) {
|
||||||
|
return addNumberField(pane, label, editable, listener, initialValue, defaultValue, allowNegatives ? Integer.MIN_VALUE : 0, Integer.MAX_VALUE, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
private static final String percent = "%";
|
private static final String percent = "%";
|
||||||
@@ -450,34 +453,7 @@ public abstract class Editor extends JPanel implements ProjectElementListener {
|
|||||||
// }
|
// }
|
||||||
|
|
||||||
public static JSpinner addDoubleField(JPanel pane, String label, Double initialValue, boolean editable, final FieldUpdateListener listener) {
|
public static JSpinner addDoubleField(JPanel pane, String label, Double initialValue, boolean editable, final FieldUpdateListener listener) {
|
||||||
JPanel tfPane = new JPanel();
|
return addNumberField(pane, label, editable, listener, initialValue, 0.0d, 0.0d, new Float(Float.MAX_VALUE).doubleValue(), 1.0d);
|
||||||
tfPane.setLayout(new JideBoxLayout(tfPane, JideBoxLayout.LINE_AXIS, 6));
|
|
||||||
JLabel tfLabel = new JLabel(label);
|
|
||||||
tfPane.add(tfLabel, JideBoxLayout.FIX);
|
|
||||||
final JSpinner spinner = new JSpinner(new SpinnerNumberModel(initialValue != null ? initialValue.doubleValue() : 0.0d, 0.0d, new Float(Float.MAX_VALUE).doubleValue(), 1.0d));
|
|
||||||
((JSpinner.DefaultEditor) spinner.getEditor()).getTextField().setHorizontalAlignment(JTextField.LEFT);
|
|
||||||
spinner.setEnabled(editable);
|
|
||||||
((DefaultFormatter) ((NumberEditor) spinner.getEditor()).getTextField().getFormatter()).setCommitsOnValidEdit(true);
|
|
||||||
tfPane.add(spinner, JideBoxLayout.VARY);
|
|
||||||
JButton nullify = new JButton(new ImageIcon(DefaultIcons.getNullifyIcon()));
|
|
||||||
tfPane.add(nullify, JideBoxLayout.FIX);
|
|
||||||
nullify.setEnabled(editable);
|
|
||||||
pane.add(tfPane, JideBoxLayout.FIX);
|
|
||||||
pane.add(tfPane, JideBoxLayout.FIX);
|
|
||||||
spinner.addChangeListener(new ChangeListener() {
|
|
||||||
@Override
|
|
||||||
public void stateChanged(ChangeEvent e) {
|
|
||||||
listener.valueChanged(spinner, spinner.getValue());
|
|
||||||
}
|
|
||||||
});
|
|
||||||
nullify.addActionListener(new ActionListener() {
|
|
||||||
@Override
|
|
||||||
public void actionPerformed(ActionEvent e) {
|
|
||||||
spinner.setValue(0.0d);
|
|
||||||
listener.valueChanged(spinner, null);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return spinner;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static IntegerBasedCheckBox addIntegerBasedCheckBox(JPanel pane, String label, Integer initialValue, boolean editable) {
|
public static IntegerBasedCheckBox addIntegerBasedCheckBox(JPanel pane, String label, Integer initialValue, boolean editable) {
|
||||||
|
|||||||
Reference in New Issue
Block a user