From 99d232760cad85a580551c576cf7705726c28568 Mon Sep 17 00:00:00 2001
From: tjc <tjc@ee4ac58c-ac51-4696-9907-e4b3aa274f04>
Date: Sat, 3 Oct 2009 13:23:32 +0000
Subject: [PATCH] rename JamView and fix zooming-in when running bam viewer
 outside artemis interface

git-svn-id: svn+ssh://svn.internal.sanger.ac.uk/repos/svn/pathsoft/artemis/trunk@11937 ee4ac58c-ac51-4696-9907-e4b3aa274f04
---
 .../alignment/{JamView.java => BamView.java}  | 37 ++++++++++---------
 .../components/alignment/CoveragePanel.java   |  4 +-
 .../alignment/PairedReadComparator.java       |  2 +-
 3 files changed, 22 insertions(+), 21 deletions(-)
 rename uk/ac/sanger/artemis/components/alignment/{JamView.java => BamView.java} (98%)

diff --git a/uk/ac/sanger/artemis/components/alignment/JamView.java b/uk/ac/sanger/artemis/components/alignment/BamView.java
similarity index 98%
rename from uk/ac/sanger/artemis/components/alignment/JamView.java
rename to uk/ac/sanger/artemis/components/alignment/BamView.java
index 5556e681d..6329e244b 100644
--- a/uk/ac/sanger/artemis/components/alignment/JamView.java
+++ b/uk/ac/sanger/artemis/components/alignment/BamView.java
@@ -112,7 +112,7 @@ import uk.ac.sanger.artemis.util.Document;
 import uk.ac.sanger.artemis.util.DocumentFactory;
 import uk.ac.sanger.artemis.util.OutOfRangeException;
 
-public class JamView extends JPanel
+public class BamView extends JPanel
                      implements Scrollable, DisplayAdjustmentListener, SelectionChangeListener
 {
   private static final long serialVersionUID = 1L;
@@ -171,7 +171,7 @@ public class JamView extends JPanel
   private JPopupMenu popup;
 
  
-  public JamView(String bam, 
+  public BamView(String bam, 
                  String reference,
                  int nbasesInView)
   {
@@ -478,7 +478,7 @@ public class JamView extends JPanel
       try
       {
         readFromBamPicard(start, end);
-        if(!isStackView || pixPerBase*3 >= ALIGNMENT_PIX_PER_BASE)
+        if(!isStackView || pixPerBase*1.08f >= ALIGNMENT_PIX_PER_BASE)
           Collections.sort(readsInView, new SAMRecordComparator());
 
         setCursor(cdone);
@@ -492,7 +492,7 @@ public class JamView extends JPanel
     
     laststart = start;
     lastend   = end;
-	if(pixPerBase*3 >= ALIGNMENT_PIX_PER_BASE)
+	if(pixPerBase*1.08f >= ALIGNMENT_PIX_PER_BASE)
 	  drawBaseAlignment(g2, seqLength, pixPerBase, start, end);
 	else
 	{
@@ -521,7 +521,7 @@ public class JamView extends JPanel
   private int getMaxBasesInPanel(int seqLength)
   {
     if(feature_display == null)
-      return seqLength+nbasesInView/2;
+      return seqLength+nbasesInView/3;
     else
       return seqLength+nbasesInView;
   }
@@ -564,8 +564,6 @@ public class JamView extends JPanel
         refSeq = 
           bases.getSubSequence(new Range(refSeqStart, seqEnd), Bases.FORWARD).toUpperCase();
         
-        System.out.println(refSeqStart +" "+ seqEnd+" "+refSeq);
-        
         g2.setColor(lightGrey);
         g2.fillRect(0, ypos-11, getPreferredSize().width, 11);
         drawSelectionRange(g2, pixPerBase, start, end);
@@ -1335,7 +1333,7 @@ public class JamView extends JPanel
       {
         laststart = -1;
         lastend = -1;
-        setZoomLevel(JamView.this.nbasesInView);
+        setZoomLevel(BamView.this.nbasesInView);
       }
     });
     topPanel.add(combo);
@@ -1356,7 +1354,7 @@ public class JamView extends JPanel
           }
           catch (NumberFormatException nfe)
           {
-            JOptionPane.showMessageDialog(JamView.this,
+            JOptionPane.showMessageDialog(BamView.this,
                 "Expecting a base number!", "Number Format",
                 JOptionPane.WARNING_MESSAGE);
           }
@@ -1372,7 +1370,7 @@ public class JamView extends JPanel
       {
         public void actionPerformed(ActionEvent e)
         {
-          setZoomLevel((int) (JamView.this.nbasesInView * 1.1));
+          setZoomLevel((int) (BamView.this.nbasesInView * 1.1));
         }
       });
       topPanel.add(zoomIn);
@@ -1385,7 +1383,7 @@ public class JamView extends JPanel
         {
           if (showBaseAlignment)
             return;
-          setZoomLevel((int) (JamView.this.nbasesInView * .9));
+          setZoomLevel((int) (BamView.this.nbasesInView * .9));
         }
       });
       topPanel.add(zoomOut);
@@ -1416,6 +1414,7 @@ public class JamView extends JPanel
     {
       scrollBar = new JScrollBar(JScrollBar.HORIZONTAL, 1, nbasesInView, 1,
           getMaxBasesInPanel(getSequenceLength()));
+      scrollBar.setUnitIncrement(nbasesInView/20);
       scrollBar.addAdjustmentListener(new AdjustmentListener()
       {
         public void adjustmentValueChanged(AdjustmentEvent e)
@@ -1442,12 +1441,12 @@ public class JamView extends JPanel
           switch (event.getKeyCode())
           {
           case KeyEvent.VK_UP:
-            setZoomLevel((int) (JamView.this.nbasesInView * 1.1));
+            setZoomLevel((int) (BamView.this.nbasesInView * 1.1));
             break;
           case KeyEvent.VK_DOWN:
             if (showBaseAlignment)
               break;
-            setZoomLevel((int) (JamView.this.nbasesInView * .9));
+            setZoomLevel((int) (BamView.this.nbasesInView * .9));
             break;
           default:
             break;
@@ -1601,10 +1600,9 @@ public class JamView extends JPanel
   {
     int startValue = getBaseAtStartOfView();
     this.nbasesInView = nbasesInView;
-    
     float pixPerBase = getPixPerBaseByWidth(); 
 
-    if(pixPerBase*3 > ALIGNMENT_PIX_PER_BASE)
+    if(pixPerBase*1.08f >= ALIGNMENT_PIX_PER_BASE)
     {
       pixPerBase = ALIGNMENT_PIX_PER_BASE;
       this.nbasesInView = (int)(getPreferredSize().getWidth()/pixPerBase);
@@ -1621,8 +1619,11 @@ public class JamView extends JPanel
     }
     
     if(scrollBar != null)
+    {
       scrollBar.setValues(startValue, nbasesInView, 1, 
              getMaxBasesInPanel(getSequenceLength()));
+      scrollBar.setUnitIncrement(nbasesInView/20);
+    }
   }
   
 
@@ -1653,7 +1654,7 @@ public class JamView extends JPanel
         pixPerBase = feature_display.getWidth()/(float)(end-start+1);
     }
 
-    if(pixPerBase*3 > ALIGNMENT_PIX_PER_BASE)
+    if(pixPerBase*1.08f >= ALIGNMENT_PIX_PER_BASE)
     {
       pixPerBase = ALIGNMENT_PIX_PER_BASE;
       jspView.getVerticalScrollBar().setValue(0);
@@ -1934,7 +1935,7 @@ public class JamView extends JPanel
   {
     public void mouseClicked(MouseEvent e)
     {
-      JamView.this.requestFocus();
+      BamView.this.requestFocus();
       handleCanvasMouseDragOrClick(e);
     }
     
@@ -1999,7 +2000,7 @@ public class JamView extends JPanel
       }
     }
 
-    final JamView view = new JamView(bam, reference, nbasesInView);
+    final BamView view = new BamView(bam, reference, nbasesInView);
     JFrame frame = new JFrame("JAM");
     
     // translucent
diff --git a/uk/ac/sanger/artemis/components/alignment/CoveragePanel.java b/uk/ac/sanger/artemis/components/alignment/CoveragePanel.java
index 46a488a58..42875b732 100644
--- a/uk/ac/sanger/artemis/components/alignment/CoveragePanel.java
+++ b/uk/ac/sanger/artemis/components/alignment/CoveragePanel.java
@@ -43,9 +43,9 @@ import net.sf.samtools.SAMRecord;
     private int end;
     private float pixPerBase;
     private Color lightBlue = new Color(30,144,255);
-    private JamView jamView;
+    private BamView jamView;
     
-    public CoveragePanel(JamView jamView)
+    public CoveragePanel(BamView jamView)
     {
       super();
       setBackground(Color.white);
diff --git a/uk/ac/sanger/artemis/components/alignment/PairedReadComparator.java b/uk/ac/sanger/artemis/components/alignment/PairedReadComparator.java
index 1b652b1b8..b8c655b3c 100644
--- a/uk/ac/sanger/artemis/components/alignment/PairedReadComparator.java
+++ b/uk/ac/sanger/artemis/components/alignment/PairedReadComparator.java
@@ -26,7 +26,7 @@ package uk.ac.sanger.artemis.components.alignment;
 
 import java.util.Comparator;
 
-import uk.ac.sanger.artemis.components.alignment.JamView.PairedRead;
+import uk.ac.sanger.artemis.components.alignment.BamView.PairedRead;
 
 
   class PairedReadComparator implements Comparator<Object>
-- 
GitLab