public SAMRecordFilter(final BamView bamView) { super("Filter Reads"); JPanel pane = (JPanel) getContentPane(); pane.setLayout(new GridBagLayout()); int nflags = SAMRecordFlagPredicate.FLAGS.length; GridBagConstraints c = new GridBagConstraints(); int nrows = 0; c.ipadx = 5; c.ipady = 2; c.gridx = 0; c.gridwidth = 2; c.anchor = GridBagConstraints.WEST; c.gridy = nrows++; // MAPQ pane.add(new JLabel(" By Mappying Quality (mapq) cut-off:"), c); c.gridy = nrows++; c.gridwidth = 1; final JTextField cutOff = new JTextField(12); if (bamView.getSamRecordMapQPredicate() != null) cutOff.setText(Integer.toString(bamView.getSamRecordMapQPredicate().cutOff)); cutOff.addKeyListener( new KeyAdapter() { public void keyPressed(KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_ENTER) setQualityCutOff(cutOff, bamView); } }); pane.add(cutOff, c); c.gridx = 1; final JButton setCutOff = new JButton("SET"); setCutOff.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { setQualityCutOff(cutOff, bamView); } }); pane.add(setCutOff, c); // FLAGS c.gridwidth = 2; c.gridx = 0; c.gridy = nrows++; pane.add(new JSeparator(), c); c.gridy = nrows++; pane.add(new JLabel(" By SAM FLAG column:"), c); c.gridy = nrows++; pane.add(new JLabel(" Select below to show or hide only the reads with "), c); c.gridy = nrows++; pane.add(new JLabel(" the flag set."), c); final JComboBox flagCombo[] = new JComboBox[nflags]; final String[] items = {"", "SHOW", "HIDE"}; c.gridwidth = 1; for (int j = 0; j < nflags; j++) { flagCombo[j] = new JComboBox(items); if (SAMRecordFlagPredicate.FLAGS_DESCRIPTION[j].equalsIgnoreCase("Read Unmapped")) flagCombo[j].setSelectedItem("HIDE"); flagCombo[j].addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { filterChange(bamView, flagCombo); } }); c.gridy = nrows++; c.gridx = 0; pane.add(flagCombo[j], c); c.gridx = 1; pane.add(new JLabel(SAMRecordFlagPredicate.FLAGS_DESCRIPTION[j]), c); } JButton closeFrame = new JButton("Close"); closeFrame.addActionListener( new ActionListener() { public void actionPerformed(ActionEvent e) { setVisible(false); } }); c.gridx = 1; c.gridy = nrows++; c.fill = GridBagConstraints.NONE; pane.add(closeFrame, c); pack(); rightJustifyFrame(this); setVisible(true); }