{\r
int index = av.getColumnSelection().columnAt(i);\r
\r
+ if(!av.colSel.isVisible(index))\r
+ continue;\r
+\r
if (anot[index] == null)\r
{\r
anot[index] = new Annotation(label, "", ' ', 0);\r
{\r
int index = av.getColumnSelection().columnAt(i);\r
\r
+ if(!av.colSel.isVisible(index))\r
+ continue;\r
+\r
if (anot[index] == null)\r
{\r
anot[index] = new Annotation("", "", ' ', 0);\r
{\r
int index = av.getColumnSelection().columnAt(i);\r
\r
+ if(!av.colSel.isVisible(index))\r
+ continue;\r
+\r
if (anot[index] == null)\r
{\r
anot[index] = new Annotation(label, "", type, 0);\r
return;\r
}\r
\r
- int res = (evt.getX() / av.getCharWidth()) + av.getStartRes();\r
-\r
- if (av.hasHiddenColumns)\r
- {\r
- res = av.getColumnSelection().adjustForHiddenColumns(res);\r
- }\r
-\r
- min = res;\r
- max = res;\r
-\r
- if (av.getColumnSelection().contains(res))\r
- {\r
- av.getColumnSelection().removeElement(res);\r
- }\r
- else\r
- {\r
- av.getColumnSelection().addElement(res);\r
- SequenceGroup sg = new SequenceGroup();\r
-\r
- for (int i = 0; i < av.alignment.getSequences().size(); i++)\r
- {\r
- sg.addSequence(av.alignment.getSequenceAt(i), false);\r
- }\r
-\r
- sg.setStartRes(res);\r
- sg.setEndRes(res);\r
- av.setSelectionGroup(sg);\r
- }\r
-\r
- ap.repaint();\r
+ ap.scalePanel.mousePressed(evt);\r
\r
}\r
\r
graphStretch = -1;\r
graphStretchY = -1;\r
mouseDragging = false;\r
+ ap.scalePanel.mouseReleased(evt);\r
}\r
\r
/**\r
*/\r
public void mouseEntered(MouseEvent evt)\r
{\r
- if (mouseDragging)\r
- {\r
- ap.seqPanel.scrollCanvas(null);\r
- }\r
+ ap.scalePanel.mouseEntered(evt);\r
}\r
\r
/**\r
*/\r
public void mouseExited(MouseEvent evt)\r
{\r
- if (mouseDragging)\r
- {\r
- ap.seqPanel.scrollCanvas(evt);\r
- }\r
+ ap.scalePanel.mouseExited(evt);\r
}\r
\r
/**\r
}\r
graphStretchY = evt.getY();\r
adjustPanelHeight();\r
- ap.repaint();\r
+ ap.paintAlignment(true);\r
}\r
else\r
{\r
- mouseDragging = true;\r
-\r
- int res = (evt.getX() / av.getCharWidth()) + av.getStartRes();\r
-\r
- if (av.hasHiddenColumns)\r
- {\r
- res = av.getColumnSelection().adjustForHiddenColumns(res);\r
- }\r
-\r
- SequenceGroup sg = av.getSelectionGroup();\r
-\r
- if (res < min)\r
- {\r
- min = res;\r
- }\r
-\r
- if (res > max)\r
- {\r
- max = res;\r
- }\r
-\r
- if (sg != null)\r
- {\r
- if (!av.getColumnSelection().contains(res))\r
- {\r
- av.getColumnSelection().addElement(res);\r
- }\r
-\r
- if (res > sg.getStartRes())\r
- {\r
- sg.setEndRes(res);\r
- }\r
- else if (res < sg.getStartRes())\r
- {\r
- sg.setStartRes(res);\r
- }\r
-\r
- for (int i = min; i <= max; i++)\r
- {\r
- if ( (i < sg.getStartRes()) || (i > sg.getEndRes()))\r
- {\r
- av.getColumnSelection().removeElement(i);\r
- }\r
- else\r
- {\r
- av.getColumnSelection().addElement(i);\r
- }\r
- }\r
-\r
- ap.repaint();\r
- }\r
-\r
+ ap.scalePanel.mouseDragged(evt);\r
}\r
}\r
\r
\r
AlignmentAnnotation[] aa = av.alignment.getAlignmentAnnotation();\r
\r
- int x = 0, y = 0;\r
+ int x = 0, y=0;\r
int column = 0;\r
char lastSS;\r
int lastSSX;\r
- int iconOffset = av.charHeight / 2;\r
+ int iconOffset = 0;\r
boolean validRes = false;\r
\r
boolean[] graphGroupDrawn = new boolean[aa.length];\r
\r
if (row.hasText)\r
{\r
+ iconOffset = av.charHeight / 2 + 4;\r
y -= av.charHeight;\r
}\r
}\r
+ else if (row.hasText)\r
+ {\r
+ iconOffset = av.charHeight -fm.getDescent();\r
+\r
+ }\r
+ else\r
+ {\r
+ iconOffset = 0;\r
+ }\r
+\r
\r
if (av.updatingConsensus && aa[i] == av.consensus)\r
{\r
continue;\r
}\r
\r
- if (row.hasText)\r
- {\r
- iconOffset = av.charHeight / 2 + 4;\r
- }\r
- else\r
- {\r
- iconOffset = 0;\r
- }\r
+\r
\r
x = 0;\r
while (x < endRes - startRes)\r