* @param remove_us the parent node of the subtree to be deleted
*/
public void deleteSubtree( final PhylogenyNode remove_us, final boolean collapse_resulting_node_with_one_desc ) {
- if ( isEmpty() ) {
+ if ( isEmpty() || ( remove_us.isRoot() && getNumberOfExternalNodes() != 1 ) ) {
return;
}
- if ( remove_us.isRoot() ) {
+ if ( remove_us.isRoot() && getNumberOfExternalNodes() == 1 ) {
init();
- return;
}
- if ( !collapse_resulting_node_with_one_desc ) {
+ else if ( !collapse_resulting_node_with_one_desc ) {
remove_us.getParent().removeChildNode( remove_us );
}
else {
}
}
}
- remove_us.setParent( null );
+ remove_us.reset();
setIdHash( null );
externalNodesHaveChanged();
}
public final class ForesterConstants {
- public final static String FORESTER_VERSION = "1.003";
- public final static String FORESTER_DATE = "120608";
+ public final static String FORESTER_VERSION = "1.004";
+ public final static String FORESTER_DATE = "120619";
public final static String PHYLO_XML_VERSION = "1.10";
public final static String PHYLO_XML_LOCATION = "http://www.phyloxml.org";