--- /dev/null
+/*
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
+ *
+ * This file is part of Jalview.
+ *
+ * Jalview is free software: you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation, either version 3
+ * of the License, or (at your option) any later version.
+ *
+ * Jalview is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ * PURPOSE. See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
+ * The Jalview Authors are detailed in the 'AUTHORS' file.
+ */
+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);
+
+ }
+
+}