X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FAnnotationLabels.java;h=487c18bcd74b1c3a32d0d127869b7f64ec9879ce;hb=353cb52722490edcba2c13b18836b6d37c5455de;hp=804ab7b4377f78cd84bc133b42fc7f2c6a898fad;hpb=4a59f639cf5769d9ec66142ebecfa4961c5d3b04;p=jalview.git diff --git a/src/jalview/gui/AnnotationLabels.java b/src/jalview/gui/AnnotationLabels.java index 804ab7b..487c18b 100755 --- a/src/jalview/gui/AnnotationLabels.java +++ b/src/jalview/gui/AnnotationLabels.java @@ -62,6 +62,7 @@ import jalview.io.FormatAdapter; import jalview.util.Comparison; import jalview.util.MessageManager; import jalview.util.Platform; +import jalview.ws.datamodel.alphafold.PAEContactMatrix; /** * The panel that holds the labels for alignment annotations, providing @@ -306,7 +307,6 @@ public class AnnotationLabels extends JPanel ap.av.getAlignment().setAnnotationIndex(annotation, 0); } ap.refresh(true); - return null; }); } @@ -416,6 +416,32 @@ public class AnnotationLabels extends JPanel consclipbrd.addActionListener(this); pop.add(consclipbrd); } + if (aa[selectedRow].graph == AlignmentAnnotation.CONTACT_MAP + && PAEContactMatrix.PAEMATRIX + .equals(aa[selectedRow].getCalcId())) + { + final PAEContactMatrix cm = (PAEContactMatrix) av + .getContactMatrix(aa[selectedRow]); + if (cm != null && cm.getNewick() != null + && cm.getNewick().length() > 0) + { + item = new JMenuItem("Show Tree for Matrix"); + item.addActionListener(new ActionListener() + { + + @Override + public void actionPerformed(ActionEvent e) + { + + ap.alignFrame.showContactMapTree(aa[selectedRow], cm); + + } + }); + pop.addSeparator(); + pop.add(item); + } + + } } pop.show(this, evt.getX(), evt.getY()); } @@ -1056,6 +1082,7 @@ public class AnnotationLabels extends JPanel g.translate(0, getScrollOffset()); g.setColor(Color.black); SequenceI lastSeqRef = null; + String lastLabel = null; AlignmentAnnotation[] aa = av.getAlignment().getAlignmentAnnotation(); int fontHeight = g.getFont().getSize(); int y = 0; @@ -1080,6 +1107,7 @@ public class AnnotationLabels extends JPanel { hasHiddenRows = false; int olY = 0; + int nexAA = 0; for (int i = 0; i < aa.length; i++) { visible = true; @@ -1089,6 +1117,10 @@ public class AnnotationLabels extends JPanel continue; } olY = y; + // look ahead to next annotation + for (nexAA = i + 1; nexAA < aa.length + && !aa[nexAA].visible; nexAA++) + ; y += aa[i].height; if (clip) { @@ -1136,6 +1168,24 @@ public class AnnotationLabels extends JPanel } String label = aa[i].label; boolean vertBar = false; + if ((lastLabel != null && lastLabel.equals(label))) + { + label = aa[i].description; + } + else + { + if (nexAA < aa.length && label.equals(aa[nexAA].label)) // && + // aa[nexY].sequenceRef==aa[i].sequenceRef) + { + lastLabel = label; + // next label is the same as this label + label = aa[i].description; + } + else + { + lastLabel = label; + } + } if (aa[i].sequenceRef != null) { if (aa[i].sequenceRef != lastSeqRef) @@ -1219,8 +1269,9 @@ public class AnnotationLabels extends JPanel { if (vertBar) { - g.drawLine(20, y + offset, 20, y - aa[i].height); - g.drawLine(20, y + offset, x - 20, y + offset); + g.drawLine(width - 3, y + offset - fontHeight, width - 3, + (int) (y - 1.5 * aa[i].height - offset - fontHeight)); + // g.drawLine(20, y + offset, x - 20, y + offset); } g.drawString(label, x, y + offset);