else {
phy.addAsChild( node );
}
- _nodes_in_preorder = null;
+ setNodeInPreorderToNull();
_phylogeny.externalNodesHaveChanged();
_phylogeny.hashIDs();
_phylogeny.recalculateNumberOfExternalDescendants( true );
_phylogeny.recalculateNumberOfExternalDescendants( true );
resetNodeIdToDistToLeafMap();
calculateLongestExtNodeInfo();
- _nodes_in_preorder = null;
+ setNodeInPreorderToNull();
+ _control_panel.displayedPhylogenyMightHaveChanged( true );
resetPreferredSize();
updateOvSizes();
_main_panel.adjustJScrollPane();
_phylogeny.recalculateNumberOfExternalDescendants( true );
resetNodeIdToDistToLeafMap();
calculateLongestExtNodeInfo();
- _nodes_in_preorder = null;
+ setNodeInPreorderToNull();
resetPreferredSize();
_main_panel.adjustJScrollPane();
setArrowCursor();
errorMessageNoCutCopyPasteInUnrootedDisplay();
return;
}
- _nodes_in_preorder = null;
+ setNodeInPreorderToNull();
setCutOrCopiedTree( _phylogeny.copy( node ) );
final List<PhylogenyNode> nodes = PhylogenyMethods.getAllDescendants( node );
final Set<Integer> node_ids = new HashSet<Integer>( nodes.size() );
if ( r != JOptionPane.OK_OPTION ) {
return;
}
- _nodes_in_preorder = null;
+ setNodeInPreorderToNull();
setCopiedAndPastedNodes( null );
setCutOrCopiedTree( _phylogeny.copy( node ) );
_phylogeny.deleteSubtree( node, true );
null,
options,
options[ 2 ] );
- _nodes_in_preorder = null;
+ setNodeInPreorderToNull();
boolean node_only = true;
if ( r == 1 ) {
node_only = false;
case EDIT_NODE_DATA:
showNodeEditFrame( node );
break;
+ case SORT_DESCENDENTS:
+ sortDescendants( node );
+ break;
default:
throw new IllegalArgumentException( "unknown action: " + action );
}
JOptionPane.WARNING_MESSAGE );
return;
}
- _nodes_in_preorder = null;
+ setNodeInPreorderToNull();
setWaitCursor();
PhylogenyMethods.midpointRoot( _phylogeny );
resetNodeIdToDistToLeafMap();
paintNodeBox( _root.getXcoord(), _root.getYcoord(), _root, g, to_pdf, to_graphics_file, isInFoundNodes( _root ) );
}
- private void updateSetOfCollapsedExternalNodes( final Phylogeny phy ) {
+ void updateSetOfCollapsedExternalNodes( final Phylogeny phy ) {
_collapsed_external_nodeid_set.clear();
E: for( final PhylogenyNodeIterator it = phy.iteratorExternalForward(); it.hasNext(); ) {
final PhylogenyNode ext_node = it.next();
final PhylogenyNode node,
final boolean to_pdf,
final boolean to_graphics_file ) {
- String conf_str = "";
final List<Confidence> confidences = node.getBranchData().getConfidences();
// if ( confidences.size() == 1 ) {
// final double value = node.getBranchData().getConfidence( 0 ).getValue();
boolean not_first = false;
Collections.sort( confidences );
final StringBuilder sb = new StringBuilder();
+ String conf_str = "";
for( final Confidence confidence : confidences ) {
final double value = confidence.getValue();
if ( value != Confidence.CONFIDENCE_DEFAULT_VALUE ) {
}
sb.append( FORMATTER_CONFIDENCE.format( ForesterUtil.round( value, getOptions()
.getNumberOfDigitsAfterCommaForConfidenceValues() ) ) );
- if ( getControlPanel().isShowConfidenceSDValues() ) {
+ if ( getOptions().isShowConfidenceStddev() ) {
if ( confidence.getStandardDeviation() != Confidence.CONFIDENCE_DEFAULT_VALUE ) {
sb.append( "(" );
sb.append( FORMATTER_CONFIDENCE.format( ForesterUtil.round( confidence.getStandardDeviation(),
}
catch ( final ClassCastException cce ) {
cce.printStackTrace();
- return;
}
- rds.setRenderingHeight( 6 );
- int x = 0;
- if ( getControlPanel().isShowTaxonomyCode() && ( PhylogenyMethods.getSpecies( node ).length() > 0 ) ) {
- x += getTreeFontSet()._fm_large_italic.stringWidth( PhylogenyMethods.getSpecies( node ) + " " );
- }
- if ( getControlPanel().isShowGeneNames() ) {
- x += getTreeFontSet()._fm_large.stringWidth( node.getNodeData().getSequence().getName() + " " );
- }
- if ( getControlPanel().isShowGeneSymbols() ) {
- x += getTreeFontSet()._fm_large.stringWidth( node.getNodeData().getSequence().getSymbol() + " " );
- }
- if ( getControlPanel().isShowSequenceAcc() ) {
- x += getTreeFontSet()._fm_large.stringWidth( node.getNodeData().getSequence().getAccession()
- .toString()
- + " " );
- }
- if ( getControlPanel().isShowNodeNames() && ( node.getName().length() > 0 ) ) {
- x += getTreeFontSet()._fm_large.stringWidth( node.getName() + " " );
+ if ( rds != null ) {
+ rds.setRenderingHeight( 6 );
+ int x = 0;
+ if ( getControlPanel().isShowTaxonomyCode()
+ && ( !ForesterUtil.isEmpty( PhylogenyMethods.getSpecies( node ) ) ) ) {
+ x += getTreeFontSet()._fm_large_italic.stringWidth( PhylogenyMethods.getSpecies( node ) + " " );
+ }
+ if ( getControlPanel().isShowGeneNames()
+ && ( !ForesterUtil.isEmpty( node.getNodeData().getSequence().getName() ) ) ) {
+ x += getTreeFontSet()._fm_large.stringWidth( node.getNodeData().getSequence().getName() + " " );
+ }
+ if ( getControlPanel().isShowGeneSymbols()
+ && ( !ForesterUtil.isEmpty( node.getNodeData().getSequence().getSymbol() ) ) ) {
+ x += getTreeFontSet()._fm_large
+ .stringWidth( node.getNodeData().getSequence().getSymbol() + " " );
+ }
+ if ( getControlPanel().isShowSequenceAcc()
+ && ( node.getNodeData().getSequence().getAccession() != null ) ) {
+ x += getTreeFontSet()._fm_large.stringWidth( node.getNodeData().getSequence().getAccession()
+ .toString()
+ + " " );
+ }
+ if ( getControlPanel().isShowNodeNames() && ( node.getName().length() > 0 ) ) {
+ x += getTreeFontSet()._fm_large.stringWidth( node.getName() + " " );
+ }
+ rds.render( node.getXcoord() + x, node.getYcoord() - 3, g, this, to_pdf );
}
- rds.render( node.getXcoord() + x, node.getYcoord() - 3, g, this, to_pdf );
}
}
//////////////
final RenderableVector rv = RenderableVector.createInstance( node.getNodeData().getVector(),
getStatisticsForExpressionValues(),
getConfiguration() );
- int x = 0;
- PhylogenyNode my_node = node;
- if ( !getControlPanel().isDrawPhylogram() ) {
- my_node = getPhylogeny().getFirstExternalNode();
- }
- if ( getControlPanel().isShowTaxonomyCode() && ( PhylogenyMethods.getSpecies( my_node ).length() > 0 ) ) {
- x += getTreeFontSet()._fm_large_italic.stringWidth( PhylogenyMethods.getSpecies( my_node ) + " " );
- }
- if ( getControlPanel().isShowNodeNames() && ( my_node.getName().length() > 0 ) ) {
- x += getTreeFontSet()._fm_large.stringWidth( my_node.getName() + " " );
+ if ( rv != null ) {
+ int x = 0;
+ PhylogenyNode my_node = node;
+ if ( !getControlPanel().isDrawPhylogram() ) {
+ my_node = getPhylogeny().getFirstExternalNode();
+ }
+ if ( getControlPanel().isShowTaxonomyCode() && ( PhylogenyMethods.getSpecies( my_node ).length() > 0 ) ) {
+ x += getTreeFontSet()._fm_large_italic.stringWidth( PhylogenyMethods.getSpecies( my_node ) + " " );
+ }
+ if ( getControlPanel().isShowNodeNames() && ( my_node.getName().length() > 0 ) ) {
+ x += getTreeFontSet()._fm_large.stringWidth( my_node.getName() + " " );
+ }
+ rv.render( my_node.getXcoord() + x, node.getYcoord() - 5, g, this, to_pdf );
}
- rv.render( my_node.getXcoord() + x, node.getYcoord() - 5, g, this, to_pdf );
}
//////////////
}
}
node_ids.add( node.getId() );
getCopiedAndPastedNodes().addAll( node_ids );
- _nodes_in_preorder = null;
+ setNodeInPreorderToNull();
_phylogeny.externalNodesHaveChanged();
_phylogeny.hashIDs();
_phylogeny.recalculateNumberOfExternalDescendants( true );
getPhylogeny().reRoot( node );
getPhylogeny().recalculateNumberOfExternalDescendants( true );
resetNodeIdToDistToLeafMap();
- _nodes_in_preorder = null;
+ setNodeInPreorderToNull();
resetPreferredSize();
getMainPanel().adjustJScrollPane();
repaint();
* an instance of a Phylogeny
*/
public final void setTree( final Phylogeny t ) {
- _nodes_in_preorder = null;
+ setNodeInPreorderToNull();
_phylogeny = t;
}
+ final void setNodeInPreorderToNull() {
+ _nodes_in_preorder = null;
+ }
+
final void setTreeFile( final File treefile ) {
_treefile = treefile;
}
JOptionPane.WARNING_MESSAGE );
return;
}
- _nodes_in_preorder = null;
+ setNodeInPreorderToNull();
if ( !node.isExternal() && !node.isRoot() && ( _subtree_index <= ( TreePanel.MAX_SUBTREES - 1 ) ) ) {
_sub_phylogenies[ _subtree_index ] = _phylogeny;
_sub_phylogenies_temp_roots[ _subtree_index ] = node;
}
final void superTree() {
- _nodes_in_preorder = null;
+ setNodeInPreorderToNull();
final PhylogenyNode temp_root = _sub_phylogenies_temp_roots[ _subtree_index - 1 ];
for( final PhylogenyNode n : temp_root.getDescendants() ) {
n.setParent( temp_root );
final void swap( final PhylogenyNode node ) {
if ( !node.isExternal() ) {
_phylogeny.swapChildren( node );
- _nodes_in_preorder = null;
+ setNodeInPreorderToNull();
}
repaint();
}
-
+
+
+ final void sortDescendants( final PhylogenyNode node ) {
+ if ( !node.isExternal() ) {
+ PhylogenyMethods.sortNodeDescendents( node );
+ setNodeInPreorderToNull();
+ }
+ repaint();
+ }
+
+
final private void switchDisplaygetPhylogenyGraphicsType() {
switch ( getPhylogenyGraphicsType() ) {
case RECTANGULAR: