// Copyright (C) 2008-2009 Christian M. Zmasek
// Copyright (C) 2008-2009 Burnham Institute for Medical Research
// All rights reserved
-//
+//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
// License as published by the Free Software Foundation; either
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Lesser General Public License for more details.
-//
+//
// You should have received a copy of the GNU Lesser General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
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";
top.add( category );
addSubelement( category, NODE_NAME, phylogeny_node.getName() );
if ( phylogeny_node.getDistanceToParent() != PhylogenyNode.DISTANCE_DEFAULT ) {
- addSubelement( category, NODE_BRANCH_LENGTH, ForesterUtil.FORMATTER_6.format( phylogeny_node
- .getDistanceToParent() ) );
+ addSubelement( category,
+ NODE_BRANCH_LENGTH,
+ ForesterUtil.FORMATTER_6.format( phylogeny_node.getDistanceToParent() ) );
}
if ( phylogeny_node.getBranchData().isHasConfidences() ) {
for( final PhylogenyData conf : phylogeny_node.getBranchData().getConfidences() ) {
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, "External children", String.valueOf( phylogeny_node.getAllExternalDescendants()
- .size() ) );
+ addSubelement( category,
+ "External children",
+ String.valueOf( phylogeny_node.getAllExternalDescendants().size() ) );
final SortedMap<Taxonomy, Integer> distinct_tax = PhylogenyMethods
.obtainDistinctTaxonomyCounts( phylogeny_node );
if ( distinct_tax != null ) {