Skip to content
Snippets Groups Projects
Commit 1c693e2e authored by tjc's avatar tjc
Browse files

fixes to zooming

git-svn-id: svn+ssh://svn.internal.sanger.ac.uk/repos/svn/pathsoft/artemis/trunk@11833 ee4ac58c-ac51-4696-9907-e4b3aa274f04
parent a37134b1
No related branches found
No related tags found
No related merge requests found
...@@ -328,6 +328,7 @@ public class JamView extends JPanel ...@@ -328,6 +328,7 @@ public class JamView extends JPanel
} }
} }
inputSam.close(); inputSam.close();
System.out.println("readFromBamPicard "+start+".."+end);
} }
/** /**
...@@ -340,7 +341,7 @@ public class JamView extends JPanel ...@@ -340,7 +341,7 @@ public class JamView extends JPanel
String refName = (String) combo.getSelectedItem(); String refName = (String) combo.getSelectedItem();
int seqLength = seqLengths.get(refName); int seqLength = seqLengths.get(refName);
float pixPerBase = ((float)getWidth())/(float)(seqLength); float pixPerBase = ((float)getWidth())/((float)seqLength);
int start; int start;
final int end; final int end;
...@@ -350,16 +351,20 @@ public class JamView extends JPanel ...@@ -350,16 +351,20 @@ public class JamView extends JPanel
else else
{ {
double x = jspView.getViewport().getViewRect().getX(); double x = jspView.getViewport().getViewRect().getX();
start = (int) (seqLength * ( (float)x / (float)getWidth())); start = 1 + (int) (seqLength * ( (float)x / (float)getWidth()));
} }
if(endBase > 0) if(endBase > 0)
end = endBase; end = endBase;
else else
end = (int) (start + ((float)jspView.getViewport().getWidth() / {
(float)pixPerBase)); int width = jspView.getViewport().getViewRect().width;
if(jspView.getVerticalScrollBar() != null)
width += jspView.getVerticalScrollBar().getWidth();
end = (int) (start + ((float)width / (float)pixPerBase));
}
//System.out.println("paintComponent "+start+".."+end); System.out.println("paintComponent "+start+".."+end+" "+startBase+".."+endBase+" pixPerBase="+pixPerBase);
if(laststart != start || if(laststart != start ||
lastend != end) lastend != end)
...@@ -428,6 +433,8 @@ public class JamView extends JPanel ...@@ -428,6 +433,8 @@ public class JamView extends JPanel
bases.getSubSequence(new Range(refSeqStart, seqEnd), Bases.FORWARD).toUpperCase(); bases.getSubSequence(new Range(refSeqStart, seqEnd), Bases.FORWARD).toUpperCase();
int xpos = (refSeqStart-1)*ALIGNMENT_PIX_PER_BASE; int xpos = (refSeqStart-1)*ALIGNMENT_PIX_PER_BASE;
System.out.println(refSeqStart+" "+refSeq);
g2.setColor(light_grey); g2.setColor(light_grey);
g2.fillRect(xpos, ypos-11, g2.fillRect(xpos, ypos-11,
jspView.getViewport().getWidth()+(ALIGNMENT_PIX_PER_BASE*2), 11); jspView.getViewport().getWidth()+(ALIGNMENT_PIX_PER_BASE*2), 11);
...@@ -932,8 +939,8 @@ public class JamView extends JPanel ...@@ -932,8 +939,8 @@ public class JamView extends JPanel
{ {
int startBase = getBaseAtStartOfView(); int startBase = getBaseAtStartOfView();
setZoomLevel((int) (JamView.this.nbasesInView * 1.1)); setZoomLevel((int) (JamView.this.nbasesInView * 1.1));
revalidate();
goToBasePosition(startBase); goToBasePosition(startBase);
repaint();
} }
}); });
topPanel.add(zoomIn, gc); topPanel.add(zoomIn, gc);
...@@ -947,8 +954,8 @@ public class JamView extends JPanel ...@@ -947,8 +954,8 @@ public class JamView extends JPanel
return; return;
int startBase = getBaseAtStartOfView(); int startBase = getBaseAtStartOfView();
setZoomLevel((int) (JamView.this.nbasesInView * .9)); setZoomLevel((int) (JamView.this.nbasesInView * .9));
revalidate();
goToBasePosition(startBase); goToBasePosition(startBase);
repaint();
} }
}); });
topPanel.add(zoomOut, gc); topPanel.add(zoomOut, gc);
...@@ -956,7 +963,7 @@ public class JamView extends JPanel ...@@ -956,7 +963,7 @@ public class JamView extends JPanel
topPanel.add(buttonAutoHide, gc); topPanel.add(buttonAutoHide, gc);
mainPanel.setPreferredSize(new Dimension(800, 400)); mainPanel.setPreferredSize(new Dimension(900, 400));
jspView = new JScrollPane(this, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED, jspView = new JScrollPane(this, JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
...@@ -969,7 +976,7 @@ public class JamView extends JPanel ...@@ -969,7 +976,7 @@ public class JamView extends JPanel
jspView.getVerticalScrollBar().setValue( jspView.getVerticalScrollBar().setValue(
jspView.getVerticalScrollBar().getMaximum()); jspView.getVerticalScrollBar().getMaximum());
if (feature_display == null) if(feature_display == null)
{ {
addKeyListener(new KeyAdapter() addKeyListener(new KeyAdapter()
{ {
...@@ -980,8 +987,8 @@ public class JamView extends JPanel ...@@ -980,8 +987,8 @@ public class JamView extends JPanel
case KeyEvent.VK_UP: case KeyEvent.VK_UP:
int startBase = getBaseAtStartOfView(); int startBase = getBaseAtStartOfView();
setZoomLevel((int) (JamView.this.nbasesInView * 1.1)); setZoomLevel((int) (JamView.this.nbasesInView * 1.1));
revalidate();
goToBasePosition(startBase); goToBasePosition(startBase);
repaint();
break; break;
case KeyEvent.VK_DOWN: case KeyEvent.VK_DOWN:
if (showBaseAlignment) if (showBaseAlignment)
...@@ -989,7 +996,6 @@ public class JamView extends JPanel ...@@ -989,7 +996,6 @@ public class JamView extends JPanel
startBase = getBaseAtStartOfView(); startBase = getBaseAtStartOfView();
setZoomLevel((int) (JamView.this.nbasesInView * .9)); setZoomLevel((int) (JamView.this.nbasesInView * .9));
goToBasePosition(startBase); goToBasePosition(startBase);
repaint();
break; break;
default: default:
break; break;
...@@ -1036,7 +1042,7 @@ public class JamView extends JPanel ...@@ -1036,7 +1042,7 @@ public class JamView extends JPanel
String refName = (String) combo.getSelectedItem(); String refName = (String) combo.getSelectedItem();
int seqLength = seqLengths.get(refName); int seqLength = seqLengths.get(refName);
double x = jspView.getViewport().getViewRect().getX(); double x = jspView.getViewport().getViewRect().getX();
return (int) (seqLength * ( x / getWidth())); return (int) (seqLength * ( x / getWidth())) + 1;
} }
/** /**
...@@ -1048,8 +1054,36 @@ public class JamView extends JPanel ...@@ -1048,8 +1054,36 @@ public class JamView extends JPanel
{ {
this.nbasesInView = nbasesInView; this.nbasesInView = nbasesInView;
int start = getBaseAtStartOfView(); int start = getBaseAtStartOfView();
setDisplay(start,start+nbasesInView, null);
System.out.println("setZoomLevel "+start);
String refName = (String) combo.getSelectedItem();
int seqLength = seqLengths.get(refName);
int width = jspView.getViewport().getViewRect().width;
if(jspView.getVerticalScrollBar() != null)
width += jspView.getVerticalScrollBar().getWidth();
float pixPerBase = ((float)width)/(float)(nbasesInView);
if(pixPerBase*2 > ALIGNMENT_PIX_PER_BASE)
{
pixPerBase = ALIGNMENT_PIX_PER_BASE;
checkBoxSingle.setVisible(false);
jspView.getVerticalScrollBar().setValue(0);
jspView.setColumnHeaderView(ruler);
showBaseAlignment = true;
}
else if(jspView != null)
{
checkBoxSingle.setVisible(true);
jspView.setColumnHeaderView(null);
showBaseAlignment = false;
}
Dimension d = new Dimension();
d.setSize((seqLength*pixPerBase), 800.d);
setPreferredSize(d);
revalidate(); revalidate();
repaint(); repaint();
} }
...@@ -1062,8 +1096,15 @@ public class JamView extends JPanel ...@@ -1062,8 +1096,15 @@ public class JamView extends JPanel
Point p = jspView.getViewport().getViewPosition(); Point p = jspView.getViewport().getViewPosition();
String refName = (String) combo.getSelectedItem(); String refName = (String) combo.getSelectedItem();
int seqLength = seqLengths.get(refName); int seqLength = seqLengths.get(refName);
p.x = (int) ((getPreferredSize().width)*(((float)base-1)/(float)seqLength));
int width = getPreferredSize().width;
p.x = Math.round((float)width*((float)(base-1)/(float)seqLength));
jspView.getViewport().setViewPosition(p); jspView.getViewport().setViewPosition(p);
System.out.println("goToBasePosition*** "+base+" "+
getBaseAtStartOfView()+" "+p.x+" pixPerBase="+((float)width/(float)seqLength));
} }
/** /**
...@@ -1103,13 +1144,11 @@ public class JamView extends JPanel ...@@ -1103,13 +1144,11 @@ public class JamView extends JPanel
setPreferredSize(d); setPreferredSize(d);
goToBasePosition(startBase); goToBasePosition(startBase);
repaint(); if(event == null)
if(event == null || {
event.getType() == DisplayAdjustmentEvent.SCALE_ADJUST_EVENT) this.startBase = -1;
revalidate(); this.endBase = -1;
}
this.startBase = -1;
this.endBase = -1;
} }
private double getPixPerBase(int start, int end) private double getPixPerBase(int start, int end)
...@@ -1375,7 +1414,17 @@ public class JamView extends JPanel ...@@ -1375,7 +1414,17 @@ public class JamView extends JPanel
*/ */
public void displayAdjustmentValueChanged(DisplayAdjustmentEvent event) public void displayAdjustmentValueChanged(DisplayAdjustmentEvent event)
{ {
setDisplay(event.getStart(), event.getEnd(), event); System.out.println("displayAdjustmentValueChanged() "+event.getStart()+".."+event.getEnd());
if(event.getType() == DisplayAdjustmentEvent.SCALE_ADJUST_EVENT)
{
this.nbasesInView = event.getWidthInBases();
setDisplay(event.getStart(), event.getEnd(), event);
}
else
{
setDisplay(event.getStart(), event.getEnd(), event);
}
} }
public static void main(String[] args) public static void main(String[] args)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment