X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fappletgui%2FAnnotationLabels.java;h=8b3a503ce83f644b2ce8e3a599743f023e093a9b;hb=32c056ffe34e60a1fde83bf4061af6e82d41f958;hp=38013d1a0804a379dd864484bfb1bef1389edfad;hpb=588042b69abf8e60bcc950b24c283933c7dd422f;p=jalview.git diff --git a/src/jalview/appletgui/AnnotationLabels.java b/src/jalview/appletgui/AnnotationLabels.java index 38013d1..8b3a503 100755 --- a/src/jalview/appletgui/AnnotationLabels.java +++ b/src/jalview/appletgui/AnnotationLabels.java @@ -29,6 +29,7 @@ public class AnnotationLabels { boolean active = false; AlignmentPanel ap; + AlignViewport av; boolean resizing = false; int oldY, mouseX; static String ADDNEW = "Add new row"; @@ -42,6 +43,7 @@ public class AnnotationLabels public AnnotationLabels(AlignmentPanel ap) { this.ap = ap; + this.av = ap.av; setLayout(null); addMouseListener(new MouseAdapter() { @@ -52,6 +54,12 @@ public class AnnotationLabels }); } + public AnnotationLabels(AlignViewport av) +{ + this.av = av; +} + + public void setScrollOffset(int y) { scrollOffset = y; @@ -60,7 +68,7 @@ public class AnnotationLabels public void actionPerformed(ActionEvent evt) { - AlignmentAnnotation[] aa = ap.av.alignment.getAlignmentAnnotation(); + AlignmentAnnotation[] aa = av.alignment.getAlignmentAnnotation(); if (evt.getActionCommand().equals(HIDE)) { @@ -75,7 +83,7 @@ public class AnnotationLabels } else if (evt.getActionCommand().equals(OUTPUT_TEXT)) { - CutAndPasteTransfer cap = new CutAndPasteTransfer(false); + CutAndPasteTransfer cap = new CutAndPasteTransfer(false, ap.alignFrame); Frame frame = new Frame(); frame.add(cap); jalview.bin.JalviewLite.addFrame(frame, @@ -121,25 +129,45 @@ public class AnnotationLabels item = new MenuItem(OUTPUT_TEXT); item.addActionListener(this); pop.add(item); - pop.show(this, evt.getX(), evt.getY()); + + if (aa[selectedRow].label.equals("Consensus")) + { + pop.addSeparator(); + final CheckboxMenuItem cbmi = new CheckboxMenuItem( + "Ignore Gaps In Consensus", + ap.av.getIgnoreGapsConsensus()); + + cbmi.addItemListener(new ItemListener() + { + public void itemStateChanged(ItemEvent e) + { + ap.av.setIgnoreGapsConsensus(cbmi.getState()); + ap.repaint(); + } + }); + pop.add(cbmi); + } + + pop.show(this, evt.getX(), evt.getY()); } public void paint(Graphics g) { - drawComponent(g); + drawComponent(g, getSize().width); } - public void drawComponent(Graphics g) + public void drawComponent(Graphics g, int width) { - FontMetrics fm = g.getFontMetrics(g.getFont()); + g.setFont(av.getFont()); + FontMetrics fm = g.getFontMetrics(av.getFont()); g.setColor(Color.white); g.fillRect(0, 0, getSize().width, getSize().height); g.translate(0, scrollOffset); g.setColor(Color.black); - AlignmentAnnotation[] aa = ap.av.alignment.getAlignmentAnnotation(); + AlignmentAnnotation[] aa = av.alignment.getAlignmentAnnotation(); int y = g.getFont().getSize(); int x = 0; @@ -152,16 +180,16 @@ public class AnnotationLabels continue; } - x = getSize().width - fm.stringWidth(aa[i].label) - 3; + x = width - fm.stringWidth(aa[i].label) - 3; - if (aa[i].isGraph) + if (aa[i].graph>0) { y += (aa[i].height / 3); } g.drawString(aa[i].label, x, y); - if (aa[i].isGraph) + if (aa[i].graph>0) { y += (2 * aa[i].height / 3); }