JAL-4134 store/restore Newick tree for PAE annotation row
[jalview.git] / src / jalview / project / Jalview2XML.java
index 36c87ce..efcc7ff 100644 (file)
@@ -1325,6 +1325,13 @@ public class Jalview2XML
               tree.setLinkToAllViews(
                       tp.getTreeCanvas().isApplyToAllViews());
 
+              // columnWiseTree
+              if (tp.isColumnWise())
+              {
+                tree.setColumnWise(true);
+                String annId = tp.getAssocAnnotation().annotationId;
+                tree.setColumnReference(annId);
+              }
               // jms.addTree(tree);
               object.getTree().add(tree);
             }
@@ -4385,10 +4392,28 @@ public class Jalview2XML
         TreePanel tp = (TreePanel) retrieveExistingObj(tree.getId());
         if (tp == null)
         {
-          tp = af.showNewickTree(new NewickFile(tree.getNewick()),
-                  tree.getTitle(), safeInt(tree.getWidth()),
-                  safeInt(tree.getHeight()), safeInt(tree.getXpos()),
-                  safeInt(tree.getYpos()));
+          if (tree.isColumnWise())
+          {
+            AlignmentAnnotation aa = (AlignmentAnnotation) annotationIds.get(tree
+                    .getColumnReference());
+            if (aa == null)
+            {
+              Console.warn(
+                      "Null alignment annotation when restoring columnwise tree");
+            }
+            tp = af.showColumnWiseTree(new NewickFile(tree.getNewick()), aa,
+                    tree.getTitle(), safeInt(tree.getWidth()),
+                    safeInt(tree.getHeight()), safeInt(tree.getXpos()),
+                    safeInt(tree.getYpos()));
+
+          }
+          else
+          {
+            tp = af.showNewickTree(new NewickFile(tree.getNewick()),
+                    tree.getTitle(), safeInt(tree.getWidth()),
+                    safeInt(tree.getHeight()), safeInt(tree.getXpos()),
+                    safeInt(tree.getYpos()));
+          }
           if (tree.getId() != null)
           {
             // perhaps bind the tree id to something ?