git://source.jalview.org
/
jalview.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Corrected hidden row feature render bug
[jalview.git]
/
src
/
jalview
/
gui
/
AnnotationPanel.java
diff --git
a/src/jalview/gui/AnnotationPanel.java
b/src/jalview/gui/AnnotationPanel.java
index
add3209
..
8173085
100755
(executable)
--- a/
src/jalview/gui/AnnotationPanel.java
+++ b/
src/jalview/gui/AnnotationPanel.java
@@
-278,13
+278,17
@@
public class AnnotationPanel extends JPanel implements MouseListener,
*/
\r
public void mousePressed(MouseEvent evt)
\r
{
\r
*/
\r
public void mousePressed(MouseEvent evt)
\r
{
\r
- int height = 0;
\r
- activeRow = -1;
\r
+
\r
\r
AlignmentAnnotation[] aa = av.alignment.getAlignmentAnnotation();
\r
if(aa==null)
\r
return;
\r
\r
\r
AlignmentAnnotation[] aa = av.alignment.getAlignmentAnnotation();
\r
if(aa==null)
\r
return;
\r
\r
+
\r
+ int height = 0;
\r
+ activeRow = 0;
\r
+
\r
+
\r
for (int i = 0; i < aa.length; i++)
\r
{
\r
if (aa[i].visible)
\r
for (int i = 0; i < aa.length; i++)
\r
{
\r
if (aa[i].visible)
\r
@@
-309,6
+313,7
@@
public class AnnotationPanel extends JPanel implements MouseListener,
}
\r
}
\r
\r
}
\r
}
\r
\r
+
\r
if (SwingUtilities.isRightMouseButton(evt))
\r
{
\r
if (av.getColumnSelection() == null)
\r
if (SwingUtilities.isRightMouseButton(evt))
\r
{
\r
if (av.getColumnSelection() == null)
\r
@@
-666,8
+671,8
@@
public class AnnotationPanel extends JPanel implements MouseListener,
\r
AlignmentAnnotation[] aa = av.alignment.getAlignmentAnnotation();
\r
\r
\r
AlignmentAnnotation[] aa = av.alignment.getAlignmentAnnotation();
\r
\r
- int x = 0;
\r
- int 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
char lastSS;
\r
int lastSSX;
\r
int iconOffset = av.charHeight / 2;
\r
@@
-689,7
+694,6
@@
public class AnnotationPanel extends JPanel implements MouseListener,
lastSS = ' ';
\r
lastSSX = 0;
\r
\r
lastSS = ' ';
\r
lastSSX = 0;
\r
\r
-
\r
if (row.graph>0)
\r
{
\r
if(row.graphGroup>-1 && graphGroupDrawn[ row.graphGroup ] )
\r
if (row.graph>0)
\r
{
\r
if(row.graphGroup>-1 && graphGroupDrawn[ row.graphGroup ] )
\r
@@
-713,18
+717,20
@@
public class AnnotationPanel extends JPanel implements MouseListener,
iconOffset = 0;
\r
}
\r
\r
iconOffset = 0;
\r
}
\r
\r
- int column = startRes;
\r
-
\r
- while (column < endRes)
\r
+ x = 0;
\r
+ while (x < endRes-startRes)
\r
{
\r
if (av.hasHiddenColumns)
\r
{
\r
{
\r
if (av.hasHiddenColumns)
\r
{
\r
- column = av.getColumnSelection().adjustForHiddenColumns(column);
\r
+ column = av.getColumnSelection().adjustForHiddenColumns(startRes+x);
\r
if (column > row.annotations.length-1)
\r
{
\r
break;
\r
}
\r
}
\r
if (column > row.annotations.length-1)
\r
{
\r
break;
\r
}
\r
}
\r
+ else
\r
+ column = startRes+x;
\r
+
\r
\r
if ((row.annotations.length <= column) ||
\r
(row.annotations[column] == null))
\r
\r
if ((row.annotations.length <= column) ||
\r
(row.annotations[column] == null))
\r
@@
-736,7
+742,6
@@
public class AnnotationPanel extends JPanel implements MouseListener,
validRes = true;
\r
}
\r
\r
validRes = true;
\r
}
\r
\r
- x = (column - startRes) * av.charWidth;
\r
\r
if (activeRow == i)
\r
{
\r
\r
if (activeRow == i)
\r
{
\r
@@
-750,8
+755,8
@@
public class AnnotationPanel extends JPanel implements MouseListener,
\r
if (v == column)
\r
{
\r
\r
if (v == column)
\r
{
\r
- g.fillRect((column - startRes) * av.charWidth, y,
\r
- av.charWidth, row.height);
\r
+ g.fillRect(x * av.charWidth, y,
\r
+ av.charWidth, av.charHeight);
\r
}
\r
}
\r
}
\r
}
\r
}
\r
}
\r
@@
-768,7
+773,8
@@
public class AnnotationPanel extends JPanel implements MouseListener,
\r
if (column == 0 || row.graph>0)
\r
{
\r
\r
if (column == 0 || row.graph>0)
\r
{
\r
- g.drawString(row.annotations[column].displayCharacter, x+charOffset,
\r
+ g.drawString(row.annotations[column].displayCharacter,
\r
+ x*av.charWidth+charOffset,
\r
y + iconOffset + 3);
\r
}
\r
else if (
\r
y + iconOffset + 3);
\r
}
\r
else if (
\r
@@
-779,8
+785,9
@@
public class AnnotationPanel extends JPanel implements MouseListener,
(row.annotations[column].displayCharacter.length() <2 &&
\r
row.annotations[column].secondaryStructure==' ')))
\r
{
\r
(row.annotations[column].displayCharacter.length() <2 &&
\r
row.annotations[column].secondaryStructure==' ')))
\r
{
\r
- g.drawString(row.annotations[column].displayCharacter, x+charOffset,
\r
- y + iconOffset + 3);
\r
+ g.drawString(row.annotations[column].displayCharacter,
\r
+ x*av.charWidth+charOffset,
\r
+ y + iconOffset + 3);
\r
}
\r
}
\r
\r
}
\r
}
\r
\r
@@
-798,13
+805,13
@@
public class AnnotationPanel extends JPanel implements MouseListener,
//Off by 1 offset when drawing rects and ovals
\r
//to offscreen image on the MAC
\r
g.fillRoundRect(lastSSX, y + 4 + iconOffset,
\r
//Off by 1 offset when drawing rects and ovals
\r
//to offscreen image on the MAC
\r
g.fillRoundRect(lastSSX, y + 4 + iconOffset,
\r
- x - lastSSX, 7, 8, 8);
\r
+ x*av.charWidth - lastSSX, 7, 8, 8);
\r
break;
\r
}
\r
\r
int sCol = (lastSSX / av.charWidth) + startRes;
\r
int x1 = lastSSX;
\r
break;
\r
}
\r
\r
int sCol = (lastSSX / av.charWidth) + startRes;
\r
int x1 = lastSSX;
\r
- int x2 = x;
\r
+ int x2 = x*av.charWidth;
\r
\r
if(sCol==0 ||
\r
row.annotations[sCol-1]==null ||
\r
\r
if(sCol==0 ||
\r
row.annotations[sCol-1]==null ||
\r
@@
-817,7
+824,10
@@
public class AnnotationPanel extends JPanel implements MouseListener,
if(row.annotations[column]==null ||
\r
row.annotations[column].secondaryStructure!='H')
\r
{
\r
if(row.annotations[column]==null ||
\r
row.annotations[column].secondaryStructure!='H')
\r
{
\r
- g.fillArc(x-av.charWidth, y+4+iconOffset, av.charWidth, 7, 270,180);
\r
+ g.fillArc(x*av.charWidth-av.charWidth,
\r
+ y+4+iconOffset,
\r
+ av.charWidth,
\r
+ 7, 270,180);
\r
x2 -= av.charWidth/2;
\r
}
\r
\r
x2 -= av.charWidth/2;
\r
}
\r
\r
@@
-827,8
+837,10
@@
public class AnnotationPanel extends JPanel implements MouseListener,
case 'E':
\r
g.setColor(SHEET_COLOUR);
\r
g.fillRect(lastSSX, y + 4 + iconOffset,
\r
case 'E':
\r
g.setColor(SHEET_COLOUR);
\r
g.fillRect(lastSSX, y + 4 + iconOffset,
\r
- x - lastSSX - 4, 7);
\r
- g.fillPolygon(new int[] { x - 5, x - 5, x },
\r
+ x*av.charWidth - lastSSX - 4, 7);
\r
+ g.fillPolygon(new int[] { x*av.charWidth - 5,
\r
+ x*av.charWidth - 5,
\r
+ x*av.charWidth },
\r
new int[]
\r
{
\r
y + iconOffset, y + 14 + iconOffset,
\r
new int[]
\r
{
\r
y + iconOffset, y + 14 + iconOffset,
\r
@@
-841,7
+853,7
@@
public class AnnotationPanel extends JPanel implements MouseListener,
default:
\r
g.setColor(Color.gray);
\r
g.fillRect(lastSSX, y + 6 + iconOffset,
\r
default:
\r
g.setColor(Color.gray);
\r
g.fillRect(lastSSX, y + 6 + iconOffset,
\r
- x - lastSSX, 2);
\r
+ x*av.charWidth - lastSSX, 2);
\r
\r
break;
\r
}
\r
\r
break;
\r
}
\r
@@
-855,14
+867,17
@@
public class AnnotationPanel extends JPanel implements MouseListener,
lastSS = ' ';
\r
}
\r
\r
lastSS = ' ';
\r
}
\r
\r
- lastSSX = x;
\r
+ lastSSX = x*av.charWidth;
\r
}
\r
}
\r
}
\r
}
\r
-
\r
column++;
\r
column++;
\r
+ x++;
\r
}
\r
\r
}
\r
\r
- x += av.charWidth;
\r
+ if(column>=row.annotations.length)
\r
+ column = row.annotations.length-1;
\r
+
\r
+ x ++;
\r
\r
if (row.hasIcons)
\r
{
\r
\r
if (row.hasIcons)
\r
{
\r
@@
-875,7
+890,7
@@
public class AnnotationPanel extends JPanel implements MouseListener,
//Off by 1 offset when drawing rects and ovals
\r
//to offscreen image on the MAC
\r
g.fillRoundRect(lastSSX, y + 4 + iconOffset,
\r
//Off by 1 offset when drawing rects and ovals
\r
//to offscreen image on the MAC
\r
g.fillRoundRect(lastSSX, y + 4 + iconOffset,
\r
- x - lastSSX, 7, 8, 8);
\r
+ x*av.charWidth - lastSSX, 7, 8, 8);
\r
break;
\r
}
\r
\r
break;
\r
}
\r
\r
@@
-910,9
+925,11
@@
public class AnnotationPanel extends JPanel implements MouseListener,
|| row.annotations[endRes].secondaryStructure != 'E')
\r
{
\r
g.fillRect(lastSSX, y + 4 + iconOffset,
\r
|| row.annotations[endRes].secondaryStructure != 'E')
\r
{
\r
g.fillRect(lastSSX, y + 4 + iconOffset,
\r
- x - lastSSX - 4, 7);
\r
+ x*av.charWidth - lastSSX - 4, 7);
\r
g.fillPolygon(new int[]
\r
g.fillPolygon(new int[]
\r
- {x - 5, x - 5, x},
\r
+ {x*av.charWidth - 5,
\r
+ x*av.charWidth - 5,
\r
+ x*av.charWidth},
\r
new int[]
\r
{
\r
y + iconOffset, y + 14 + iconOffset,
\r
new int[]
\r
{
\r
y + iconOffset, y + 14 + iconOffset,
\r
@@
-921,7
+938,7
@@
public class AnnotationPanel extends JPanel implements MouseListener,
}
\r
else
\r
g.fillRect(lastSSX, y + 4 + iconOffset,
\r
}
\r
else
\r
g.fillRect(lastSSX, y + 4 + iconOffset,
\r
- x - lastSSX, 7);
\r
+ x*av.charWidth - lastSSX, 7);
\r
\r
break;
\r
\r
\r
break;
\r
\r
@@
-929,7
+946,8
@@
public class AnnotationPanel extends JPanel implements MouseListener,
default:
\r
g.setColor(Color.gray);
\r
if(!av.wrapAlignment || endRes==av.endRes)
\r
default:
\r
g.setColor(Color.gray);
\r
if(!av.wrapAlignment || endRes==av.endRes)
\r
- g.fillRect(lastSSX, y + 6 + iconOffset, x - lastSSX, 2);
\r
+ g.fillRect(lastSSX, y + 6 + iconOffset,
\r
+ x*av.charWidth - lastSSX, 2);
\r
\r
break;
\r
}
\r
\r
break;
\r
}
\r
@@
-1009,8
+1027,7
@@
public class AnnotationPanel extends JPanel implements MouseListener,
\r
if(sRes==0)
\r
{
\r
\r
if(sRes==0)
\r
{
\r
- sRes++;
\r
- x+=av.charWidth;
\r
+ x++;
\r
}
\r
\r
int y1=y, y2=y;
\r
}
\r
\r
int y1=y, y2=y;
\r
@@
-1025,24
+1042,25
@@
public class AnnotationPanel extends JPanel implements MouseListener,
\r
eRes = Math.min(eRes, aa.annotations.length);
\r
\r
\r
eRes = Math.min(eRes, aa.annotations.length);
\r
\r
- int column = sRes;
\r
+ int column;
\r
int aaMax = aa.annotations.length-1;
\r
\r
int aaMax = aa.annotations.length-1;
\r
\r
- while( column < eRes )
\r
+ while( x < eRes - sRes )
\r
{
\r
{
\r
+ column = sRes + x;
\r
if(av.hasHiddenColumns)
\r
{
\r
column = av.getColumnSelection().adjustForHiddenColumns(column);
\r
if(av.hasHiddenColumns)
\r
{
\r
column = av.getColumnSelection().adjustForHiddenColumns(column);
\r
- if(column > aaMax)
\r
- {
\r
- break;
\r
- }
\r
+ }
\r
+
\r
+ if (column > aaMax)
\r
+ {
\r
+ break;
\r
}
\r
\r
if(aa.annotations[column]==null || aa.annotations[column-1]==null)
\r
{
\r
}
\r
\r
if(aa.annotations[column]==null || aa.annotations[column-1]==null)
\r
{
\r
- x+=av.charWidth;
\r
- column ++;
\r
+ x++;
\r
continue;
\r
}
\r
\r
continue;
\r
}
\r
\r
@@
-1050,15
+1068,11
@@
public class AnnotationPanel extends JPanel implements MouseListener,
g.setColor(aa.annotations[column].colour);
\r
y1 = y - (int) (((aa.annotations[column-1].value-min) / range) * graphHeight);
\r
y2 = y - (int) (((aa.annotations[column].value-min) / range) * graphHeight);
\r
g.setColor(aa.annotations[column].colour);
\r
y1 = y - (int) (((aa.annotations[column-1].value-min) / range) * graphHeight);
\r
y2 = y - (int) (((aa.annotations[column].value-min) / range) * graphHeight);
\r
- g.drawLine(x-av.charWidth/2, y1, x+av.charWidth/2, y2);
\r
- x += av.charWidth;
\r
-
\r
- if(aa.annotations[column].value==0)
\r
- System.out.println(y1+" "+y2);
\r
-
\r
- column++;
\r
\r
\r
+ g.drawLine(x*av.charWidth-av.charWidth/2, y1, x*av.charWidth+av.charWidth/2, y2);
\r
+ x ++;
\r
}
\r
}
\r
+
\r
if(aa.threshold!=null)
\r
{
\r
g.setColor(aa.threshold.colour);
\r
if(aa.threshold!=null)
\r
{
\r
g.setColor(aa.threshold.colour);
\r
@@
-1084,12
+1098,10
@@
public class AnnotationPanel extends JPanel implements MouseListener,
\r
eRes = Math.min(eRes, aa.annotations.length);
\r
\r
\r
eRes = Math.min(eRes, aa.annotations.length);
\r
\r
- int x=0, y1, y2;
\r
+ int x=0, y1=y, y2=y;
\r
\r
float range = max - min;
\r
\r
\r
float range = max - min;
\r
\r
- y1 = y2 = y;
\r
-
\r
if(min<0)
\r
y2 = y - (int)((0-min / (range))*aa.graphHeight);
\r
\r
if(min<0)
\r
y2 = y - (int)((0-min / (range))*aa.graphHeight);
\r
\r
@@
-1097,25
+1109,25
@@
public class AnnotationPanel extends JPanel implements MouseListener,
\r
g.drawLine(x,y2,(eRes-sRes)*av.charWidth,y2);
\r
\r
\r
g.drawLine(x,y2,(eRes-sRes)*av.charWidth,y2);
\r
\r
-
\r
- int column = sRes;
\r
+ int column;
\r
int aaMax = aa.annotations.length-1;
\r
\r
int aaMax = aa.annotations.length-1;
\r
\r
- while( column < eRes )
\r
+ while( x < eRes-sRes )
\r
{
\r
{
\r
+ column = sRes + x;
\r
if(av.hasHiddenColumns)
\r
{
\r
column = av.getColumnSelection().adjustForHiddenColumns(column);
\r
if(av.hasHiddenColumns)
\r
{
\r
column = av.getColumnSelection().adjustForHiddenColumns(column);
\r
- if(column > aaMax)
\r
- {
\r
+ }
\r
+
\r
+ if(column > aaMax)
\r
+ {
\r
break;
\r
break;
\r
- }
\r
}
\r
\r
if (aa.annotations[column] == null)
\r
{
\r
}
\r
\r
if (aa.annotations[column] == null)
\r
{
\r
- x += av.charWidth;
\r
- column ++;
\r
+ x ++;
\r
continue;
\r
}
\r
\r
continue;
\r
}
\r
\r
@@
-1123,12
+1135,11
@@
public class AnnotationPanel extends JPanel implements MouseListener,
y1 = y - (int) (((aa.annotations[column].value-min) / (range)) * aa.graphHeight);
\r
\r
if(y1-y2>0)
\r
y1 = y - (int) (((aa.annotations[column].value-min) / (range)) * aa.graphHeight);
\r
\r
if(y1-y2>0)
\r
- g.fillRect(x, y2, av.charWidth, y1-y2 );
\r
+ g.fillRect(x*av.charWidth, y2, av.charWidth, y1-y2 );
\r
else
\r
else
\r
- g.fillRect(x, y1, av.charWidth, y2-y1 );
\r
+ g.fillRect(x*av.charWidth, y1, av.charWidth, y2-y1 );
\r
\r
\r
- x += av.charWidth;
\r
- column ++;
\r
+ x ++ ;
\r
\r
}
\r
if(aa.threshold!=null)
\r
\r
}
\r
if(aa.threshold!=null)
\r
@@
-1149,6
+1160,7
@@
public class AnnotationPanel extends JPanel implements MouseListener,
// used by overview window
\r
public void drawGraph(Graphics g, AlignmentAnnotation aa, int width, int y, int sRes, int eRes)
\r
{
\r
// used by overview window
\r
public void drawGraph(Graphics g, AlignmentAnnotation aa, int width, int y, int sRes, int eRes)
\r
{
\r
+ eRes = Math.min(eRes, aa.annotations.length);
\r
g.setColor(Color.white);
\r
g.fillRect(0, 0, width, y);
\r
g.setColor(new Color(0, 0, 180));
\r
g.setColor(Color.white);
\r
g.fillRect(0, 0, width, y);
\r
g.setColor(new Color(0, 0, 180));
\r