Can change branch width now [Kyoto]
authorcmzmasek <cmzmasek@ca865154-3058-d1c3-3e42-d8f55a55bdbd>
Fri, 12 Aug 2011 07:09:10 +0000 (07:09 +0000)
committercmzmasek <cmzmasek@ca865154-3058-d1c3-3e42-d8f55a55bdbd>
Fri, 12 Aug 2011 07:09:10 +0000 (07:09 +0000)
forester/java/src/org/forester/archaeopteryx/Configuration.java
forester/java/src/org/forester/archaeopteryx/NodeEditPanel.java
forester/java/src/org/forester/archaeopteryx/NodePanel.java

index 3562e10..ffc9104 100644 (file)
@@ -156,7 +156,7 @@ public final class Configuration {
             { "Phylogram", "display", "?" }, { "Node Name", "display", "yes" }, { "Taxonomy Code", "display", "yes" },
             { "Annotation", "nodisplay", "no" }, { "Confidence Value", "display", "?" }, { "Event", "display", "?" },
             { "Taxonomy Colorize", "display", "yes" }, { "Colorize Branches", "display", "no" },
-            { "Use Branch-Width", "nodisplay", "no" }, { "Show Custom Nodes", "display", "yes" },
+            { "Use Branch-Widths", "display", "no" }, { "Show Custom Nodes", "display", "yes" },
             { "Domains", "nodisplay", "no" }, { "Binary Characters", "nodisplay", "no" },
             { "Binary Char Counts", "nodisplay", "no" }, { "Prot/Gene Name", "display", "yes" },
             { "Prot/Gene Acc", "display", "no" }, { "Show Internal Data", "display", "yes" },
index 81e869d..a485376 100644 (file)
@@ -52,6 +52,7 @@ import org.forester.archaeopteryx.tools.ImageLoader;
 import org.forester.io.parsers.phyloxml.PhyloXmlDataFormatException;
 import org.forester.phylogeny.PhylogenyNode;
 import org.forester.phylogeny.data.Accession;
+import org.forester.phylogeny.data.BranchWidth;
 import org.forester.phylogeny.data.Confidence;
 import org.forester.phylogeny.data.Date;
 import org.forester.phylogeny.data.Distribution;
@@ -183,6 +184,15 @@ class NodeEditPanel extends JPanel {
                                "",
                                PHYLOXML_TAG.CONFIDENCE_TYPE,
                                counter );
+        String bw = "1";
+        if ( phylogeny_node.getBranchData().getBranchWidth() != null
+                && phylogeny_node.getBranchData().getBranchWidth().getValue() != BranchWidth.BRANCH_WIDTH_DEFAULT_VALUE
+        )
+        {
+            bw = ForesterUtil.FORMATTER_3.format( phylogeny_node.getBranchData().getBranchWidth().getValue() );
+        }
+        addSubelementEditable( category, NodePanel.NODE_BRANCH_WIDTH, bw, PHYLOXML_TAG.NODE_BRANCH_WIDTH );
+        
     }
 
     //    private void addAnnotation( final DefaultMutableTreeNode top, final Annotation ann, final String name ) {
@@ -659,6 +669,28 @@ class NodeEditPanel extends JPanel {
                     }
                 }
                 break;
+            case NODE_BRANCH_WIDTH:
+                if ( ForesterUtil.isEmpty( value ) || value.equals( "1" ) ) {
+                    if ( getMyNode().getBranchData().getBranchWidth() != null ) {
+                        getMyNode().getBranchData().setBranchWidth( new BranchWidth() );
+                    }
+                }
+                else {
+                    try {
+                        final double bw = ForesterUtil.parseDouble( value );
+                        if ( bw >= 0 ) {
+                            getMyNode().getBranchData().setBranchWidth( new BranchWidth(bw ) );
+                        }
+                    }
+                    catch ( final ParseException e ) {
+                        JOptionPane.showMessageDialog( this,
+                                                       "failed to parse branch width from: " + value,
+                                                       "Error",
+                                                       JOptionPane.ERROR_MESSAGE );
+                        mtn.setUserObject( "" );
+                    }
+                }
+                break;    
             case CONFIDENCE_VALUE:
                 double confidence = Confidence.CONFIDENCE_DEFAULT_VALUE;
                 if ( !ForesterUtil.isEmpty( value ) ) {
@@ -1020,6 +1052,7 @@ class NodeEditPanel extends JPanel {
     private enum PHYLOXML_TAG {
         NODE_NAME,
         NODE_BRANCH_LENGTH,
+        NODE_BRANCH_WIDTH,
         TAXONOMY_CODE,
         TAXONOMY_SCIENTIFIC_NAME,
         TAXONOMY_AUTHORITY,
index 153d949..ebed530 100644 (file)
@@ -25,6 +25,7 @@
 
 package org.forester.archaeopteryx;
 
+import java.awt.Color;
 import java.util.List;
 import java.util.SortedMap;
 import java.util.SortedSet;
@@ -44,6 +45,7 @@ import org.forester.phylogeny.PhylogenyMethods;
 import org.forester.phylogeny.PhylogenyNode;
 import org.forester.phylogeny.data.Annotation;
 import org.forester.phylogeny.data.BinaryCharacters;
+import org.forester.phylogeny.data.BranchWidth;
 import org.forester.phylogeny.data.Date;
 import org.forester.phylogeny.data.Distribution;
 import org.forester.phylogeny.data.Event;
@@ -92,6 +94,8 @@ class NodePanel extends JPanel implements TreeSelectionListener {
     static final String       SEQ_SYMBOL               = "Symbol";
     static final String       SEQ_URI                  = "URI";
     static final String       NODE_BRANCH_LENGTH       = "Branch length";
+    static final String       NODE_BRANCH_WIDTH        = "Branch width";
+    static final String       NODE_BRANCH_COLOR        = "Branch color";
     static final String       NODE_NAME                = "Name";
     static final String       TAXONOMY_URI             = "URI";
     static final String       TAXONOMY_RANK            = "Rank";
@@ -222,6 +226,18 @@ class NodePanel extends JPanel implements TreeSelectionListener {
                 addSubelement( category, CONFIDENCE, conf.asText().toString() );
             }
         }
+        if ( ( phylogeny_node.getBranchData().getBranchWidth() != null )
+                && ( phylogeny_node.getBranchData().getBranchWidth().getValue() != BranchWidth.BRANCH_WIDTH_DEFAULT_VALUE ) ) {
+            addSubelement( category,
+                           NODE_BRANCH_WIDTH,
+                           ForesterUtil.FORMATTER_3.format( phylogeny_node.getBranchData().getBranchWidth().getValue() ) );
+        }
+        if ( ( phylogeny_node.getBranchData().getBranchColor() != null ) ) {
+            Color c = phylogeny_node.getBranchData().getBranchColor().getValue();
+            addSubelement( category,
+                           NODE_BRANCH_COLOR,
+                            c.getRed() + ", " + c.getGreen() + ", "+ c.getBlue() );
+        }
         if ( !phylogeny_node.isExternal() ) {
             addSubelement( category, "Children", String.valueOf( phylogeny_node.getNumberOfDescendants() ) );
             addSubelement( category,