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
correct popup menu, ensure panel doesn't disappear when empty (patches for JAL-554...
[jalview.git]
/
src
/
jalview
/
appletgui
/
AnnotationLabels.java
diff --git
a/src/jalview/appletgui/AnnotationLabels.java
b/src/jalview/appletgui/AnnotationLabels.java
index
62ed93c
..
bc019fe
100755
(executable)
--- a/
src/jalview/appletgui/AnnotationLabels.java
+++ b/
src/jalview/appletgui/AnnotationLabels.java
@@
-57,6
+57,8
@@
public class AnnotationLabels extends Panel implements ActionListener,
Tooltip tooltip;
Tooltip tooltip;
+ private boolean hasHiddenRows;
+
public AnnotationLabels(AlignmentPanel ap)
{
this.ap = ap;
public AnnotationLabels(AlignmentPanel ap)
{
this.ap = ap;
@@
-77,9
+79,14
@@
public class AnnotationLabels extends Panel implements ActionListener,
repaint();
}
repaint();
}
+ /**
+ *
+ * @param y
+ * @return -2 if no rows are visible at all, -1 if no visible rows were selected
+ */
int getSelectedRow(int y)
{
int getSelectedRow(int y)
{
- int row = -1;
+ int row = -2;
AlignmentAnnotation[] aa = ap.av.alignment.getAlignmentAnnotation();
if (aa == null)
AlignmentAnnotation[] aa = ap.av.alignment.getAlignmentAnnotation();
if (aa == null)
@@
-90,11
+97,11
@@
public class AnnotationLabels extends Panel implements ActionListener,
int height = 0;
for (int i = 0; i < aa.length; i++)
{
int height = 0;
for (int i = 0; i < aa.length; i++)
{
+ row = -1;
if (!aa[i].visible)
{
continue;
}
if (!aa[i].visible)
{
continue;
}
-
height += aa[i].height;
if (y < height)
{
height += aa[i].height;
if (y < height)
{
@@
-248,9
+255,16
@@
public class AnnotationLabels extends Panel implements ActionListener,
MenuItem item = new MenuItem(ADDNEW);
item.addActionListener(this);
popup.add(item);
MenuItem item = new MenuItem(ADDNEW);
item.addActionListener(this);
popup.add(item);
- if (aa == null)
+ if (selectedRow<0)
{
{
-
+ // this never happens at moment: - see comment on JAL-563
+ if (hasHiddenRows)
+ {
+ item = new MenuItem(SHOWALL);
+ item.addActionListener(this);
+ popup.add(item);
+ }
+ this.add(popup);
popup.show(this, evt.getX(), evt.getY());
return;
}
popup.show(this, evt.getX(), evt.getY());
return;
}
@@
-261,9
+275,11
@@
public class AnnotationLabels extends Panel implements ActionListener,
item = new MenuItem(HIDE);
item.addActionListener(this);
popup.add(item);
item = new MenuItem(HIDE);
item.addActionListener(this);
popup.add(item);
+ if (hasHiddenRows) {
item = new MenuItem(SHOWALL);
item.addActionListener(this);
popup.add(item);
item = new MenuItem(SHOWALL);
item.addActionListener(this);
popup.add(item);
+ }
this.add(popup);
item = new MenuItem(OUTPUT_TEXT);
item.addActionListener(this);
this.add(popup);
item = new MenuItem(OUTPUT_TEXT);
item.addActionListener(this);
@@
-352,35
+368,26
@@
public class AnnotationLabels extends Panel implements ActionListener,
g.setColor(Color.black);
AlignmentAnnotation[] aa = av.alignment.getAlignmentAnnotation();
g.setColor(Color.black);
AlignmentAnnotation[] aa = av.alignment.getAlignmentAnnotation();
- int y = g.getFont().getSize();
- int x = 0;
+ int y = 0, fy=g.getFont().getSize();
+ int x = 0, offset;
if (aa != null)
{
if (aa != null)
{
+ hasHiddenRows=false;
for (int i = 0; i < aa.length; i++)
{
if (!aa[i].visible)
{
for (int i = 0; i < aa.length; i++)
{
if (!aa[i].visible)
{
+ hasHiddenRows=true;
continue;
}
x = width - fm.stringWidth(aa[i].label) - 3;
continue;
}
x = width - fm.stringWidth(aa[i].label) - 3;
- if (aa[i].graph > 0)
- {
- y += (aa[i].height / 3);
- }
-
- g.drawString(aa[i].label, x, y);
+ y += aa[i].height;
+ offset = -(aa[i].height-fy)/2;
- if (aa[i].graph > 0)
- {
- y += (2 * aa[i].height / 3);
- }
- else
- {
- y += aa[i].height;
- }
+ g.drawString(aa[i].label, x, y+offset);
}
}
}
}
}
}