import org.forester.archaeopteryx.Options.PHYLOGENY_GRAPHICS_TYPE;
import org.forester.phylogeny.Phylogeny;
import org.forester.phylogeny.PhylogenyMethods;
+import org.forester.phylogeny.PhylogenyMethods.DESCENDANT_SORT_PRIORITY;
import org.forester.phylogeny.PhylogenyNode;
import org.forester.phylogeny.data.Sequence;
import org.forester.phylogeny.data.SequenceRelation;
+import org.forester.phylogeny.iterators.PhylogenyNodeIterator;
import org.forester.util.ForesterUtil;
final class ControlPanel extends JPanel implements ActionListener {
private JCheckBox _show_node_names;
private JCheckBox _show_taxo_code;
private JCheckBox _write_confidence;
- private JCheckBox _write_confidence_sd;
private JCheckBox _show_events;
private JCheckBox _color_acc_species;
private JCheckBox _color_branches_cb;
private int _subtree_cb_item;
private int _color_subtree_cb_item;
private int _open_seq_web_item;
+ private int _sort_descendents_item;
private int _open_tax_web_item;
private int _cut_subtree_item;
private int _copy_subtree_item;
showWhole();
}
else if ( e.getSource() == _order ) {
- tp.getPhylogeny().orderAppearance( _order_of_appearance );
+ DESCENDANT_SORT_PRIORITY pri = DESCENDANT_SORT_PRIORITY.TAXONOMY;
+ if ( ( !isShowTaxonomyScientificNames() && !isShowTaxonomyCode() && !isShowTaxonomyCommonNames() ) ) {
+ if ( ( isShowSequenceAcc() || isShowGeneNames() || isShowGeneSymbols() ) ) {
+ pri = DESCENDANT_SORT_PRIORITY.SEQUENCE;
+ }
+ else if ( isShowNodeNames() ) {
+ pri = DESCENDANT_SORT_PRIORITY.NODE_NAME;
+ }
+ }
+ PhylogenyMethods.orderAppearance( tp.getPhylogeny().getRoot(), _order_of_appearance, true, pri );
_order_of_appearance = !_order_of_appearance;
+ tp.setNodeInPreorderToNull();
+ tp.getPhylogeny().externalNodesHaveChanged();
+ tp.getPhylogeny().hashIDs();
+ tp.getPhylogeny().recalculateNumberOfExternalDescendants( true );
+ tp.resetNodeIdToDistToLeafMap();
+ tp.setEdited( true );
displayedPhylogenyMightHaveChanged( false );
}
else if ( e.getSource() == _uncollapse_all ) {
addJCheckBox( getWriteConfidenceCb(), ch_panel );
add( ch_panel );
break;
- case Configuration.write_confidence_values_sd:
- _write_confidence_sd = new JCheckBox( title );
- addJCheckBox( getWriteConfidenceSDCb(), ch_panel );
- add( ch_panel );
- break;
case Configuration.write_events:
_show_events = new JCheckBox( title );
addJCheckBox( getShowEventsCb(), ch_panel );
return _write_confidence;
}
- public JCheckBox getWriteConfidenceSDCb() {
- return _write_confidence_sd;
- }
-
private void init() {
_draw_phylogram = new ArrayList<Boolean>();
setSpeciesColors( new HashMap<String, Color>() );
return ( ( getWriteConfidenceCb() != null ) && getWriteConfidenceCb().isSelected() );
}
- boolean isShowConfidenceSDValues() {
- return ( ( getWriteConfidenceSDCb() != null ) && getWriteConfidenceSDCb().isSelected() );
- }
-
boolean isShowDomainArchitectures() {
return ( ( _show_domain_architectures != null ) && _show_domain_architectures.isSelected() );
}
getWriteConfidenceCb().setSelected( state );
}
break;
- case Configuration.write_confidence_values_sd:
- if ( getWriteConfidenceSDCb() != null ) {
- getWriteConfidenceSDCb().setSelected( state );
- }
- break;
case Configuration.write_events:
if ( getShowEventsCb() != null ) {
getShowEventsCb().setSelected( state );
else if ( action == _open_seq_web_item ) {
setActionWhenNodeClicked( NodeClickAction.OPEN_SEQ_WEB );
}
+ else if ( action == _sort_descendents_item ) {
+ setActionWhenNodeClicked( NodeClickAction.SORT_DESCENDENTS );
+ }
else if ( action == _blast_item ) {
- if ( !Constants.__RELEASE && !Constants.__SNAPSHOT_RELEASE ) {
- setActionWhenNodeClicked( NodeClickAction.BLAST );
- }
+ setActionWhenNodeClicked( NodeClickAction.BLAST );
}
else if ( action == _open_tax_web_item ) {
setActionWhenNodeClicked( NodeClickAction.OPEN_TAX_WEB );
}
cb_index++;
}
+ if ( _configuration.doDisplayClickToOption( Configuration.sort_descendents ) ) {
+ _sort_descendents_item = cb_index;
+ addClickToOption( Configuration.sort_descendents,
+ _configuration.getClickToTitle( Configuration.sort_descendents ) );
+ if ( default_option == Configuration.sort_descendents ) {
+ selected_index = cb_index;
+ }
+ cb_index++;
+ }
if ( _configuration.doDisplayClickToOption( Configuration.color_subtree ) ) {
_color_subtree_cb_item = cb_index;
addClickToOption( Configuration.color_subtree, _configuration.getClickToTitle( Configuration.color_subtree ) );
}
cb_index++;
}
+ if ( _configuration.doDisplayClickToOption( Configuration.blast ) ) {
+ _blast_item = cb_index;
+ addClickToOption( Configuration.blast, _configuration.getClickToTitle( Configuration.blast ) );
+ if ( default_option == Configuration.blast ) {
+ selected_index = cb_index;
+ }
+ cb_index++;
+ }
if ( getOptions().isEditable() ) {
if ( _configuration.doDisplayClickToOption( Configuration.cut_subtree ) ) {
_cut_subtree_item = cb_index;
}
cb_index++;
}
- if ( !Constants.__RELEASE && !Constants.__SNAPSHOT_RELEASE ) {
- if ( _configuration.doDisplayClickToOption( Configuration.blast ) ) {
- _blast_item = cb_index;
- addClickToOption( Configuration.blast, _configuration.getClickToTitle( Configuration.blast ) );
- if ( default_option == Configuration.blast ) {
- selected_index = cb_index;
- }
- cb_index++;
- }
- }
}
// Set default selection and its action
_click_to_combobox.setSelectedIndex( selected_index );
_configuration.getDisplayTitle( Configuration.write_confidence_values ) );
setCheckbox( Configuration.write_confidence_values,
_configuration.doCheckOption( Configuration.write_confidence_values ) );
- addCheckbox( Configuration.write_confidence_values_sd,
- _configuration.getDisplayTitle( Configuration.write_confidence_values_sd ) );
- setCheckbox( Configuration.write_confidence_values_sd,
- _configuration.doCheckOption( Configuration.write_confidence_values_sd ) );
}
if ( _configuration.doDisplayOption( Configuration.write_events ) ) {
addCheckbox( Configuration.write_events, _configuration.getDisplayTitle( Configuration.write_events ) );
if ( _mainpanel.getCurrentScrollPane() == null ) {
return;
}
- displayedPhylogenyMightHaveChanged( false );
+ getCurrentTreePanel().updateSetOfCollapsedExternalNodes();
+ displayedPhylogenyMightHaveChanged( true );
_mainpanel.getCurrentTreePanel().updateOvSettings();
_mainpanel.getCurrentTreePanel().validate();
_mainpanel.validate();
void uncollapseAll( final TreePanel tp ) {
final Phylogeny t = tp.getPhylogeny();
if ( ( t != null ) && !t.isEmpty() ) {
- t.setAllNodesToNotCollapse();
+ for( final PhylogenyNodeIterator iter = t.iteratorPreorder(); iter.hasNext(); ) {
+ final PhylogenyNode node = iter.next();
+ node.setCollapse( false );
+ }
+ tp.resetNodeIdToDistToLeafMap();
+ tp.updateSetOfCollapsedExternalNodes();
t.recalculateNumberOfExternalDescendants( false );
+ tp.setNodeInPreorderToNull();
+ t.hashIDs();
showWhole();
}
}
PASTE_SUBTREE,
ADD_NEW_NODE,
EDIT_NODE_DATA,
+ SORT_DESCENDENTS,
BLAST;
}
}