{\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 -fm.getDescent();\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
}\r
}\r
\r
- if (av.validCharWidth && validRes &&\r
- (row.annotations[column].displayCharacter.length() > 0))\r
+ if (av.validCharWidth && validRes\r
+ && row.annotations[column].displayCharacter != null\r
+ && (row.annotations[column].displayCharacter.length() > 0))\r
{\r
\r
int charOffset = (av.charWidth -\r
fm.charWidth(row.annotations[column].\r
displayCharacter.charAt(\r
0))) / 2;\r
- g.setColor(row.annotations[column].colour);\r
+\r
+ if (row.annotations[column].colour == null)\r
+ g.setColor(Color.black);\r
+ else\r
+ g.setColor(row.annotations[column].colour);\r
\r
if (column == 0 || row.graph > 0)\r
{\r
continue;\r
}\r
\r
- g.setColor(aa.annotations[column].colour);\r
+ if (aa.annotations[column].colour == null)\r
+ g.setColor(Color.black);\r
+ else\r
+ g.setColor(aa.annotations[column].colour);\r
+\r
y1 = y -\r
(int) ( ( (aa.annotations[column - 1].value - min) / range) * graphHeight);\r
y2 = y -\r
continue;\r
}\r
\r
- g.setColor(aa.annotations[column].colour);\r
+ if (aa.annotations[column].colour == null)\r
+ g.setColor(Color.black);\r
+ else\r
+ g.setColor(aa.annotations[column].colour);\r
+\r
y1 = y -\r
(int) ( ( (aa.annotations[column].value - min) / (range)) * aa.graphHeight);\r
\r
{\r
if (aa.annotations[j] != null)\r
{\r
- g.setColor(aa.annotations[j].colour);\r
+ if (aa.annotations[j].colour == null)\r
+ g.setColor(Color.black);\r
+ else\r
+ g.setColor(aa.annotations[j].colour);\r
\r
height = (int) ( (aa.annotations[j].value / aa.graphMax) * y);\r
if (height > y)\r