From cd11337a592060b47eee6aa1a6fc7d22f1e07584 Mon Sep 17 00:00:00 2001 From: tcarver <tjc> Date: Thu, 4 Aug 2011 09:21:13 +0100 Subject: [PATCH] start on a read list --- .../artemis/components/alignment/BamView.java | 10 +++++ .../components/alignment/SAMRecordList.java | 42 +++++++++++++++++++ 2 files changed, 52 insertions(+) create mode 100644 uk/ac/sanger/artemis/components/alignment/SAMRecordList.java diff --git a/uk/ac/sanger/artemis/components/alignment/BamView.java b/uk/ac/sanger/artemis/components/alignment/BamView.java index 96aafd715..f8db207ed 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 000000000..0bd802c34 --- /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)); + } + } +} -- GitLab