import java.util.HashSet;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import javax.swing.BorderFactory;
import javax.swing.DefaultListCellRenderer;
import org.forester.phylogeny.PhylogenyNode;
import org.forester.phylogeny.data.Sequence;
import org.forester.phylogeny.data.SequenceRelation;
+import org.forester.phylogeny.data.SequenceRelation.SEQUENCE_RELATION_TYPE;
import org.forester.phylogeny.iterators.PhylogenyNodeIterator;
import org.forester.util.ForesterUtil;
final class ControlPanel extends JPanel implements ActionListener {
- final static Font jcb_bold_font = new Font( Configuration.getDefaultFontFamilyName(),
- Font.BOLD,
- 9 );
- final static Font jcb_font = new Font( Configuration.getDefaultFontFamilyName(),
- Font.PLAIN,
- 9 );
- final static Font js_font = new Font( Configuration.getDefaultFontFamilyName(),
- Font.PLAIN,
- 9 );
- private static final String RETURN_TO_SUPER_TREE_TEXT = "Back to Super Tree";
- private static final long serialVersionUID = -8463483932821545633L;
- private NodeClickAction _action_when_node_clicked;
- private int _add_new_node_item;
- private Map<Integer, String> _all_click_to_names;
- private Map<String, Color> _annotation_colors;
- private int _blast_item;
- private JComboBox _click_to_combobox;
- private JLabel _click_to_label;
- private List<String> _click_to_names;
- private int _collapse_cb_item;
- private JCheckBox _color_acc_species;
- private JCheckBox _color_according_to_annotation;
- private boolean _color_branches;
- private JCheckBox _color_branches_cb;
- private int _color_subtree_cb_item;
+ final static Font jcb_bold_font = new Font( Configuration.getDefaultFontFamilyName(),
+ Font.BOLD,
+ 9 );
+ final static Font jcb_font = new Font( Configuration.getDefaultFontFamilyName(),
+ Font.PLAIN,
+ 9 );
+ final static Font js_font = new Font( Configuration.getDefaultFontFamilyName(),
+ Font.PLAIN,
+ 9 );
+ private static final String RETURN_TO_SUPER_TREE_TEXT = "Back to Super Tree";
+ private static final String SEARCH_TIP_TEXT = "Enter text to search for. Use ',' for logical OR and '+' for logical AND (not used in this manner for regular expression searches).";
+ private static final long serialVersionUID = -8463483932821545633L;
+ private NodeClickAction _action_when_node_clicked;
+ private int _add_new_node_item;
+ private Map<Integer, String> _all_click_to_names;
+ private Map<String, Color> _annotation_colors;
+ private int _blast_item;
+ private JComboBox<String> _click_to_combobox;
+ private JLabel _click_to_label;
+ private List<String> _click_to_names;
+ private int _collapse_cb_item;
+ private JCheckBox _color_acc_species;
+ private JCheckBox _color_acc_sequence;
+ private JCheckBox _color_according_to_annotation;
+ private boolean _color_branches;
+ private JCheckBox _use_visual_styles_cb;
+ private int _color_subtree_cb_item;
+ private int _change_node_font_item;
// The settings from the conf file
- private final Configuration _configuration;
- private int _copy_subtree_item;
- private int _cut_subtree_item;
- private JButton _decr_domain_structure_evalue_thr;
- private int _delete_node_or_subtree_item;
- private JCheckBox _display_as_phylogram_cb;
+ private final Configuration _configuration;
+ private int _copy_subtree_item;
+ private int _cut_subtree_item;
+ private JButton _decr_domain_structure_evalue_thr;
+ private int _delete_node_or_subtree_item;
+ private JCheckBox _display_as_phylogram_cb;
// Tree checkboxes
- private JCheckBox _display_internal_data;
- private JLabel _domain_display_label;
- private JTextField _domain_structure_evalue_thr_tf;
- private List<Boolean> _draw_phylogram;
- private JCheckBox _dynamically_hide_data;
- private int _edit_node_data_item;
- private int _get_ext_desc_data;
- private JButton _incr_domain_structure_evalue_thr;
- private final MainPanel _mainpanel;
- private JCheckBox _node_desc_popup_cb;
- private int _open_pdb_item;
- private int _open_seq_web_item;
- private int _open_tax_web_item;
- private JButton _order;
- private boolean _order_of_appearance;
- private int _paste_subtree_item;
- private int _reroot_cb_item;
- private JButton _return_to_super_tree;
- // Search
- private JLabel _search_found_label_0;
- private JLabel _search_found_label_1;
- private JButton _search_reset_button_0;
- private JButton _search_reset_button_1;
- private JTextField _search_tf_0;
- private JTextField _search_tf_1;
- private int _select_nodes_item;
- private Sequence _selected_query_seq;
- private JCheckBox _seq_relation_confidence_switch;
- private JComboBox _sequence_relation_type_box;
- private JCheckBox _show_annotation;
- private JCheckBox _show_binary_character_counts;
- private JCheckBox _show_binary_characters;
+ private JCheckBox _display_internal_data;
+ private JLabel _domain_display_label;
+ private JTextField _domain_structure_evalue_thr_tf;
+ private List<Boolean> _draw_phylogram;
+ private JCheckBox _dynamically_hide_data;
+ private int _edit_node_data_item;
+ private int _get_ext_desc_data;
+ private JButton _incr_domain_structure_evalue_thr;
+ private final MainPanel _mainpanel;
+ private JCheckBox _node_desc_popup_cb;
+ private int _open_pdb_item;
+ private int _open_seq_web_item;
+ private int _open_tax_web_item;
+ private int _color_node_font_item;
+ private JButton _order;
+ private boolean _order_of_appearance;
+ private int _paste_subtree_item;
+ private int _reroot_cb_item;
+ private JButton _return_to_super_tree;
+ // Search
+ private JLabel _search_found_label_0;
+ private JLabel _search_found_label_1;
+ private JButton _search_reset_button_0;
+ private JButton _search_reset_button_1;
+ private JTextField _search_tf_0;
+ private JTextField _search_tf_1;
+ private int _select_nodes_item;
+ private Sequence _selected_query_seq;
+ private JCheckBox _seq_relation_confidence_switch;
+ private JComboBox<SEQUENCE_RELATION_TYPE> _sequence_relation_type_box;
+ private JCheckBox _show_annotation;
+ private JCheckBox _show_binary_character_counts;
+ private JCheckBox _show_binary_characters;
// Indices for the click-to options in the combo box
- private int _show_data_item;
- private JCheckBox _show_domain_architectures;
- private JCheckBox _show_events;
- private JCheckBox _show_gene_names;
- private JCheckBox _show_node_names;
- private JCheckBox _show_properties_cb;
- private JCheckBox _show_seq_names;
- private JCheckBox _show_seq_symbols;
- private JCheckBox _show_sequence_acc;
- private JComboBox _show_sequence_relations;
- private JCheckBox _show_taxo_code;
- private JCheckBox _show_taxo_common_names;
- private JCheckBox _show_taxo_images_cb;
- private JCheckBox _show_taxo_scientific_names;
- private JCheckBox _show_vector_data_cb;
- private JButton _show_whole;
- private int _sort_descendents_item;
- private Map<String, Color> _species_colors;
- private int _subtree_cb_item;
- private int _swap_cb_item;
- private JButton _uncollapse_all;
- private JCheckBox _width_branches;
- private JCheckBox _write_confidence;
- private JButton _zoom_in_domain_structure;
- // zooming and quick tree manipulation buttons:
- private JButton _zoom_in_x;
- private JButton _zoom_in_y;
- private JLabel _zoom_label;
- private JButton _zoom_out_domain_structure;
- private JButton _zoom_out_x;
- private JButton _zoom_out_y;
+ private int _show_data_item;
+ private JCheckBox _show_domain_architectures;
+ private JCheckBox _show_mol_seqs;
+ private JCheckBox _write_branch_length_values;
+ private JCheckBox _show_events;
+ private JCheckBox _show_gene_names;
+ private JCheckBox _show_node_names;
+ private JCheckBox _show_properties_cb;
+ private JCheckBox _show_seq_names;
+ private JCheckBox _show_seq_symbols;
+ private JCheckBox _show_sequence_acc;
+ private JComboBox<String> _show_sequence_relations;
+ private JCheckBox _show_taxo_code;
+ private JCheckBox _show_taxo_common_names;
+ private JCheckBox _show_taxo_images_cb;
+ private JCheckBox _show_taxo_scientific_names;
+ private JCheckBox _show_vector_data_cb;
+ private JButton _show_whole;
+ private int _sort_descendents_item;
+ private Map<String, Color> _species_colors;
+ private Map<String, Color> _sequence_colors;
+ private int _subtree_cb_item;
+ private int _swap_cb_item;
+ private JButton _uncollapse_all;
+ private JCheckBox _width_branches;
+ private JCheckBox _write_confidence;
+ private JButton _zoom_in_domain_structure;
+ private JButton _zoom_in_x;
+ private JButton _zoom_in_y;
+ private JLabel _zoom_label;
+ private JButton _zoom_out_domain_structure;
+ private JButton _zoom_out_x;
+ private JButton _zoom_out_y;
ControlPanel( final MainPanel ap, final Configuration configuration ) {
init();
@Override
public void actionPerformed( final ActionEvent e ) {
try {
+ if ( e.getSource() == _color_acc_sequence ) {
+ if ( _color_acc_species != null ) {
+ _color_acc_species.setSelected( false );
+ }
+ }
+ else if ( e.getSource() == _color_acc_species ) {
+ if ( _color_acc_sequence != null ) {
+ _color_acc_sequence.setSelected( false );
+ }
+ }
final TreePanel tp = getMainPanel().getCurrentTreePanel();
if ( tp == null ) {
return;
displayedPhylogenyMightHaveChanged( false );
}
else if ( e.getSource() == _show_whole ) {
+ displayedPhylogenyMightHaveChanged( true );
showWhole();
}
else if ( e.getSource() == _return_to_super_tree ) {
showWhole();
}
else if ( e.getSource() == _order ) {
- DESCENDANT_SORT_PRIORITY pri = DESCENDANT_SORT_PRIORITY.TAXONOMY;
- if ( ( !isShowTaxonomyScientificNames() && !isShowTaxonomyCode() && !isShowTaxonomyCommonNames() ) ) {
- if ( ( isShowSequenceAcc() || isShowSeqNames() || isShowSeqSymbols() ) ) {
- pri = DESCENDANT_SORT_PRIORITY.SEQUENCE;
- }
- else if ( isShowNodeNames() ) {
- pri = DESCENDANT_SORT_PRIORITY.NODE_NAME;
- }
+ DESCENDANT_SORT_PRIORITY pri = DESCENDANT_SORT_PRIORITY.NODE_NAME;
+ if ( isShowTaxonomyScientificNames() || isShowTaxonomyCode() ) {
+ pri = DESCENDANT_SORT_PRIORITY.TAXONOMY;
+ }
+ else if ( isShowSeqNames() || isShowSeqSymbols() || isShowGeneNames() ) {
+ pri = DESCENDANT_SORT_PRIORITY.SEQUENCE;
}
PhylogenyMethods.orderAppearance( tp.getPhylogeny().getRoot(), _order_of_appearance, true, pri );
_order_of_appearance = !_order_of_appearance;
tp.getPhylogeny().recalculateNumberOfExternalDescendants( true );
tp.resetNodeIdToDistToLeafMap();
tp.setEdited( true );
- displayedPhylogenyMightHaveChanged( false );
+ displayedPhylogenyMightHaveChanged( true );
}
else if ( e.getSource() == _uncollapse_all ) {
uncollapseAll( tp );
displayedPhylogenyMightHaveChanged( true );
}
else if ( e.getSource() == _decr_domain_structure_evalue_thr ) {
- _mainpanel.getCurrentTreePanel().decreaseDomainStructureEvalueThreshold();
+ _mainpanel.getCurrentTreePanel().decreaseDomainStructureEvalueThresholdExp();
+ search0();
+ search1();
displayedPhylogenyMightHaveChanged( true );
}
else if ( e.getSource() == _incr_domain_structure_evalue_thr ) {
- _mainpanel.getCurrentTreePanel().increaseDomainStructureEvalueThreshold();
+ _mainpanel.getCurrentTreePanel().increaseDomainStructureEvalueThresholdExp();
+ search0();
+ search1();
displayedPhylogenyMightHaveChanged( true );
}
else if ( e.getSource() == _search_tf_0 ) {
search1();
displayedPhylogenyMightHaveChanged( true );
}
+ else if ( ( _dynamically_hide_data != null ) && ( e.getSource() == _dynamically_hide_data )
+ && !_dynamically_hide_data.isSelected() ) {
+ setDynamicHidingIsOn( false );
+ displayedPhylogenyMightHaveChanged( true );
+ }
else {
displayedPhylogenyMightHaveChanged( true );
}
return _color_acc_species;
}
- public JCheckBox getColorBranchesCb() {
- return _color_branches_cb;
+ public JCheckBox getColorAccSequenceCb() {
+ return _color_acc_sequence;
+ }
+
+ public JCheckBox getUseVisualStylesCb() {
+ return _use_visual_styles_cb;
}
public JCheckBox getDisplayAsPhylogramCb() {
return _selected_query_seq;
}
- public JComboBox getSequenceRelationBox() {
+ public JComboBox<String> getSequenceRelationBox() {
if ( _show_sequence_relations == null ) {
- _show_sequence_relations = new JComboBox();
+ _show_sequence_relations = new JComboBox<String>();
_show_sequence_relations.setFocusable( false );
_show_sequence_relations.setMaximumRowCount( 20 );
_show_sequence_relations.setFont( ControlPanel.js_font );
}
/* GUILHEM_BEG */
- public JComboBox getSequenceRelationTypeBox() {
+ public JComboBox<SEQUENCE_RELATION_TYPE> getSequenceRelationTypeBox() {
if ( _sequence_relation_type_box == null ) {
- _sequence_relation_type_box = new JComboBox();
+ _sequence_relation_type_box = new JComboBox<SEQUENCE_RELATION_TYPE>();
for( final SequenceRelation.SEQUENCE_RELATION_TYPE type : SequenceRelation.SEQUENCE_RELATION_TYPE.values() ) {
_sequence_relation_type_box.addItem( type );
}
}
public void setSequenceRelationQueries( final Collection<Sequence> sequenceRelationQueries ) {
- final JComboBox box = getSequenceRelationBox();
+ final JComboBox<String> box = getSequenceRelationBox();
while ( box.getItemCount() > 1 ) {
box.removeItemAt( 1 );
}
break;
case Configuration.color_according_to_species:
_color_acc_species = new JCheckBox( title );
- _color_acc_species
- .setToolTipText( "To colorize taxonomy and sequence labels as a function of taxonomy" );
+ _color_acc_species.setToolTipText( "To colorize node labels as a function of taxonomy" );
addJCheckBox( _color_acc_species, ch_panel );
add( ch_panel );
break;
+ case Configuration.color_according_to_sequence:
+ _color_acc_sequence = new JCheckBox( title );
+ _color_acc_sequence.setToolTipText( "To colorize node labels as a function of sequence name" );
+ addJCheckBox( _color_acc_sequence, ch_panel );
+ add( ch_panel );
+ break;
case Configuration.color_according_to_annotation:
_color_according_to_annotation = new JCheckBox( title );
_color_according_to_annotation
addJCheckBox( getShowEventsCb(), ch_panel );
add( ch_panel );
break;
- case Configuration.color_branches:
- _color_branches_cb = new JCheckBox( title );
- getColorBranchesCb().setToolTipText( "To use branch color values, if present" );
- addJCheckBox( getColorBranchesCb(), ch_panel );
+ case Configuration.use_style:
+ _use_visual_styles_cb = new JCheckBox( title );
+ getUseVisualStylesCb()
+ .setToolTipText( "To use visual styles (node colors, fonts) and branch colors, if present" );
+ addJCheckBox( getUseVisualStylesCb(), ch_panel );
add( ch_panel );
break;
case Configuration.width_branches:
addJCheckBox( _width_branches, ch_panel );
add( ch_panel );
break;
+ case Configuration.write_branch_length_values:
+ _write_branch_length_values = new JCheckBox( title );
+ addJCheckBox( _write_branch_length_values, ch_panel );
+ add( ch_panel );
+ break;
case Configuration.show_domain_architectures:
_show_domain_architectures = new JCheckBox( title );
addJCheckBox( _show_domain_architectures, ch_panel );
add( ch_panel );
break;
+ case Configuration.show_mol_seqs:
+ _show_mol_seqs = new JCheckBox( title );
+ addJCheckBox( _show_mol_seqs, ch_panel );
+ add( ch_panel );
+ break;
case Configuration.show_seq_names:
_show_seq_names = new JCheckBox( title );
addJCheckBox( _show_seq_names, ch_panel );
break;
case Configuration.dynamically_hide_data:
_dynamically_hide_data = new JCheckBox( title );
- getDynamicallyHideData().setToolTipText( "To hide labels depending on likely visibility" );
+ getDynamicallyHideData().setToolTipText( "To hide labels depending on expected visibility" );
addJCheckBox( getDynamicallyHideData(), ch_panel );
add( ch_panel );
break;
/**
* Indicates what action should be execute when a node is clicked
- *
+ *
* @return the click-on action
*/
NodeClickAction getActionWhenNodeClicked() {
return _species_colors;
}
+ Map<String, Color> getSequenceColors() {
+ return _sequence_colors;
+ }
+
boolean isAntialiasScreenText() {
return true;
}
return ( ( _color_acc_species != null ) && _color_acc_species.isSelected() );
}
- boolean isColorBranches() {
- return ( ( ( getColorBranchesCb() != null ) && getColorBranchesCb().isSelected() ) || ( ( getColorBranchesCb() == null ) && _color_branches ) );
+ boolean isColorAccordingToSequence() {
+ return ( ( _color_acc_sequence != null ) && _color_acc_sequence.isSelected() );
+ }
+
+ boolean isUseVisualStyles() {
+ return ( ( ( getUseVisualStylesCb() != null ) && getUseVisualStylesCb().isSelected() ) || ( ( getUseVisualStylesCb() == null ) && _color_branches ) );
}
boolean isDrawPhylogram() {
return ( ( getWriteConfidenceCb() != null ) && getWriteConfidenceCb().isSelected() );
}
+ boolean isWriteBranchLengthValues() {
+ return ( ( _write_branch_length_values != null ) && _write_branch_length_values.isSelected() );
+ }
+
boolean isShowDomainArchitectures() {
return ( ( _show_domain_architectures != null ) && _show_domain_architectures.isSelected() );
}
+ public boolean isShowMolSequences() {
+ return ( ( _show_mol_seqs != null ) && _show_mol_seqs.isSelected() );
+ }
+
boolean isShowGeneNames() {
return ( ( _show_gene_names != null ) && _show_gene_names.isSelected() );
}
_color_acc_species.setSelected( state );
}
break;
+ case Configuration.color_according_to_sequence:
+ if ( _color_acc_sequence != null ) {
+ _color_acc_sequence.setSelected( state );
+ }
+ break;
case Configuration.color_according_to_annotation:
if ( _color_according_to_annotation != null ) {
_color_according_to_annotation.setSelected( state );
getShowEventsCb().setSelected( state );
}
break;
- case Configuration.color_branches:
- if ( getColorBranchesCb() != null ) {
- getColorBranchesCb().setSelected( state );
+ case Configuration.use_style:
+ if ( getUseVisualStylesCb() != null ) {
+ getUseVisualStylesCb().setSelected( state );
}
break;
case Configuration.width_branches:
_show_domain_architectures.setSelected( state );
}
break;
+ case Configuration.write_branch_length_values:
+ if ( _write_branch_length_values != null ) {
+ _write_branch_length_values.setSelected( state );
+ }
+ break;
+ case Configuration.show_mol_seqs:
+ if ( _show_mol_seqs != null ) {
+ _show_mol_seqs.setSelected( state );
+ }
+ break;
case Configuration.show_seq_names:
if ( _show_seq_names != null ) {
_show_seq_names.setSelected( state );
else if ( action == _open_pdb_item ) {
setActionWhenNodeClicked( NodeClickAction.OPEN_PDB_WEB );
}
+ else if ( action == _color_node_font_item ) {
+ setActionWhenNodeClicked( NodeClickAction.COLOR_NODE_FONT );
+ }
+ else if ( action == _change_node_font_item ) {
+ setActionWhenNodeClicked( NodeClickAction.CHANGE_NODE_FONT );
+ }
else {
throw new RuntimeException( "unknown action: " + action );
}
}
void setDynamicHidingIsOn( final boolean is_on ) {
- // if ( !_configuration.isUseNativeUI() ) {
if ( is_on ) {
getDynamicallyHideData().setForeground( getConfiguration().getGuiCheckboxAndButtonActiveColor() );
}
getDynamicallyHideData().setForeground( Color.BLACK );
}
}
- // }
}
void setSearchFoundCountsOnLabel0( final int counts ) {
_species_colors = species_colors;
}
- /* GUILHEM_END */
- /*
- * Set up the controls from the config settings. 11/26/05
- */
+ void setSequenceColors( final Map<String, Color> sequence_colors ) {
+ _sequence_colors = sequence_colors;
+ }
+
void setupControls() {
// The tree display options:
setupDisplayCheckboxes();
}
void setUpControlsForDomainStrucures() {
- _domain_display_label = new JLabel( "Domain Display:" );
+ _domain_display_label = new JLabel( "Domain Architectures:" );
add( customizeLabel( _domain_display_label, getConfiguration() ) );
add( _domain_display_label );
_zoom_in_domain_structure = new JButton( "d+" );
}
void setupSearchTools0() {
- final String tip = "Enter text to search for. Use ',' for multiple searches (logical OR) and '+' for logical AND.";
final JLabel search_label = new JLabel( "Search (A):" );
search_label.setFont( ControlPanel.jcb_bold_font );
if ( !getConfiguration().isUseNativeUI() ) {
search_label.setForeground( getConfiguration().getGuiCheckboxTextColor() );
}
add( search_label );
- search_label.setToolTipText( tip );
+ search_label.setToolTipText( SEARCH_TIP_TEXT );
_search_found_label_0 = new JLabel();
getSearchFoundCountsLabel0().setVisible( false );
_search_found_label_0.setFont( ControlPanel.jcb_bold_font );
_search_found_label_0.setForeground( getConfiguration().getGuiCheckboxTextColor() );
}
_search_tf_0 = new JTextField( 3 );
- _search_tf_0.setToolTipText( tip );
+ _search_tf_0.setToolTipText( SEARCH_TIP_TEXT );
_search_tf_0.setEditable( true );
if ( !getConfiguration().isUseNativeUI() ) {
_search_tf_0.setForeground( getConfiguration().getGuiMenuBackgroundColor() );
}
void setupSearchTools1() {
- final String tip = "Enter text to search for. Use ',' for multiple searches (logical OR) and '+' for logical AND.";
final JLabel search_label = new JLabel( "Search (B):" );
search_label.setFont( ControlPanel.jcb_bold_font );
if ( !getConfiguration().isUseNativeUI() ) {
search_label.setForeground( getConfiguration().getGuiCheckboxTextColor() );
}
add( search_label );
- search_label.setToolTipText( tip );
+ search_label.setToolTipText( SEARCH_TIP_TEXT );
_search_found_label_1 = new JLabel();
getSearchFoundCountsLabel1().setVisible( false );
_search_found_label_1.setFont( ControlPanel.jcb_bold_font );
_search_found_label_1.setForeground( getConfiguration().getGuiCheckboxTextColor() );
}
_search_tf_1 = new JTextField( 3 );
- _search_tf_1.setToolTipText( tip );
+ _search_tf_1.setToolTipText( SEARCH_TIP_TEXT );
_search_tf_1.setEditable( true );
if ( !getConfiguration().isUseNativeUI() ) {
_search_tf_1.setForeground( getConfiguration().getGuiMenuBackgroundColor() );
if ( _color_acc_species != null ) {
_color_acc_species.setSelected( false );
}
+ if ( _color_acc_sequence != null ) {
+ _color_acc_sequence.setSelected( false );
+ }
_mainpanel.getCurrentTreePanel().repaint();
}
_mainpanel.getCurrentTreePanel().validate();
_mainpanel.validate();
_mainpanel.getCurrentTreePanel().calcParametersForPainting( _mainpanel.getSizeOfViewport().width,
- _mainpanel.getSizeOfViewport().height,
- true );
+ _mainpanel.getSizeOfViewport().height );
_mainpanel.getCurrentTreePanel().resetPreferredSize();
_mainpanel.adjustJScrollPane();
_mainpanel.getCurrentTreePanel().repaint();
_mainpanel.getCurrentTreePanel().validate();
_mainpanel.validate();
_mainpanel.getCurrentTreePanel().calcParametersForPainting( _mainpanel.getSizeOfViewport().width,
- _mainpanel.getSizeOfViewport().height,
- true );
+ _mainpanel.getSizeOfViewport().height );
_mainpanel.getCurrentTreePanel().resetPreferredSize();
_mainpanel.adjustJScrollPane();
_mainpanel.getCurrentTreePanel().repaint();
if ( tree_panel != null ) {
tree_panel.validate();
tree_panel.calcParametersForPainting( _mainpanel.getSizeOfViewport().width,
- _mainpanel.getSizeOfViewport().height,
- true );
+ _mainpanel.getSizeOfViewport().height );
tree_panel.resetPreferredSize();
tree_panel.repaint();
}
add( spacer );
_click_to_label = new JLabel( "Click on Node to:" );
add( customizeLabel( _click_to_label, getConfiguration() ) );
- _click_to_combobox = new JComboBox();
+ _click_to_combobox = new JComboBox<String>();
_click_to_combobox.setFocusable( false );
_click_to_combobox.setMaximumRowCount( 14 );
_click_to_combobox.setFont( ControlPanel.js_font );
void updateDomainStructureEvaluethresholdDisplay() {
if ( _domain_structure_evalue_thr_tf != null ) {
_domain_structure_evalue_thr_tf.setText( "10^"
- + getMainPanel().getCurrentTreePanel().getDomainStructureEvalueThreshold() );
+ + getMainPanel().getCurrentTreePanel().getDomainStructureEvalueThresholdExp() );
}
}
_sequence_relation_type_box.setBackground( getConfiguration().getGuiButtonBackgroundColor() );
_sequence_relation_type_box.setForeground( getConfiguration().getGuiButtonTextColor() );
}
- _sequence_relation_type_box.setRenderer( new ListCellRenderer() {
+ _sequence_relation_type_box.setRenderer( new ListCellRenderer<Object>() {
@Override
- public Component getListCellRendererComponent( final JList list,
+ public Component getListCellRendererComponent( final JList<?> list,
final Object value,
final int index,
final boolean isSelected,
private void init() {
_draw_phylogram = new ArrayList<Boolean>();
setSpeciesColors( new HashMap<String, Color>() );
+ setSequenceColors( new HashMap<String, Color>() );
setAnnotationColors( new HashMap<String, Color>() );
}
getSearchResetButton0().setEnabled( true );
getSearchResetButton0().setVisible( true );
String[] queries = null;
- List<PhylogenyNode> nodes = null;
- if ( query_str.indexOf( ',' ) >= 0 ) {
+ Set<PhylogenyNode> nodes = null;
+ if ( ( query_str.indexOf( ',' ) >= 0 ) && !getOptions().isSearchWithRegex() ) {
queries = query_str.split( ",+" );
}
else {
queries[ 0 ] = query_str.trim();
}
if ( ( queries != null ) && ( queries.length > 0 ) ) {
- nodes = new ArrayList<PhylogenyNode>();
+ nodes = new HashSet<PhylogenyNode>();
for( String query : queries ) {
if ( ForesterUtil.isEmpty( query ) ) {
continue;
}
query = query.trim();
- if ( query.indexOf( '+' ) >= 0 ) {
+ final TreePanel tp = getMainPanel().getCurrentTreePanel();
+ if ( ( query.indexOf( '+' ) > 0 ) && !getOptions().isSearchWithRegex() ) {
nodes.addAll( PhylogenyMethods.searchDataLogicalAnd( query.split( "\\++" ),
tree,
getOptions().isSearchCaseSensitive(),
!getOptions().isMatchWholeTermsOnly(),
- isShowDomainArchitectures() ) );
+ isShowDomainArchitectures(),
+ tp != null ? Math.pow( 10,
+ tp.getDomainStructureEvalueThresholdExp() )
+ : 0 ) );
}
else {
nodes.addAll( PhylogenyMethods.searchData( query,
tree,
getOptions().isSearchCaseSensitive(),
!getOptions().isMatchWholeTermsOnly(),
- isShowDomainArchitectures() ) );
+ getOptions().isSearchWithRegex(),
+ isShowDomainArchitectures(),
+ tp != null ? Math.pow( 10, tp
+ .getDomainStructureEvalueThresholdExp() ) : 0 ) );
}
}
if ( getOptions().isInverseSearchResult() ) {
final List<PhylogenyNode> all = PhylogenyMethods.obtainAllNodesAsList( tree );
all.removeAll( nodes );
- nodes = all;
+ nodes = new HashSet<PhylogenyNode>();
+ nodes.addAll( all );
}
}
if ( ( nodes != null ) && ( nodes.size() > 0 ) ) {
getSearchResetButton1().setEnabled( true );
getSearchResetButton1().setVisible( true );
String[] queries = null;
- List<PhylogenyNode> nodes = null;
- if ( query_str.indexOf( ',' ) >= 0 ) {
+ Set<PhylogenyNode> nodes = null;
+ if ( ( query_str.indexOf( ',' ) >= 0 ) && !getOptions().isSearchWithRegex() ) {
queries = query_str.split( ",+" );
}
else {
queries[ 0 ] = query_str.trim();
}
if ( ( queries != null ) && ( queries.length > 0 ) ) {
- nodes = new ArrayList<PhylogenyNode>();
+ nodes = new HashSet<PhylogenyNode>();
for( String query : queries ) {
if ( ForesterUtil.isEmpty( query ) ) {
continue;
}
query = query.trim();
- if ( query.indexOf( '+' ) >= 0 ) {
+ final TreePanel tp = getMainPanel().getCurrentTreePanel();
+ if ( ( query.indexOf( '+' ) > 0 ) && !getOptions().isSearchWithRegex() ) {
nodes.addAll( PhylogenyMethods.searchDataLogicalAnd( query.split( "\\++" ),
tree,
getOptions().isSearchCaseSensitive(),
!getOptions().isMatchWholeTermsOnly(),
- isShowDomainArchitectures() ) );
+ isShowDomainArchitectures(),
+ tp != null ? Math.pow( 10,
+ tp.getDomainStructureEvalueThresholdExp() )
+ : 0 ) );
}
else {
nodes.addAll( PhylogenyMethods.searchData( query,
tree,
getOptions().isSearchCaseSensitive(),
!getOptions().isMatchWholeTermsOnly(),
- isShowDomainArchitectures() ) );
+ getOptions().isSearchWithRegex(),
+ isShowDomainArchitectures(),
+ tp != null ? Math.pow( 10, tp
+ .getDomainStructureEvalueThresholdExp() ) : 0 ) );
}
}
if ( getOptions().isInverseSearchResult() ) {
final List<PhylogenyNode> all = PhylogenyMethods.obtainAllNodesAsList( tree );
all.removeAll( nodes );
- nodes = all;
+ nodes = new HashSet<PhylogenyNode>();
+ nodes.addAll( all );
}
}
if ( ( nodes != null ) && ( nodes.size() > 0 ) ) {
}
cb_index++;
}
+ if ( _configuration.doDisplayClickToOption( Configuration.color_node_font ) ) {
+ _color_node_font_item = cb_index;
+ addClickToOption( Configuration.color_node_font,
+ _configuration.getClickToTitle( Configuration.color_node_font ) );
+ if ( default_option == Configuration.color_node_font ) {
+ selected_index = cb_index;
+ }
+ cb_index++;
+ }
+ if ( _configuration.doDisplayClickToOption( Configuration.change_node_font ) ) {
+ _change_node_font_item = cb_index;
+ addClickToOption( Configuration.change_node_font,
+ _configuration.getClickToTitle( Configuration.change_node_font ) );
+ if ( default_option == Configuration.change_node_font ) {
+ 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 ) );
_get_ext_desc_data = cb_index;
if ( !ForesterUtil.isEmpty( getConfiguration().getLabelForGetExtDescendentsData() ) ) {
addClickToOption( Configuration.get_ext_desc_data, getConfiguration()
- .getLabelForGetExtDescendentsData() );
+ .getLabelForGetExtDescendentsData() );
}
else {
- String s = ";";
- switch ( getConfiguration().getExtDescNodeDataToReturn() ) {
- case NODE_NAME:
- s = "Node Names";
- break;
- case SEQUENCE_ACC:
- s = "Sequence Accessors";
- break;
- case SEQUENCE_MOL_SEQ:
- s = "Molecular Sequence";
- break;
- case SEQUENCE_MOL_SEQ_FASTA:
- s = "Molecular Sequence (Fasta)";
- break;
- case SEQUENCE_NAME:
- s = "Sequence Names";
- break;
- case GENE_NAME:
- s = "Gene Names";
- break;
- case SEQUENCE_SYMBOL:
- s = "Sequence Symbols";
- break;
- case TAXONOMY_CODE:
- s = "Taxonomy Codes";
- break;
- case TAXONOMY_COMM0N_NAME:
- s = "Taxonomy Common Names";
- break;
- case TAXONOMY_SCIENTIFIC_NAME:
- s = "Scientific Names";
- break;
- case UNKNOWN:
- s = "User Selected Data";
- break;
- }
- final String label = _configuration.getClickToTitle( Configuration.get_ext_desc_data ) + " " + s;
- addClickToOption( Configuration.get_ext_desc_data, label );
+ addClickToOption( Configuration.get_ext_desc_data,
+ getConfiguration().getClickToTitle( Configuration.get_ext_desc_data ) );
}
if ( default_option == Configuration.get_ext_desc_data ) {
selected_index = cb_index;
setCheckbox( Configuration.display_internal_data,
_configuration.doCheckOption( Configuration.display_internal_data ) );
}
+ if ( _configuration.doDisplayOption( Configuration.color_according_to_sequence ) ) {
+ addCheckbox( Configuration.color_according_to_sequence,
+ _configuration.getDisplayTitle( Configuration.color_according_to_sequence ) );
+ setCheckbox( Configuration.color_according_to_sequence,
+ _configuration.doCheckOption( Configuration.color_according_to_sequence ) );
+ }
if ( _configuration.doDisplayOption( Configuration.color_according_to_species ) ) {
addCheckbox( Configuration.color_according_to_species,
_configuration.getDisplayTitle( Configuration.color_according_to_species ) );
setCheckbox( Configuration.color_according_to_annotation,
_configuration.doCheckOption( Configuration.color_according_to_annotation ) );
}
- if ( _configuration.doDisplayOption( Configuration.color_branches ) ) {
- addCheckbox( Configuration.color_branches, _configuration.getDisplayTitle( Configuration.color_branches ) );
- setCheckbox( Configuration.color_branches, _configuration.doCheckOption( Configuration.color_branches ) );
+ if ( _configuration.doDisplayOption( Configuration.use_style ) ) {
+ addCheckbox( Configuration.use_style, _configuration.getDisplayTitle( Configuration.use_style ) );
+ setCheckbox( Configuration.use_style, _configuration.doCheckOption( Configuration.use_style ) );
}
if ( _configuration.doDisplayOption( Configuration.width_branches ) ) {
addCheckbox( Configuration.width_branches, _configuration.getDisplayTitle( Configuration.width_branches ) );
addCheckbox( Configuration.show_annotation, _configuration.getDisplayTitle( Configuration.show_annotation ) );
setCheckbox( Configuration.show_annotation, _configuration.doCheckOption( Configuration.show_annotation ) );
}
+ if ( _configuration.doDisplayOption( Configuration.write_confidence_values ) ) {
+ addCheckbox( Configuration.write_confidence_values,
+ _configuration.getDisplayTitle( Configuration.write_confidence_values ) );
+ setCheckbox( Configuration.write_confidence_values,
+ _configuration.doCheckOption( Configuration.write_confidence_values ) );
+ }
+ if ( _configuration.doDisplayOption( Configuration.write_branch_length_values ) ) {
+ addCheckbox( Configuration.write_branch_length_values,
+ _configuration.getDisplayTitle( Configuration.write_branch_length_values ) );
+ setCheckbox( Configuration.write_branch_length_values,
+ _configuration.doCheckOption( Configuration.write_branch_length_values ) );
+ }
if ( _configuration.doDisplayOption( Configuration.show_binary_characters ) ) {
addCheckbox( Configuration.show_binary_characters,
_configuration.getDisplayTitle( Configuration.show_binary_characters ) );
setCheckbox( Configuration.show_domain_architectures,
_configuration.doCheckOption( Configuration.show_domain_architectures ) );
}
- if ( _configuration.doDisplayOption( Configuration.write_confidence_values ) ) {
- addCheckbox( Configuration.write_confidence_values,
- _configuration.getDisplayTitle( Configuration.write_confidence_values ) );
- setCheckbox( Configuration.write_confidence_values,
- _configuration.doCheckOption( Configuration.write_confidence_values ) );
+ if ( _configuration.doDisplayOption( Configuration.show_mol_seqs ) ) {
+ addCheckbox( Configuration.show_mol_seqs, _configuration.getDisplayTitle( Configuration.show_mol_seqs ) );
+ setCheckbox( Configuration.show_mol_seqs, _configuration.doCheckOption( Configuration.show_mol_seqs ) );
}
if ( _configuration.doDisplayOption( Configuration.write_events ) ) {
addCheckbox( Configuration.write_events, _configuration.getDisplayTitle( Configuration.write_events ) );
private void setVisibilityOfDomainStrucureControls() {
if ( _zoom_in_domain_structure != null ) {
- if ( isShowDomainArchitectures() ) {
- _domain_display_label.setVisible( true );
- _zoom_in_domain_structure.setVisible( true );
- _zoom_out_domain_structure.setVisible( true );
- _decr_domain_structure_evalue_thr.setVisible( true );
- _incr_domain_structure_evalue_thr.setVisible( true );
- _domain_structure_evalue_thr_tf.setVisible( true );
+ final MainFrame mf = getMainFrame();
+ if ( mf != null ) {
+ if ( isShowDomainArchitectures() ) {
+ _domain_display_label.setVisible( true );
+ _zoom_in_domain_structure.setVisible( true );
+ _zoom_out_domain_structure.setVisible( true );
+ _decr_domain_structure_evalue_thr.setVisible( true );
+ _incr_domain_structure_evalue_thr.setVisible( true );
+ _domain_structure_evalue_thr_tf.setVisible( true );
+ if ( mf._right_line_up_domains_cbmi != null ) {
+ mf._right_line_up_domains_cbmi.setVisible( true );
+ }
+ if ( mf._show_domain_labels != null ) {
+ mf._show_domain_labels.setVisible( true );
+ }
+ }
+ else {
+ _domain_display_label.setVisible( false );
+ _zoom_in_domain_structure.setVisible( false );
+ _zoom_out_domain_structure.setVisible( false );
+ _decr_domain_structure_evalue_thr.setVisible( false );
+ _incr_domain_structure_evalue_thr.setVisible( false );
+ _domain_structure_evalue_thr_tf.setVisible( false );
+ if ( mf._right_line_up_domains_cbmi != null ) {
+ mf._right_line_up_domains_cbmi.setVisible( false );
+ }
+ if ( mf._show_domain_labels != null ) {
+ mf._show_domain_labels.setVisible( false );
+ }
+ }
+ }
+ }
+ }
+
+ // This takes care of ArchaeopteryxE-issue.
+ // Can, and will, return null prior to ArchaeopteryxE initialization completion.
+ final private MainFrame getMainFrame() {
+ MainFrame mf = getMainPanel().getMainFrame();
+ if ( mf == null ) {
+ // Must be "E" applet version.
+ final ArchaeopteryxE e = ( ArchaeopteryxE ) ( ( MainPanelApplets ) getMainPanel() ).getApplet();
+ if ( e.getMainPanel() == null ) {
+ return null;
+ }
+ mf = e.getMainPanel().getMainFrame();
+ }
+ return mf;
+ }
+
+ void setVisibilityOfX() {
+ final MainFrame mf = getMainFrame();
+ if ( mf != null ) {
+ if ( ( getCurrentTreePanel() != null ) && ( getCurrentTreePanel().getPhylogeny() != null ) ) {
+ if ( AptxUtil.isHasAtLeastOneBranchWithSupportSD( getCurrentTreePanel().getPhylogeny() ) ) {
+ if ( mf._show_confidence_stddev_cbmi != null ) {
+ mf._show_confidence_stddev_cbmi.setVisible( true );
+ }
+ }
+ else {
+ if ( mf._show_confidence_stddev_cbmi != null ) {
+ mf._show_confidence_stddev_cbmi.setVisible( false );
+ }
+ }
+ if ( AptxUtil.isHasAtLeastOneNodeWithScientificName( getCurrentTreePanel().getPhylogeny() ) ) {
+ if ( mf._abbreviate_scientific_names != null ) {
+ mf._abbreviate_scientific_names.setVisible( true );
+ }
+ }
+ else {
+ if ( mf._abbreviate_scientific_names != null ) {
+ mf._abbreviate_scientific_names.setVisible( false );
+ }
+ }
+ if ( AptxUtil.isHasAtLeastOneNodeWithSequenceAnnotation( getCurrentTreePanel().getPhylogeny() ) ) {
+ if ( mf._show_annotation_ref_source != null ) {
+ mf._show_annotation_ref_source.setVisible( true );
+ }
+ }
+ else {
+ if ( mf._show_annotation_ref_source != null ) {
+ mf._show_annotation_ref_source.setVisible( false );
+ }
+ }
+ }
+ if ( isDrawPhylogram()
+ || ( ( getCurrentTreePanel() != null ) && ( ( getCurrentTreePanel().getPhylogenyGraphicsType() == PHYLOGENY_GRAPHICS_TYPE.CIRCULAR ) || ( getCurrentTreePanel()
+ .getPhylogenyGraphicsType() == PHYLOGENY_GRAPHICS_TYPE.UNROOTED ) ) ) ) {
+ if ( mf._non_lined_up_cladograms_rbmi != null ) {
+ mf._non_lined_up_cladograms_rbmi.setVisible( false );
+ }
+ if ( mf._uniform_cladograms_rbmi != null ) {
+ mf._uniform_cladograms_rbmi.setVisible( false );
+ }
+ if ( mf._ext_node_dependent_cladogram_rbmi != null ) {
+ mf._ext_node_dependent_cladogram_rbmi.setVisible( false );
+ }
+ }
+ else {
+ if ( mf._non_lined_up_cladograms_rbmi != null ) {
+ mf._non_lined_up_cladograms_rbmi.setVisible( true );
+ }
+ if ( mf._uniform_cladograms_rbmi != null ) {
+ mf._uniform_cladograms_rbmi.setVisible( true );
+ }
+ if ( mf._ext_node_dependent_cladogram_rbmi != null ) {
+ mf._ext_node_dependent_cladogram_rbmi.setVisible( true );
+ }
+ }
+ if ( isDrawPhylogram() ) {
+ if ( mf._show_scale_cbmi != null ) {
+ mf._show_scale_cbmi.setVisible( true );
+ }
}
else {
- _domain_display_label.setVisible( false );
- _zoom_in_domain_structure.setVisible( false );
- _zoom_out_domain_structure.setVisible( false );
- _decr_domain_structure_evalue_thr.setVisible( false );
- _incr_domain_structure_evalue_thr.setVisible( false );
- _domain_structure_evalue_thr_tf.setVisible( false );
+ if ( mf._show_scale_cbmi != null ) {
+ mf._show_scale_cbmi.setVisible( false );
+ }
}
+ if ( getCurrentTreePanel() != null ) {
+ if ( ( getCurrentTreePanel().getPhylogenyGraphicsType() == PHYLOGENY_GRAPHICS_TYPE.CIRCULAR )
+ || ( getCurrentTreePanel().getPhylogenyGraphicsType() == PHYLOGENY_GRAPHICS_TYPE.UNROOTED ) ) {
+ if ( mf._label_direction_cbmi != null ) {
+ mf._label_direction_cbmi.setVisible( true );
+ }
+ }
+ else {
+ if ( mf._label_direction_cbmi != null ) {
+ mf._label_direction_cbmi.setVisible( false );
+ }
+ }
+ }
+ }
+ }
+
+ void setVisibilityOfDomainStrucureCB() {
+ try {
+ if ( ( getCurrentTreePanel() != null )
+ && ( ( getCurrentTreePanel().getPhylogenyGraphicsType() == PHYLOGENY_GRAPHICS_TYPE.CIRCULAR ) || ( getCurrentTreePanel()
+ .getPhylogenyGraphicsType() == PHYLOGENY_GRAPHICS_TYPE.UNROOTED ) ) ) {
+ if ( getMainPanel().getMainFrame()._right_line_up_domains_cbmi != null ) {
+ getMainPanel().getMainFrame()._right_line_up_domains_cbmi.setVisible( false );
+ }
+ if ( getMainPanel().getMainFrame()._show_domain_labels != null ) {
+ getMainPanel().getMainFrame()._show_domain_labels.setVisible( false );
+ }
+ }
+ else if ( isShowDomainArchitectures() ) {
+ if ( getMainPanel().getMainFrame()._right_line_up_domains_cbmi != null ) {
+ getMainPanel().getMainFrame()._right_line_up_domains_cbmi.setVisible( true );
+ }
+ if ( getMainPanel().getMainFrame()._show_domain_labels != null ) {
+ getMainPanel().getMainFrame()._show_domain_labels.setVisible( true );
+ }
+ }
+ else {
+ if ( getMainPanel().getMainFrame()._right_line_up_domains_cbmi != null ) {
+ getMainPanel().getMainFrame()._right_line_up_domains_cbmi.setVisible( false );
+ }
+ if ( getMainPanel().getMainFrame()._show_domain_labels != null ) {
+ getMainPanel().getMainFrame()._show_domain_labels.setVisible( false );
+ }
+ }
+ }
+ catch ( final Exception ignore ) {
+ //not important...
}
}
SHOW_DATA,
SORT_DESCENDENTS,
SUBTREE,
- SWAP;
+ SWAP,
+ CHANGE_NODE_FONT,
+ COLOR_NODE_FONT;
}
}