{ "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" },
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;
"",
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 ) {
}
}
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 ) ) {
private enum PHYLOXML_TAG {
NODE_NAME,
NODE_BRANCH_LENGTH,
+ NODE_BRANCH_WIDTH,
TAXONOMY_CODE,
TAXONOMY_SCIENTIFIC_NAME,
TAXONOMY_AUTHORITY,
package org.forester.archaeopteryx;
+import java.awt.Color;
import java.util.List;
import java.util.SortedMap;
import java.util.SortedSet;
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;
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";
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,