Commit b084b098 authored by Daniel Schramm's avatar Daniel Schramm
Browse files

Method for addition of formatted text field implemented

parent b12f8fb6
Loading
Loading
Loading
Loading
+36 −0
Original line number Diff line number Diff line
@@ -522,6 +522,42 @@ public class ControlPanelBuilder {
        return slider;
    }
    
    public JFormattedTextField addFormattedInputField(IntValueRange range, ActionListener inputAction) {
        GridBagConstraints c = new GridBagConstraints();
        c.gridwidth = 2;
        c.gridx = col;
        col += 2;
        c.gridy = row;
        c.anchor = GridBagConstraints.CENTER;
        c.fill = GridBagConstraints.BOTH;
        
        NumberFormatter formatter;
        if (range == null) { // percents in [0,1] => use two digit double
            NumberFormat format = DecimalFormat.getInstance(Locale.getDefault());
            format.setMinimumFractionDigits(1);
            format.setMaximumFractionDigits(NUMBER_OF_FRACTION_DIGITS);
            format.setRoundingMode(RoundingMode.HALF_UP);
            formatter = new NumberFormatter(format);
            formatter.setValueClass(Double.class);
            formatter.setMinimum(0.0);
            formatter.setMaximum(1.0);
        } else {
            NumberFormat format = NumberFormat.getInstance();
            formatter = new NumberFormatter(format);
            formatter.setValueClass(Integer.class);
            formatter.setMinimum(range.getMinimum());
            formatter.setMaximum(range.getMaximum());
        }
        formatter.setAllowsInvalid(false);
        
        JFormattedTextField input = new JFormattedTextField(formatter);
        input.setText("0");
        input.addActionListener(inputAction);
        controlPanel.add(input, c);
        
        return input;
    }
    
    /**
     * Adds a scrollable pane that carries the given panel as its content.
     *