Merge branch 'features/r2_11_2_alphafold/JAL-629' into features/JAL-4134_treeviewerfo...
[jalview.git] / src / jalview / gui / AnnotationLabels.java
index 1e2374a..c01a6f3 100755 (executable)
@@ -36,6 +36,7 @@ import java.awt.event.MouseEvent;
 import java.awt.event.MouseListener;
 import java.awt.event.MouseMotionListener;
 import java.awt.geom.AffineTransform;
+import java.io.IOException;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.Iterator;
@@ -50,18 +51,23 @@ import javax.swing.ToolTipManager;
 
 import jalview.analysis.AlignSeq;
 import jalview.analysis.AlignmentUtils;
+import jalview.bin.Console;
 import jalview.datamodel.Alignment;
 import jalview.datamodel.AlignmentAnnotation;
 import jalview.datamodel.Annotation;
+import jalview.datamodel.ContactMatrixI;
 import jalview.datamodel.HiddenColumns;
 import jalview.datamodel.Sequence;
 import jalview.datamodel.SequenceGroup;
 import jalview.datamodel.SequenceI;
+import jalview.io.DataSourceType;
 import jalview.io.FileFormat;
 import jalview.io.FormatAdapter;
+import jalview.io.NewickFile;
 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
@@ -292,25 +298,21 @@ public class AnnotationLabels extends JPanel
     EditNameDialog dialog = new EditNameDialog(annotation.label,
             annotation.description, name, description);
 
-    dialog.showDialog(ap.alignFrame, title, new Runnable()
-    {
-      @Override
-      public void run()
+    dialog.showDialog(ap.alignFrame, title, () -> {
+      annotation.label = dialog.getName();
+      String text = dialog.getDescription();
+      if (text != null && text.length() == 0)
       {
-        annotation.label = dialog.getName();
-        String text = dialog.getDescription();
-        if (text != null && text.length() == 0)
-        {
-          text = null;
-        }
-        annotation.description = text;
-        if (addNew)
-        {
-          ap.av.getAlignment().addAnnotation(annotation);
-          ap.av.getAlignment().setAnnotationIndex(annotation, 0);
-        }
-        ap.refresh(true);
+        text = null;
       }
+      annotation.description = text;
+      if (addNew)
+      {
+        ap.av.getAlignment().addAnnotation(annotation);
+        ap.av.getAlignment().setAnnotationIndex(annotation, 0);
+      }
+      ap.refresh(true);
+      return null;
     });
   }
 
@@ -420,6 +422,31 @@ 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.getNewickString()!=null && cm.getNewickString().length()>0)
+        {
+          item = new JMenuItem("Show 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());
   }
@@ -1223,7 +1250,9 @@ public class AnnotationLabels extends JPanel
         {
           if (vertBar)
           {
-            g.drawLine(x - 40, y, x - 40, y - aa[i].height);
+            g.drawLine(20, y + offset, 20, y - aa[i].height);
+            g.drawLine(20, y + offset, x - 20, y + offset);
+
           }
           g.drawString(label, x, y + offset);
         }