diff --git a/uk/ac/sanger/artemis/components/alignment/BamView.java b/uk/ac/sanger/artemis/components/alignment/BamView.java index 96aafd71588e8c78f59664fd6055a975f0768073..f8db207edfa2e48f88ebf2c43e32b1ffc91399ba 100644 --- a/uk/ac/sanger/artemis/components/alignment/BamView.java +++ b/uk/ac/sanger/artemis/components/alignment/BamView.java @@ -2363,6 +2363,16 @@ public class BamView extends JPanel filterFrame.setVisible(true); } }); + + JMenuItem readList = new JMenuItem("List Reads ..."); + menu.add(readList); + readList.addActionListener(new ActionListener() + { + public void actionPerformed(ActionEvent e) + { + new SAMRecordList(readsInView); + } + }); final JMenuItem bamSplitter = new JMenuItem("Clone window"); bamSplitter.addActionListener(new ActionListener() diff --git a/uk/ac/sanger/artemis/components/alignment/SAMRecordList.java b/uk/ac/sanger/artemis/components/alignment/SAMRecordList.java new file mode 100644 index 0000000000000000000000000000000000000000..0bd802c34dee13ff74a7ffc66bff3666b21f8b29 --- /dev/null +++ b/uk/ac/sanger/artemis/components/alignment/SAMRecordList.java @@ -0,0 +1,42 @@ +package uk.ac.sanger.artemis.components.alignment; + +import java.awt.BorderLayout; +import java.awt.Graphics; +import java.util.List; + +import javax.swing.JFrame; +import javax.swing.JPanel; +import javax.swing.JScrollBar; + +import net.sf.samtools.SAMRecord; + +public class SAMRecordList extends JPanel +{ + private List<SAMRecord> readsInView; + private JScrollBar verticalScroll = new JScrollBar(JScrollBar.VERTICAL); + + public SAMRecordList(List<SAMRecord> readsInView) + { + this.readsInView = readsInView; + JFrame f = new JFrame("Reads"); + JPanel mainPanel = (JPanel) f.getContentPane(); + mainPanel.add(verticalScroll, BorderLayout.EAST); + mainPanel.add(this, BorderLayout.CENTER); + f.pack(); + f.setVisible(true); + } + + protected void paintComponent(Graphics g) + { + super.paintComponent(g); + for(int i=0; i<readsInView.size(); i++) + { + SAMRecord thisRead = readsInView.get(i); + String readStr = thisRead.getReadName()+"\t"+ + thisRead.getAlignmentStart()+".."+thisRead.getAlignmentEnd()+"\t"+ + thisRead.getReadLength()+"\t"+ + thisRead.getMappingQuality(); + g.drawString(readStr, 10, ((i+12)*12)); + } + } +}