allow for printing
authoramwaterhouse <Andrew Waterhouse>
Thu, 18 Nov 2004 18:41:08 +0000 (18:41 +0000)
committeramwaterhouse <Andrew Waterhouse>
Thu, 18 Nov 2004 18:41:08 +0000 (18:41 +0000)
src/jalview/gui/ScaleCanvas.java

index 090b272..4a0bd2a 100755 (executable)
@@ -22,17 +22,23 @@ public class ScaleCanvas extends JPanel {
     this.av         = av;\r
 \r
   }\r
-  public void paintComponent(Graphics g) {\r
+  public void paintComponent(Graphics g)\r
+  {\r
+    drawScale(g, av.getStartRes(), av.getEndRes(), getWidth());\r
+  }\r
+\r
+// scalewidth will normally be screenwidth,\r
+  public void drawScale(Graphics g, int startx, int endx, int scaleWidth)\r
+  {\r
 \r
-   double charWidth  = av.getCharWidth();\r
-    int charHeight = av.getCharHeight();\r
+    double charWidth  = av.getCharWidth();\r
 \r
     if (img == null ||\r
-        imgWidth  != getWidth()  ||\r
+        imgWidth  != scaleWidth  ||\r
         imgHeight != getHeight() ||\r
         paintFlag == true) {\r
 \r
-      imgWidth  = getWidth();\r
+      imgWidth  = scaleWidth;\r
       imgHeight = getHeight();\r
       img       = createImage(imgWidth,imgHeight);\r
 \r
@@ -51,26 +57,24 @@ public class ScaleCanvas extends JPanel {
     gg.setColor(Color.white);\r
     gg.fillRect(0,0,imgWidth,imgHeight);\r
 \r
-    int tickSpace;\r
-\r
-    int resWidth = av.getEndRes() - av.getStartRes() + 1;\r
+    int resWidth = endx - startx + 1;\r
 \r
     // We want roughly one tick every 50 pixels\r
 \r
-    double rough = getWidth()/50.0;\r
+    double rough = scaleWidth/50.0;\r
 \r
     double roughtick = resWidth/rough;\r
 \r
     int   digits  = (int)(Math.log(roughtick)/Math.log(10));\r
     int   num     = (int)(roughtick/Math.pow(10,digits));\r
 \r
-    if (Math.abs(10-num) < 3) {\r
+    if (Math.abs(10-num) < 3)\r
         num = 10;\r
-    } else if (Math.abs(5-num) <= 2) {\r
+    else if (Math.abs(5-num) >= 2)\r
         num = 5;\r
-    } else {\r
-        num = 2;\r
-    }\r
+  //   else\r
+  //  num = 2;\r
+\r
     //System.out.println("Dig " + digits + " " + rough + " " + roughtick + " " + getWidth() + " " + num);\r
 \r
     int space = (int)(num * Math.pow(10,digits));\r
@@ -79,8 +83,6 @@ public class ScaleCanvas extends JPanel {
 \r
     gg.setColor(Color.black);\r
 \r
-    int startx      = av.getStartRes();\r
-    int endx        = av.getEndRes();\r
     int scalestartx = startx - startx%space + space;\r
 \r
 \r