X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FAnnotationLabels.java;h=bffa89a77912a96d3dd507de08e0fdd39505c848;hb=c77ccc33971183dba9cb66b40886a6b61fe8eaa0;hp=5ae610fc6aa67fbcf2c2ab508feba80f2d5fc17b;hpb=f6235770cfcf11c4970e9dbe96ca293966611f24;p=jalview.git diff --git a/src/jalview/gui/AnnotationLabels.java b/src/jalview/gui/AnnotationLabels.java index 5ae610f..bffa89a 100755 --- a/src/jalview/gui/AnnotationLabels.java +++ b/src/jalview/gui/AnnotationLabels.java @@ -128,10 +128,12 @@ public class AnnotationLabels extends JPanel implements MouseListener, label = ""; } - ap.av.alignment.addAnnotation(new AlignmentAnnotation(label, + AlignmentAnnotation newAnnotation = new AlignmentAnnotation(label, "New description", - new Annotation[ap.av.alignment.getWidth()])); + new Annotation[ap.av.alignment.getWidth()]); + ap.av.alignment.addAnnotation(newAnnotation); + ap.av.alignment.setAnnotationIndex(newAnnotation, 0); dif = aa[aa.length - 1].height; } else if (evt.getActionCommand().equals(HIDE)) @@ -182,15 +184,8 @@ public class AnnotationLabels extends JPanel implements MouseListener, ap.annotationPanel.adjustPanelHeight(); - - Dimension d = ap.annotationScroller.getPreferredSize(); - ap.annotationScroller.setPreferredSize(new Dimension(d.width, - d.height + dif)); - d = ap.annotationSpaceFillerHolder.getPreferredSize(); - ap.annotationSpaceFillerHolder.setPreferredSize(new Dimension(d.width, - d.height + dif)); - - ap.addNotify(); + ap.annotationScroller.validate(); + ap.repaint(); } /** @@ -363,6 +358,7 @@ public class AnnotationLabels extends JPanel implements MouseListener, width = ap.calculateIdWidth().width + 4; Graphics2D g2 = (Graphics2D) g; + if(av.antiAlias) g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); @@ -390,8 +386,11 @@ public class AnnotationLabels extends JPanel implements MouseListener, g.setColor(Color.black); AlignmentAnnotation[] aa = av.alignment.getAlignmentAnnotation(); - int y = g.getFont().getSize(); + int fontHeight = g.getFont().getSize(); + int y = fontHeight; int x = 0; + int graphExtras = 0; + if (aa != null) @@ -405,15 +404,73 @@ public class AnnotationLabels extends JPanel implements MouseListener, x = width - fm.stringWidth(aa[i].label) - 3; - if (aa[i].isGraph) + if (aa[i].graph>0) { + graphExtras = y; + y += (aa[i].height / 3); + + if(aa[i].graphGroup<0) + graphExtras = y + fontHeight; } - g.drawString(aa[i].label, x, y); + if(aa[i].graphGroup>-1) + { + int groupSize = 0; + for (int gg = 0; gg < aa.length; gg++) + { + if (aa[gg].graphGroup == aa[i].graphGroup) + groupSize++; + } + + if(groupSize * (fontHeight+8) < aa[i].height) + graphExtras += (aa[i].height -( groupSize * (fontHeight+8)) )/2; + + for(int gg=0; gg0) { + /* if (aa[i].graphLines != null) + { + for (int gl = 0; gl < aa[i].graphLines.size(); gl++) + { + x = width - fm.stringWidth(aa[i].getGraphLine(gl).label) - 3; + g.drawString(aa[i].getGraphLine(gl).label, x, graphExtras); + g.setColor(aa[i].getGraphLine(gl).colour); + Graphics2D g2 = (Graphics2D) g; + g2.setStroke(new BasicStroke(1, + BasicStroke.CAP_SQUARE, + BasicStroke.JOIN_ROUND, 3f, + new float[] + {5f, 3f}, 0f)); + + graphExtras += 3; + + g.drawLine(x, graphExtras, + x+fm.stringWidth(aa[i].label), + graphExtras); + g2.setStroke(new BasicStroke()); + } + }*/ y += ((2 * aa[i].height) / 3); } else @@ -427,7 +484,7 @@ public class AnnotationLabels extends JPanel implements MouseListener, { if (image != null) { - g.drawImage(image, 2, 0, this); + g.drawImage(image, 2, 0 - scrollOffset, this); } }