package gui.processing; import gui.JTextFieldLimit; import javax.swing.JComboBox; import javax.swing.JLabel; import javax.swing.JSpinner; import javax.swing.JTextField; import javax.swing.SpinnerModel; import javax.swing.SpinnerNumberModel; import net.miginfocom.swing.MigLayout; @SuppressWarnings("serial") public class StepFileRow extends CommandFileRow { private JComboBox<String> inFileComboBox; private JTextField outFileTextField; private JSpinner stepSizeSpinner; private JLabel inFileLabel; private JLabel outFileLabel; private JLabel stepSizeLabel; private String[] fileNames; public StepFileRow(String[] fileNames) { this.fileNames = fileNames; this.setLayout(new MigLayout()); addLabels(); addInputFields(); } @Override protected void addLabels() { inFileLabel = new JLabel("Infile"); outFileLabel = new JLabel("Outfile"); stepSizeLabel = new JLabel("Step size"); this.add(inFileLabel, CommandFileRow.WIDE); this.add(outFileLabel, CommandFileRow.WIDE); this.add(stepSizeLabel, "wrap"); } @Override protected void addInputFields() { inFileComboBox = new JComboBox<String>(fileNames); inFileComboBox.setEditable(true); outFileTextField = new JTextField(); SpinnerModel stepSizeSpinnerModel = new SpinnerNumberModel(1, 0, Integer.MAX_VALUE, 1); stepSizeSpinner = new JSpinner(stepSizeSpinnerModel); outFileTextField.setDocument(new JTextFieldLimit(512)); this.add(inFileComboBox, CommandFileRow.WIDE); this.add(outFileTextField, CommandFileRow.WIDE); this.add(stepSizeSpinner, CommandFileRow.MEDIUM); inFileComboBox.addActionListener(new InfileActionListener(outFileTextField, ".sgr")); inFileComboBox.setSelectedIndex(0); } public String getInFile() { return inFileComboBox.getSelectedItem().toString(); } public String getOutFile() { return outFileTextField.getText(); } public int getStepSize() { return (int) stepSizeSpinner.getValue(); } }