*/
package jalview.gui;
+import jalview.io.AlignmentFileReaderI;
+import jalview.io.BamFile;
+import jalview.util.MessageManager;
+
+import java.awt.GridBagConstraints;
+import java.awt.GridBagLayout;
+import java.util.Arrays;
+
+import javax.swing.BorderFactory;
+import javax.swing.JComboBox;
+import javax.swing.JLabel;
import javax.swing.JPanel;
+import javax.swing.JTextField;
/**
* A dialog where a user can choose import options for a bam file
public class BamFileOptionsChooser extends JPanel
{
+ // text field for start of range
+ // JFormattedTextField startRange = new JFormattedTextField(
+ // new NumberFormatter(NumberFormat.getIntegerInstance()));
+
+ // text field for end of range
+ // JFormattedTextField endRange = new JFormattedTextField(
+ // new NumberFormatter(NumberFormat.getIntegerInstance()));
+
+ JTextField startRange = new JTextField(10);
+
+ JTextField endRange = new JTextField(10);
+
+ // combo box for chromosome list
+ JComboBox<String> chroCombo;
+
+ public BamFileOptionsChooser(AlignmentFileReaderI source)
+ {
+ Object[] preprocessResult = source.preprocess();
+ String[] chromosomes = Arrays.copyOf(preprocessResult,
+ preprocessResult.length, String[].class);
+
+ setLayout(new GridBagLayout());
+ GridBagConstraints c = new GridBagConstraints();
+
+ setBorder(BorderFactory.createEmptyBorder(0, 10, 10, 10));
+
+ // set up chromosome input
+ JLabel chroLabel = new JLabel(
+ MessageManager.getString("label.bam_chromosome"));
+ chroCombo = new JComboBox<>(chromosomes);
+
+ // set up region input
+ JPanel range = new JPanel();
+ JLabel rangeLabel = new JLabel(
+ MessageManager.getString("label.bam_range"));
+ startRange.setColumns(8);
+ endRange.setColumns(8);
+
+ JLabel rangeSep = new JLabel("-");
+ range.add(startRange);
+ range.add(rangeSep);
+ range.add(endRange);
+
+ // chromosome label top left
+ c.gridx = 0;
+ c.gridy = 0;
+ c.anchor = GridBagConstraints.WEST;
+ c.fill = GridBagConstraints.NONE;
+ this.add(chroLabel, c);
+
+ // chromosome combo top right
+ c.gridx = 1;
+ c.weightx = 1;
+ c.anchor = GridBagConstraints.WEST;
+ c.fill = GridBagConstraints.HORIZONTAL;
+ this.add(chroCombo, c);
+
+ // region label mid left
+ c.gridx = 0;
+ c.gridy = 1;
+ c.anchor = GridBagConstraints.WEST;
+ c.fill = GridBagConstraints.NONE;
+ this.add(rangeLabel, c);
+
+ // region input mid right
+ c.gridx = 1;
+ c.weightx = 1;
+ c.anchor = GridBagConstraints.WEST;
+ c.fill = GridBagConstraints.HORIZONTAL;
+ this.add(range, c);
+ }
+
+ public void update(AlignmentFileReaderI source)
+ {
+
+ int start = Integer.parseInt(startRange.getText());
+ int end = Integer.parseInt(endRange.getText());
+ ((BamFile) source).setOptions((String) chroCombo.getSelectedItem(),
+ start, end);
+
+ }
+
}