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
Tooltips for features, links for features added
[jalview.git]
/
src
/
jalview
/
gui
/
AnnotationPanel.java
diff --git
a/src/jalview/gui/AnnotationPanel.java
b/src/jalview/gui/AnnotationPanel.java
index
232a60c
..
ecd9370
100755
(executable)
--- a/
src/jalview/gui/AnnotationPanel.java
+++ b/
src/jalview/gui/AnnotationPanel.java
@@
-51,7
+51,6
@@
public class AnnotationPanel extends JPanel implements MouseListener,
BufferedImage image;
\r
Graphics2D gg;
\r
FontMetrics fm;
\r
BufferedImage image;
\r
Graphics2D gg;
\r
FontMetrics fm;
\r
- boolean validCharWidth;
\r
int imgWidth = 0;
\r
boolean fastPaint = false;
\r
\r
int imgWidth = 0;
\r
boolean fastPaint = false;
\r
\r
@@
-62,6
+61,8
@@
public class AnnotationPanel extends JPanel implements MouseListener,
int max; //used by mouseDragged to see if user
\r
boolean mouseDragging = false;
\r
\r
int max; //used by mouseDragged to see if user
\r
boolean mouseDragging = false;
\r
\r
+ boolean MAC = false;
\r
+
\r
/**
\r
* Creates a new AnnotationPanel object.
\r
*
\r
/**
\r
* Creates a new AnnotationPanel object.
\r
*
\r
@@
-69,6
+70,10
@@
public class AnnotationPanel extends JPanel implements MouseListener,
*/
\r
public AnnotationPanel(AlignmentPanel ap)
\r
{
\r
*/
\r
public AnnotationPanel(AlignmentPanel ap)
\r
{
\r
+
\r
+ if(System.getProperty("os.name").startsWith("Mac"))
\r
+ MAC = true;
\r
+
\r
ToolTipManager.sharedInstance().registerComponent(this);
\r
ToolTipManager.sharedInstance().setInitialDelay(0);
\r
ToolTipManager.sharedInstance().setDismissDelay(10000);
\r
ToolTipManager.sharedInstance().registerComponent(this);
\r
ToolTipManager.sharedInstance().setInitialDelay(0);
\r
ToolTipManager.sharedInstance().setDismissDelay(10000);
\r
@@
-643,7
+648,6
@@
public class AnnotationPanel extends JPanel implements MouseListener,
if (fm == null)
\r
fm = g.getFontMetrics();
\r
\r
if (fm == null)
\r
fm = g.getFontMetrics();
\r
\r
- validCharWidth = fm.charWidth('M') <= av.charWidth;
\r
\r
g.setColor(Color.white);
\r
g.fillRect(0, 0, (endRes - startRes) * av.charWidth, getHeight());
\r
\r
g.setColor(Color.white);
\r
g.fillRect(0, 0, (endRes - startRes) * av.charWidth, getHeight());
\r
@@
-654,8
+658,8
@@
public class AnnotationPanel extends JPanel implements MouseListener,
g.setColor(Color.white);
\r
g.fillRect(0, 0, getWidth(), getHeight());
\r
g.setColor(Color.black);
\r
g.setColor(Color.white);
\r
g.fillRect(0, 0, getWidth(), getHeight());
\r
g.setColor(Color.black);
\r
- if(validCharWidth)
\r
- g.drawString("Alignment has no annotations", 20, 15);
\r
+ if(av.validCharWidth)
\r
+ g.drawString("Alignment has no annotations", 20, 15);
\r
\r
return;
\r
}
\r
\r
return;
\r
}
\r
@@
-753,7
+757,7
@@
public class AnnotationPanel extends JPanel implements MouseListener,
}
\r
}
\r
\r
}
\r
}
\r
\r
- if (validCharWidth && validRes &&
\r
+ if (av.validCharWidth && validRes &&
\r
(row.annotations[column].displayCharacter.length() > 0))
\r
{
\r
\r
(row.annotations[column].displayCharacter.length() > 0))
\r
{
\r
\r
@@
-789,36
+793,46
@@
public class AnnotationPanel extends JPanel implements MouseListener,
{
\r
case 'H':
\r
g.setColor(HELIX_COLOUR);
\r
{
\r
case 'H':
\r
g.setColor(HELIX_COLOUR);
\r
+ if(MAC)
\r
+ {
\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
+ break;
\r
+ }
\r
+
\r
int sCol = (lastSSX / av.charWidth) + startRes;
\r
int x1 = lastSSX;
\r
int x2 = x;
\r
\r
int sCol = (lastSSX / av.charWidth) + startRes;
\r
int x1 = lastSSX;
\r
int x2 = x;
\r
\r
- if(row.annotations[sCol-1]==null ||
\r
+ if(sCol==0 ||
\r
+ row.annotations[sCol-1]==null ||
\r
row.annotations[sCol-1].secondaryStructure!='H')
\r
{
\r
row.annotations[sCol-1].secondaryStructure!='H')
\r
{
\r
- g.fillArc(lastSSX, y+4+iconOffset, av.charWidth, 8, 90,180) ;
\r
+ g.fillArc(lastSSX, y+4+iconOffset, av.charWidth+1, 7, 90,180) ;
\r
x1 += av.charWidth/2;
\r
}
\r
\r
if(row.annotations[column]==null ||
\r
row.annotations[column].secondaryStructure!='H')
\r
{
\r
x1 += av.charWidth/2;
\r
}
\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, 8, 270,180);
\r
+ g.fillArc(x-av.charWidth, y+4+iconOffset, av.charWidth, 7, 270,180);
\r
x2 -= av.charWidth/2;
\r
}
\r
\r
x2 -= av.charWidth/2;
\r
}
\r
\r
- g.fillRect(x1, y+4+iconOffset, x2-x1, 8);
\r
+ g.fillRect(x1, y+4+iconOffset, x2-x1+1, 7);
\r
break;
\r
\r
case 'E':
\r
g.setColor(SHEET_COLOUR);
\r
g.fillRect(lastSSX, y + 4 + iconOffset,
\r
x - lastSSX - 4, 7);
\r
break;
\r
\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 - 4, x - 4, x },
\r
+ g.fillPolygon(new int[] { x - 5, x - 5, x },
\r
new int[]
\r
{
\r
y + iconOffset, y + 14 + iconOffset,
\r
new int[]
\r
{
\r
y + iconOffset, y + 14 + iconOffset,
\r
- y + 8 + iconOffset
\r
+ y + 7 + iconOffset
\r
}, 3);
\r
\r
break;
\r
}, 3);
\r
\r
break;
\r
@@
-856,39
+870,49
@@
public class AnnotationPanel extends JPanel implements MouseListener,
{
\r
case 'H':
\r
g.setColor(HELIX_COLOUR);
\r
{
\r
case 'H':
\r
g.setColor(HELIX_COLOUR);
\r
+ if (MAC)
\r
+ {
\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
+ break;
\r
+ }
\r
+
\r
\r
int sCol = (lastSSX / av.charWidth) + startRes;
\r
int x1 = lastSSX;
\r
int x2 = x;
\r
\r
\r
int sCol = (lastSSX / av.charWidth) + startRes;
\r
int x1 = lastSSX;
\r
int x2 = x;
\r
\r
- if(row.annotations[sCol-1]==null ||
\r
+ if(sCol==0 ||
\r
+ row.annotations[sCol-1]==null ||
\r
row.annotations[sCol-1].secondaryStructure!='H')
\r
{
\r
row.annotations[sCol-1].secondaryStructure!='H')
\r
{
\r
- g.fillArc(lastSSX, y+4+iconOffset, av.charWidth, 8, 90,180) ;
\r
+ g.fillArc(lastSSX, y+4+iconOffset, av.charWidth+1, 7, 90,180) ;
\r
x1 += av.charWidth/2;
\r
}
\r
\r
if(row.annotations[column]==null ||
\r
row.annotations[column].secondaryStructure!='H')
\r
{
\r
x1 += av.charWidth/2;
\r
}
\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, 8, 270,180);
\r
+ g.fillArc(x-av.charWidth, y+4+iconOffset, av.charWidth, 7, 270,180);
\r
x2 -= av.charWidth/2;
\r
}
\r
\r
x2 -= av.charWidth/2;
\r
}
\r
\r
- g.fillRect(x1, y+4+iconOffset, x2-x1, 8);
\r
+ g.fillRect(x1, y+4+iconOffset, x2-x1+1, 7);
\r
\r
break;
\r
\r
case 'E':
\r
g.setColor(SHEET_COLOUR);
\r
\r
\r
break;
\r
\r
case 'E':
\r
g.setColor(SHEET_COLOUR);
\r
\r
- if (row.annotations[endRes] !=null
\r
- && row.annotations[endRes].secondaryStructure != 'E')
\r
+ if (row.annotations[endRes] ==null
\r
+ || row.annotations[endRes].secondaryStructure != 'E')
\r
{
\r
g.fillRect(lastSSX, y + 4 + iconOffset,
\r
x - lastSSX - 4, 7);
\r
g.fillPolygon(new int[]
\r
{
\r
g.fillRect(lastSSX, y + 4 + iconOffset,
\r
x - lastSSX - 4, 7);
\r
g.fillPolygon(new int[]
\r
- {x - 4, x - 4, x},
\r
+ {x - 5, x - 5, x},
\r
new int[]
\r
{
\r
y + iconOffset, y + 14 + iconOffset,
\r
new int[]
\r
{
\r
y + iconOffset, y + 14 + iconOffset,
\r
@@
-903,7
+927,7
@@
public class AnnotationPanel extends JPanel implements MouseListener,
\r
\r
default:
\r
\r
\r
default:
\r
- g.setColor(Color.ORANGE);
\r
+ g.setColor(Color.gray);
\r
if(!av.wrapAlignment || endRes==av.endRes)
\r
g.fillRect(lastSSX, y + 6 + iconOffset, x - lastSSX, 2);
\r
\r
if(!av.wrapAlignment || endRes==av.endRes)
\r
g.fillRect(lastSSX, y + 6 + iconOffset, x - lastSSX, 2);
\r
\r
@@
-974,7
+998,6
@@
public class AnnotationPanel extends JPanel implements MouseListener,
if(sRes>aa.annotations.length)
\r
return;
\r
\r
if(sRes>aa.annotations.length)
\r
return;
\r
\r
- eRes = Math.min(eRes, aa.annotations.length);
\r
\r
int x = 0;
\r
\r
\r
int x = 0;
\r
\r
@@
-982,6
+1005,8
@@
public class AnnotationPanel extends JPanel implements MouseListener,
if(eRes<av.endRes)
\r
eRes++;
\r
\r
if(eRes<av.endRes)
\r
eRes++;
\r
\r
+ eRes = Math.min(eRes, aa.annotations.length);
\r
+
\r
if(sRes==0)
\r
{
\r
sRes++;
\r
if(sRes==0)
\r
{
\r
sRes++;
\r
@@
-993,7
+1018,7
@@
public class AnnotationPanel extends JPanel implements MouseListener,
\r
////Draw origin
\r
if(min<0)
\r
\r
////Draw origin
\r
if(min<0)
\r
- y2 = (int)(y - (0-min / range)*graphHeight);
\r
+ y2 = y - (int)((0-min / range)*graphHeight);
\r
\r
g.setColor(Color.gray);
\r
g.drawLine(x-av.charWidth,y2,(eRes-sRes+1)*av.charWidth,y2);
\r
\r
g.setColor(Color.gray);
\r
g.drawLine(x-av.charWidth,y2,(eRes-sRes+1)*av.charWidth,y2);
\r
@@
-1021,9
+1046,11
@@
public class AnnotationPanel extends JPanel implements MouseListener,
continue;
\r
}
\r
\r
continue;
\r
}
\r
\r
+
\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.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
+
\r
g.drawLine(x-av.charWidth/2, y1, x+av.charWidth/2, y2);
\r
x += av.charWidth;
\r
\r
g.drawLine(x-av.charWidth/2, y1, x+av.charWidth/2, y2);
\r
x += av.charWidth;
\r
\r
@@
-1062,7
+1089,7
@@
public class AnnotationPanel extends JPanel implements MouseListener,
y1 = y2 = y;
\r
\r
if(min<0)
\r
y1 = y2 = y;
\r
\r
if(min<0)
\r
- y2 = (int)(y - (0-min / (range))*aa.graphHeight);
\r
+ y2 = y - (int)((0-min / (range))*aa.graphHeight);
\r
\r
g.setColor(Color.gray);
\r
\r
\r
g.setColor(Color.gray);
\r
\r