scalestartx += 5;\r
}\r
\r
+ String string;\r
+ int maxX=0;\r
+\r
for (int i = scalestartx; i < endx; i += 5)\r
{\r
if ((i % 10) == 0)\r
{\r
- gg.drawString(String.valueOf(av.getColumnSelection().adjustForHiddenColumns(i)),\r
- (i - startx - 1) * av.charWidth, y);\r
- gg.drawLine((int) (((i - startx - 1) * av.charWidth) +\r
- (av.charWidth / 2)), y + 2,\r
- (int) (((i - startx - 1) * av.charWidth) +\r
- (av.charWidth / 2)), y + (fm.getDescent() * 2));\r
+ string = String.valueOf(av.getColumnSelection().adjustForHiddenColumns(i));\r
+ if ( (i - startx - 1) * av.charWidth > maxX)\r
+ {\r
+ gg.drawString(string,\r
+ (i - startx - 1) * av.charWidth, y);\r
+ maxX = (i - startx + 1) * av.charWidth + fm.stringWidth(string);\r
+ }\r
+\r
+ gg.drawLine( (int) ( ( (i - startx - 1) * av.charWidth) +\r
+ (av.charWidth / 2)), y + 2,\r
+ (int) ( ( (i - startx - 1) * av.charWidth) +\r
+ (av.charWidth / 2)),\r
+ y + (fm.getDescent() * 2));\r
+\r
}\r
else\r
{\r
\r
//int startRes, int endRes, int startSeq, int endSeq, int x, int y,\r
// int x1, int x2, int y1, int y2, int startx, int starty,\r
- void draw(Graphics g1,\r
+ void draw(Graphics g,\r
int startRes, int endRes,\r
int startSeq, int endSeq,\r
int offset)\r
{\r
-\r
-\r
- Graphics2D g = (Graphics2D) g1;\r
g.setFont(av.getFont());\r
sr.prepare(g, av.renderGaps);\r
\r
\r
if (av.showSequenceFeatures)\r
{\r
- fr.drawSequence(g1, nextSeq, startRes, endRes,\r
+ fr.drawSequence(g, nextSeq, startRes, endRes,\r
offset + ((i - startSeq) * av.charHeight));\r
}\r
\r
}\r
}\r
\r
+ if(av.getSelectionGroup()!=null || av.alignment.getGroups().size()>0)\r
+ drawGroupsBoundaries(g, startRes, endRes, startSeq, endSeq, offset);\r
+\r
+ }\r
+\r
+ void drawGroupsBoundaries(Graphics g1,\r
+ int startRes, int endRes,\r
+ int startSeq, int endSeq,\r
+ int offset)\r
+ {\r
+ Graphics2D g = (Graphics2D)g1;\r
//\r
/////////////////////////////////////\r
// Now outline any areas if necessary\r
SequenceGroup stretchGroup = null;\r
boolean remove = false;\r
\r
+ Point lastMousePress;\r
boolean mouseWheelPressed = false;\r
StringBuffer keyboardNo1;\r
StringBuffer keyboardNo2;\r
*/\r
public void mousePressed(MouseEvent evt)\r
{\r
+ lastMousePress = evt.getPoint();\r
+\r
if (javax.swing.SwingUtilities.isMiddleMouseButton(evt))\r
{\r
mouseWheelPressed = true;\r
*/\r
public void mouseDragged(MouseEvent evt)\r
{\r
+ if(mouseWheelPressed)\r
+ {\r
+ int oldWidth = av.charWidth;\r
+\r
+ //Which is bigger, left-right or up-down?\r
+ if( Math.abs(evt.getY()-lastMousePress.getY())\r
+ > Math.abs(evt.getX()-lastMousePress.getX()))\r
+ {\r
+ int fontSize = av.font.getSize();\r
+\r
+ if (evt.getY() < lastMousePress.getY() && av.charHeight > 1)\r
+ {\r
+ fontSize--;\r
+ }\r
+ else if (evt.getY() > lastMousePress.getY())\r
+ {\r
+ fontSize++;\r
+ }\r
+\r
+ av.setFont(new Font(av.font.getName(), av.font.getStyle(), fontSize));\r
+ av.charWidth = oldWidth;\r
+ ap.fontChanged();\r
+\r
+\r
+ }\r
+ else\r
+ {\r
+ if (evt.getX() < lastMousePress.getX() && av.charWidth > 1)\r
+ {\r
+ av.charWidth--;\r
+ }\r
+ else if (evt.getX() > lastMousePress.getX())\r
+ {\r
+ av.charWidth++;\r
+ }\r
+\r
+ ap.repaint();\r
+ }\r
+\r
+ FontMetrics fm = getFontMetrics(av.getFont());\r
+ av.showText = (fm.charWidth('M') < av.charWidth);\r
+ // && fm.getHeight()<av.charHeight\r
+\r
+ lastMousePress = evt.getPoint();\r
+\r
+ return;\r
+ }\r
+\r
if (!editingSeqs)\r
{\r
doMouseDraggedDefineMode(evt);\r
public void mouseWheelMoved(MouseWheelEvent e)\r
{\r
e.consume();\r
- if (mouseWheelPressed)\r
+ /* if (mouseWheelPressed)\r
{\r
Font font = av.getFont();\r
int fontSize = font.getSize();\r
else if (fontSize > 1)\r
fontSize--;\r
\r
+\r
+\r
av.setFont(new Font(font.getName(), font.getStyle(), fontSize));\r
+\r
ap.fontChanged();\r
}\r
- else\r
+ else*/\r
{\r
if (e.getWheelRotation() > 0)\r
ap.scrollUp(false);\r