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
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
\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