X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FAnnotationLabels.java;h=bffa89a77912a96d3dd507de08e0fdd39505c848;hb=4263dac5b885f760215fa599eb453e1221767d04;hp=3bc78bedde6400fecfc81a16e3815732f5921004;hpb=9da72d5bf92cb3cc4645d7b15bcf8e83fd885a09;p=jalview.git diff --git a/src/jalview/gui/AnnotationLabels.java b/src/jalview/gui/AnnotationLabels.java index 3bc78be..bffa89a 100755 --- a/src/jalview/gui/AnnotationLabels.java +++ b/src/jalview/gui/AnnotationLabels.java @@ -50,6 +50,7 @@ public class AnnotationLabels extends JPanel implements MouseListener, int mouseX; int selectedRow = 0; int scrollOffset = 0; + Font font = new Font("Arial", Font.PLAIN, 11); /** @@ -127,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)) @@ -181,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(); } /** @@ -362,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); @@ -376,7 +373,11 @@ public class AnnotationLabels extends JPanel implements MouseListener, */ public void drawComponent(Graphics g, int width) { - g.setFont(new Font("Arial", Font.PLAIN, av.getFont().getSize()-3)); + if(av.getFont().getSize()<10) + g.setFont(new Font("Arial", Font.PLAIN, av.getFont().getSize()-1)); + else + g.setFont(font); + FontMetrics fm = g.getFontMetrics(g.getFont()); g.setColor(Color.white); g.fillRect(0, 0, getWidth(), getHeight()); @@ -385,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) @@ -400,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 @@ -422,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); } }