better vamsas tree io (for when there are no nodemappings)
authorjprocter <Jim Procter>
Wed, 25 Jul 2007 17:16:54 +0000 (17:16 +0000)
committerjprocter <Jim Procter>
Wed, 25 Jul 2007 17:16:54 +0000 (17:16 +0000)
src/jalview/io/vamsas/Tree.java

index 12c471e..82f4f07 100644 (file)
@@ -1,5 +1,6 @@
 package jalview.io.vamsas;\r
 \r
+import java.io.IOException;\r
 import java.util.Enumeration;\r
 import java.util.Hashtable;\r
 import java.util.Vector;\r
@@ -60,7 +61,7 @@ public class Tree extends DatastoreItem
         {\r
           inputData = (AlignmentView) idata[0];\r
         }\r
-        ntree = new jalview.io.NewickFile(tree.getNewick(0).getContent());\r
+        ntree = getNtree();\r
         title = tree.getNewick(0).getTitle();\r
         if (title==null || title.length()==0)\r
         {\r
@@ -74,6 +75,10 @@ public class Tree extends DatastoreItem
       }\r
     }\r
   }\r
+  private NewickFile getNtree() throws IOException\r
+  {\r
+    return new jalview.io.NewickFile(tree.getNewick(0).getContent());\r
+  }\r
   public Tree(VamsasAppDatastore datastore, TreePanel tp2, AlignmentI jal2, uk.ac.vamsas.objects.core.Alignment alignment2)\r
   {\r
     super(datastore);\r
@@ -402,5 +407,21 @@ public class Tree extends DatastoreItem
   {\r
     return inputData;\r
   }\r
+  public boolean isValidTree()\r
+  {\r
+    try {\r
+      ntree.parse();\r
+      if (ntree.getTree()!=null)\r
+      {\r
+        ntree = getNtree();\r
+      }\r
+        return true;\r
+    }\r
+    catch (Exception e)\r
+    {\r
+      Cache.log.debug("Failed to parse newick tree string",e);\r
+    }\r
+    return false;\r
+  }\r
 \r
 }\r