X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=forester%2Fjava%2Fsrc%2Forg%2Fforester%2Farchaeopteryx%2FControlPanel.java;h=509e24d99b78f9969d8833a83f8c8dbcc4da6cb8;hb=e6ea1a1dcb0a9b96cad1bc08c3b80a6f876344d2;hp=7586722d219823fdbda9c33460c0650ee0c0a41a;hpb=f8ecfc1d254f7f413ee5c47fbb012b609f7f4fd1;p=jalview.git diff --git a/forester/java/src/org/forester/archaeopteryx/ControlPanel.java b/forester/java/src/org/forester/archaeopteryx/ControlPanel.java index 7586722..509e24d 100644 --- a/forester/java/src/org/forester/archaeopteryx/ControlPanel.java +++ b/forester/java/src/org/forester/archaeopteryx/ControlPanel.java @@ -70,98 +70,107 @@ import org.forester.util.ForesterUtil; final class ControlPanel extends JPanel implements ActionListener { - private static final String RETURN_TO_SUPER_TREE_TEXT = "Back to Super Tree"; + 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 ); - final static Font jcb_bold_font = new Font( Configuration.getDefaultFontFamilyName(), - Font.BOLD, - 9 ); + private static final String RETURN_TO_SUPER_TREE_TEXT = "Back to Super Tree"; private static final long serialVersionUID = -8463483932821545633L; - private final MainPanel _mainpanel; + private NodeClickAction _action_when_node_clicked; + private int _add_new_node_item; + private Map _all_click_to_names; + private Map _annotation_colors; + private int _blast_item; + private JComboBox _click_to_combobox; + private JLabel _click_to_label; + private List _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; // Tree checkboxes private JCheckBox _display_internal_data; - private JCheckBox _show_node_names; - private JCheckBox _show_taxo_code; - private JCheckBox _write_confidence; - private JCheckBox _show_events; - private JCheckBox _color_acc_species; - private JCheckBox _color_branches_cb; - private JCheckBox _width_branches; - private JCheckBox _show_domain_architectures; + private JLabel _domain_display_label; + private JTextField _domain_structure_evalue_thr_tf; + private List _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_box; private JCheckBox _show_annotation; - private JCheckBox _show_binary_characters; 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_gene_names; private JCheckBox _show_sequence_acc; - private JCheckBox _node_desc_popup_cb; - private JCheckBox _dynamically_hide_data; - private JCheckBox _show_taxo_scientific_names; + private JComboBox _show_sequence_relations; + private JCheckBox _show_taxo_code; private JCheckBox _show_taxo_common_names; private JCheckBox _show_taxo_images_cb; - private JCheckBox _color_according_to_annotation; - private JCheckBox _display_as_phylogram_cb; - private JCheckBox _seq_relation_confidence_switch; - private JComboBox _show_sequence_relations; - private JComboBox _sequence_relation_type_box; + private JCheckBox _show_taxo_scientific_names; private JCheckBox _show_vector_data_cb; - private JCheckBox _show_properties_cb; - private JLabel _click_to_label; - private JLabel _zoom_label; - private JLabel _domain_display_label; - private JComboBox _click_to_combobox; - private Map _all_click_to_names; - private List _click_to_names; - // Indices for the click-to options in the combo box - private int _show_data_item; - private int _collapse_cb_item; - private int _reroot_cb_item; - private int _swap_cb_item; - private int _subtree_cb_item; - private int _color_subtree_cb_item; - private int _open_seq_web_item; + private JButton _show_whole; private int _sort_descendents_item; - private int _open_tax_web_item; - private int _cut_subtree_item; - private int _copy_subtree_item; - private int _delete_node_or_subtree_item; - private int _paste_subtree_item; - private int _add_new_node_item; - private int _edit_node_data_item; - private int _select_nodes_item; - private int _get_ext_desc_data; - private int _blast_item; + private Map _species_colors; + private Map _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; // 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 JButton _show_whole; - private JButton _order; - private JButton _uncollapse_all; - private JButton _zoom_in_domain_structure; - private JButton _zoom_out_domain_structure; - private JButton _decr_domain_structure_evalue_thr; - private JButton _incr_domain_structure_evalue_thr; - private JButton _return_to_super_tree; - private JTextField _domain_structure_evalue_thr_tf; - private JTextField _search_tf; - private boolean _order_of_appearance; - private boolean _color_branches; - private NodeClickAction _action_when_node_clicked; - private List _draw_phylogram; - private Map _annotation_colors; - private Map _species_colors; - private JButton _search_reset_button; - private JLabel _search_found_label; - private Sequence _selected_query_seq; ControlPanel( final MainPanel ap, final Configuration configuration ) { init(); @@ -182,6 +191,19 @@ final class ControlPanel extends JPanel implements ActionListener { @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; @@ -203,8 +225,9 @@ final class ControlPanel extends JPanel implements ActionListener { displayedPhylogenyMightHaveChanged( true ); } else if ( e.getSource() == _show_domain_architectures ) { - search(); - displayedPhylogenyMightHaveChanged( false ); + search0(); + search1(); + displayedPhylogenyMightHaveChanged( true ); } else if ( ( tp != null ) && ( tp.getPhylogeny() != null ) ) { if ( e.getSource() == getDisplayAsPhylogramCb() ) { @@ -275,10 +298,18 @@ final class ControlPanel extends JPanel implements ActionListener { _mainpanel.getCurrentTreePanel().increaseDomainStructureEvalueThreshold(); displayedPhylogenyMightHaveChanged( true ); } - else if ( e.getSource() == _search_tf ) { - search(); + else if ( e.getSource() == _search_tf_0 ) { + search0(); displayedPhylogenyMightHaveChanged( true ); } + else if ( e.getSource() == _search_tf_1 ) { + search1(); + displayedPhylogenyMightHaveChanged( true ); + } + + + + else { displayedPhylogenyMightHaveChanged( true ); } @@ -298,9 +329,13 @@ final class ControlPanel extends JPanel implements ActionListener { public JCheckBox getColorAccSpeciesCb() { return _color_acc_species; } + + public JCheckBox getColorAccSequenceCb() { + return _color_acc_sequence; + } - public JCheckBox getColorBranchesCb() { - return _color_branches_cb; + public JCheckBox getUseVisualStylesCb() { + return _use_visual_styles_cb; } public JCheckBox getDisplayAsPhylogramCb() { @@ -433,19 +468,6 @@ final class ControlPanel extends JPanel implements ActionListener { _return_to_super_tree.setEnabled( true ); } - void showAnnotations() { - if ( _show_annotation != null ) { - _show_annotation.setSelected( true ); - } - if ( _color_according_to_annotation != null ) { - _color_according_to_annotation.setSelected( true ); - } - if ( _color_acc_species != null ) { - _color_acc_species.setSelected( false ); - } - _mainpanel.getCurrentTreePanel().repaint(); - } - /** * Add zoom and quick edit buttons. (Last modified 8/9/04) */ @@ -533,10 +555,17 @@ final class ControlPanel extends JPanel implements ActionListener { 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" ); + .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 @@ -594,10 +623,11 @@ final class ControlPanel extends JPanel implements ActionListener { 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: @@ -759,8 +789,28 @@ final class ControlPanel extends JPanel implements ActionListener { return getMainPanel().getOptions(); } - JTextField getSearchTextField() { - return _search_tf; + JLabel getSearchFoundCountsLabel0() { + return _search_found_label_0; + } + + JLabel getSearchFoundCountsLabel1() { + return _search_found_label_1; + } + + JButton getSearchResetButton0() { + return _search_reset_button_0; + } + + JButton getSearchResetButton1() { + return _search_reset_button_1; + } + + JTextField getSearchTextField0() { + return _search_tf_0; + } + + JTextField getSearchTextField1() { + return _search_tf_1; } List getSingleClickToNames() { @@ -770,6 +820,10 @@ final class ControlPanel extends JPanel implements ActionListener { Map getSpeciesColors() { return _species_colors; } + + Map getSequenceColors() { + return _sequence_colors; + } boolean isAntialiasScreenText() { return true; @@ -782,9 +836,13 @@ final class ControlPanel extends JPanel implements ActionListener { boolean isColorAccordingToTaxonomy() { return ( ( _color_acc_species != null ) && _color_acc_species.isSelected() ); } + + boolean isColorAccordingToSequence() { + return ( ( _color_acc_sequence != null ) && _color_acc_sequence.isSelected() ); + } - boolean isColorBranches() { - return ( ( ( getColorBranchesCb() != null ) && getColorBranchesCb().isSelected() ) || ( ( getColorBranchesCb() == null ) && _color_branches ) ); + boolean isUseVisualStyles() { + return ( ( ( getUseVisualStylesCb() != null ) && getUseVisualStylesCb().isSelected() ) || ( ( getUseVisualStylesCb() == null ) && _color_branches ) ); } boolean isDrawPhylogram() { @@ -823,12 +881,8 @@ final class ControlPanel extends JPanel implements ActionListener { return ( ( _show_domain_architectures != null ) && _show_domain_architectures.isSelected() ); } - boolean isShowSeqNames() { - return ( ( _show_seq_names != null ) && _show_seq_names.isSelected() ); - } - - boolean isShowSeqSymbols() { - return ( ( _show_seq_symbols != null ) && _show_seq_symbols.isSelected() ); + boolean isShowGeneNames() { + return ( ( _show_gene_names != null ) && _show_gene_names.isSelected() ); } boolean isShowInternalData() { @@ -839,12 +893,16 @@ final class ControlPanel extends JPanel implements ActionListener { return ( ( _show_node_names != null ) && _show_node_names.isSelected() ); } - boolean isShowSequenceAcc() { - return ( ( _show_sequence_acc != null ) && _show_sequence_acc.isSelected() ); + boolean isShowSeqNames() { + return ( ( _show_seq_names != null ) && _show_seq_names.isSelected() ); } - boolean isShowGeneNames() { - return ( ( _show_gene_names != null ) && _show_gene_names.isSelected() ); + boolean isShowSeqSymbols() { + return ( ( _show_seq_symbols != null ) && _show_seq_symbols.isSelected() ); + } + + boolean isShowSequenceAcc() { + return ( ( _show_sequence_acc != null ) && _show_sequence_acc.isSelected() ); } boolean isShowSequenceRelationConfidence() { @@ -879,30 +937,57 @@ final class ControlPanel extends JPanel implements ActionListener { getIsDrawPhylogramList().remove( index ); } - void search() { + void search0() { final MainPanel main_panel = getMainPanel(); final Phylogeny tree = main_panel.getCurrentPhylogeny(); if ( ( tree == null ) || tree.isEmpty() ) { return; } - String query = getSearchTextField().getText(); + String query = getSearchTextField0().getText(); if ( query != null ) { query = query.trim(); } + if ( !ForesterUtil.isEmpty( query ) ) { + search0( main_panel, tree, query ); + } else { - getSearchFoundCountsLabel().setVisible( false ); - getSearchResetButton().setEnabled( false ); - getSearchResetButton().setVisible( false ); - searchReset(); + getSearchFoundCountsLabel0().setVisible( false ); + getSearchResetButton0().setEnabled( false ); + getSearchResetButton0().setVisible( false ); + searchReset0(); + } + } + + void search1() { + final MainPanel main_panel = getMainPanel(); + final Phylogeny tree = main_panel.getCurrentPhylogeny(); + if ( ( tree == null ) || tree.isEmpty() ) { + return; + } + String query = getSearchTextField1().getText(); + if ( query != null ) { + query = query.trim(); } if ( !ForesterUtil.isEmpty( query ) ) { - search( main_panel, tree, query ); + search1( main_panel, tree, query ); } else { - getSearchFoundCountsLabel().setVisible( false ); - getSearchResetButton().setEnabled( false ); - getSearchResetButton().setVisible( false ); - searchReset(); + getSearchFoundCountsLabel1().setVisible( false ); + getSearchResetButton1().setEnabled( false ); + getSearchResetButton1().setVisible( false ); + searchReset1(); + } + } + + void searchReset0() { + if ( getMainPanel().getCurrentTreePanel() != null ) { + getMainPanel().getCurrentTreePanel().setFoundNodes0( null ); + } + } + + void searchReset1() { + if ( getMainPanel().getCurrentTreePanel() != null ) { + getMainPanel().getCurrentTreePanel().setFoundNodes1( null ); } } @@ -931,6 +1016,11 @@ final class ControlPanel extends JPanel implements ActionListener { _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 ); @@ -986,9 +1076,9 @@ final class ControlPanel extends JPanel implements ActionListener { 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: @@ -1119,6 +1209,15 @@ final class ControlPanel extends JPanel implements ActionListener { else if ( action == _get_ext_desc_data ) { setActionWhenNodeClicked( NodeClickAction.GET_EXT_DESC_DATA ); } + 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 ); } @@ -1156,6 +1255,14 @@ final class ControlPanel extends JPanel implements ActionListener { // } } + void setSearchFoundCountsOnLabel0( final int counts ) { + getSearchFoundCountsLabel0().setText( "Found: " + counts ); + } + + void setSearchFoundCountsOnLabel1( final int counts ) { + getSearchFoundCountsLabel1().setText( "Found: " + counts ); + } + void setShowEvents( final boolean show_events ) { if ( getShowEventsCb() == null ) { _show_events = new JCheckBox( "" ); @@ -1166,6 +1273,10 @@ final class ControlPanel extends JPanel implements ActionListener { void setSpeciesColors( final Map species_colors ) { _species_colors = species_colors; } + + void setSequenceColors( final Map sequence_colors ) { + _sequence_colors = sequence_colors; + } /* GUILHEM_END */ /* @@ -1186,7 +1297,8 @@ final class ControlPanel extends JPanel implements ActionListener { endClickToOptions(); // Zoom and quick edit buttons addButtons(); - setupSearchTools(); + setupSearchTools0(); + setupSearchTools1(); } void setUpControlsForDomainStrucures() { @@ -1225,33 +1337,94 @@ final class ControlPanel extends JPanel implements ActionListener { addJButton( _incr_domain_structure_evalue_thr, d2_panel ); } - void setupSearchTools() { + 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_found_label_0 = new JLabel(); + getSearchFoundCountsLabel0().setVisible( false ); + _search_found_label_0.setFont( ControlPanel.jcb_bold_font ); + if ( !getConfiguration().isUseNativeUI() ) { + _search_found_label_0.setForeground( getConfiguration().getGuiCheckboxTextColor() ); + } + _search_tf_0 = new JTextField( 3 ); + _search_tf_0.setToolTipText( tip ); + _search_tf_0.setEditable( true ); + if ( !getConfiguration().isUseNativeUI() ) { + _search_tf_0.setForeground( getConfiguration().getGuiMenuBackgroundColor() ); + _search_tf_0.setBackground( getConfiguration().getGuiCheckboxTextColor() ); + _search_tf_0.setBorder( null ); + } + _search_reset_button_0 = new JButton(); + getSearchResetButton0().setText( "Reset" ); + getSearchResetButton0().setEnabled( false ); + getSearchResetButton0().setVisible( false ); + final JPanel s_panel_1 = new JPanel( new BorderLayout() ); + final JPanel s_panel_2 = new JPanel( new GridLayout( 1, 2, 0, 0 ) ); + s_panel_1.setBackground( getBackground() ); + add( s_panel_1 ); + s_panel_2.setBackground( getBackground() ); + add( s_panel_2 ); + final KeyAdapter key_adapter = new KeyAdapter() { + + @Override + public void keyReleased( final KeyEvent key_event ) { + search0(); + displayedPhylogenyMightHaveChanged( true ); + } + }; + final ActionListener action_listener = new ActionListener() { + + @Override + public void actionPerformed( final ActionEvent e ) { + searchReset0(); + setSearchFoundCountsOnLabel0( 0 ); + getSearchFoundCountsLabel0().setVisible( false ); + getSearchTextField0().setText( "" ); + getSearchResetButton0().setEnabled( false ); + getSearchResetButton0().setVisible( false ); + displayedPhylogenyMightHaveChanged( true ); + } + }; + _search_reset_button_0.addActionListener( action_listener ); + _search_tf_0.addKeyListener( key_adapter ); + addJTextField( _search_tf_0, s_panel_1 ); + s_panel_2.add( _search_found_label_0 ); + addJButton( _search_reset_button_0, s_panel_2 ); + } + + 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:" ); + 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_found_label = new JLabel(); - getSearchFoundCountsLabel().setVisible( false ); - _search_found_label.setFont( ControlPanel.jcb_bold_font ); + _search_found_label_1 = new JLabel(); + getSearchFoundCountsLabel1().setVisible( false ); + _search_found_label_1.setFont( ControlPanel.jcb_bold_font ); if ( !getConfiguration().isUseNativeUI() ) { - _search_found_label.setForeground( getConfiguration().getGuiCheckboxTextColor() ); + _search_found_label_1.setForeground( getConfiguration().getGuiCheckboxTextColor() ); } - _search_tf = new JTextField( 3 ); - _search_tf.setToolTipText( tip ); - _search_tf.setEditable( true ); + _search_tf_1 = new JTextField( 3 ); + _search_tf_1.setToolTipText( tip ); + _search_tf_1.setEditable( true ); if ( !getConfiguration().isUseNativeUI() ) { - _search_tf.setForeground( getConfiguration().getGuiMenuBackgroundColor() ); - _search_tf.setBackground( getConfiguration().getGuiCheckboxTextColor() ); - _search_tf.setBorder( null ); - } - _search_reset_button = new JButton(); - getSearchResetButton().setText( "Reset" ); - getSearchResetButton().setEnabled( false ); - getSearchResetButton().setVisible( false ); + _search_tf_1.setForeground( getConfiguration().getGuiMenuBackgroundColor() ); + _search_tf_1.setBackground( getConfiguration().getGuiCheckboxTextColor() ); + _search_tf_1.setBorder( null ); + } + _search_reset_button_1 = new JButton(); + getSearchResetButton1().setText( "Reset" ); + getSearchResetButton1().setEnabled( false ); + getSearchResetButton1().setVisible( false ); final JPanel s_panel_1 = new JPanel( new BorderLayout() ); final JPanel s_panel_2 = new JPanel( new GridLayout( 1, 2, 0, 0 ) ); s_panel_1.setBackground( getBackground() ); @@ -1262,7 +1435,7 @@ final class ControlPanel extends JPanel implements ActionListener { @Override public void keyReleased( final KeyEvent key_event ) { - search(); + search1(); displayedPhylogenyMightHaveChanged( true ); } }; @@ -1270,20 +1443,36 @@ final class ControlPanel extends JPanel implements ActionListener { @Override public void actionPerformed( final ActionEvent e ) { - searchReset(); - setSearchFoundCountsOnLabel( 0 ); - getSearchFoundCountsLabel().setVisible( false ); - getSearchTextField().setText( "" ); - getSearchResetButton().setEnabled( false ); - getSearchResetButton().setVisible( false ); + searchReset1(); + setSearchFoundCountsOnLabel1( 0 ); + getSearchFoundCountsLabel1().setVisible( false ); + getSearchTextField1().setText( "" ); + getSearchResetButton1().setEnabled( false ); + getSearchResetButton1().setVisible( false ); displayedPhylogenyMightHaveChanged( true ); } }; - _search_reset_button.addActionListener( action_listener ); - _search_tf.addKeyListener( key_adapter ); - addJTextField( _search_tf, s_panel_1 ); - s_panel_2.add( _search_found_label ); - addJButton( _search_reset_button, s_panel_2 ); + _search_reset_button_1.addActionListener( action_listener ); + _search_tf_1.addKeyListener( key_adapter ); + addJTextField( _search_tf_1, s_panel_1 ); + s_panel_2.add( _search_found_label_1 ); + addJButton( _search_reset_button_1, s_panel_2 ); + } + + void showAnnotations() { + if ( _show_annotation != null ) { + _show_annotation.setSelected( true ); + } + if ( _color_according_to_annotation != null ) { + _color_according_to_annotation.setSelected( true ); + } + if ( _color_acc_species != null ) { + _color_acc_species.setSelected( false ); + } + if ( _color_acc_sequence != null ) { + _color_acc_sequence.setSelected( false ); + } + _mainpanel.getCurrentTreePanel().repaint(); } /** @@ -1372,12 +1561,15 @@ final class ControlPanel extends JPanel implements ActionListener { .getPhylogenyGraphicsType() ); } getMainPanel().getCurrentTreePanel().updateSubSuperTreeButton(); - getMainPanel().getControlPanel().search(); + getMainPanel().getControlPanel().search0(); + getMainPanel().getControlPanel().search1(); + getMainPanel().getControlPanel().updateDomainStructureEvaluethresholdDisplay(); getSequenceRelationTypeBox().removeAllItems(); for( final SequenceRelation.SEQUENCE_RELATION_TYPE type : getMainPanel().getCurrentPhylogeny() .getRelevantSequenceRelationTypes() ) { _sequence_relation_type_box.addItem( type ); } + getMainPanel().getCurrentTreePanel().repaint(); //setSequenceRelationQueries( getMainPanel().getCurrentPhylogeny().getSequenceRelationQueries() ); // according to GUILHEM the line above can be removed. } @@ -1576,17 +1768,10 @@ final class ControlPanel extends JPanel implements ActionListener { return _draw_phylogram; } - JLabel getSearchFoundCountsLabel() { - return _search_found_label; - } - - JButton getSearchResetButton() { - return _search_reset_button; - } - private void init() { _draw_phylogram = new ArrayList(); setSpeciesColors( new HashMap() ); + setSequenceColors( new HashMap() ); setAnnotationColors( new HashMap() ); } @@ -1594,10 +1779,10 @@ final class ControlPanel extends JPanel implements ActionListener { return getIsDrawPhylogramList().get( index ); } - private void search( final MainPanel main_panel, final Phylogeny tree, final String query_str ) { - getSearchFoundCountsLabel().setVisible( true ); - getSearchResetButton().setEnabled( true ); - getSearchResetButton().setVisible( true ); + private void search0( final MainPanel main_panel, final Phylogeny tree, final String query_str ) { + getSearchFoundCountsLabel0().setVisible( true ); + getSearchResetButton0().setEnabled( true ); + getSearchResetButton0().setVisible( true ); String[] queries = null; List nodes = null; if ( query_str.indexOf( ',' ) >= 0 ) { @@ -1636,21 +1821,69 @@ final class ControlPanel extends JPanel implements ActionListener { } } if ( ( nodes != null ) && ( nodes.size() > 0 ) ) { - main_panel.getCurrentTreePanel().setFoundNodes( new HashSet() ); + main_panel.getCurrentTreePanel().setFoundNodes0( new HashSet() ); for( final PhylogenyNode node : nodes ) { - main_panel.getCurrentTreePanel().getFoundNodes().add( node.getId() ); + main_panel.getCurrentTreePanel().getFoundNodes0().add( node.getId() ); } - setSearchFoundCountsOnLabel( nodes.size() ); + setSearchFoundCountsOnLabel0( nodes.size() ); } else { - setSearchFoundCountsOnLabel( 0 ); - searchReset(); + setSearchFoundCountsOnLabel0( 0 ); + searchReset0(); } } - void searchReset() { - if ( getMainPanel().getCurrentTreePanel() != null ) { - getMainPanel().getCurrentTreePanel().setFoundNodes( null ); + private void search1( final MainPanel main_panel, final Phylogeny tree, final String query_str ) { + getSearchFoundCountsLabel1().setVisible( true ); + getSearchResetButton1().setEnabled( true ); + getSearchResetButton1().setVisible( true ); + String[] queries = null; + List nodes = null; + if ( query_str.indexOf( ',' ) >= 0 ) { + queries = query_str.split( ",+" ); + } + else { + queries = new String[ 1 ]; + queries[ 0 ] = query_str.trim(); + } + if ( ( queries != null ) && ( queries.length > 0 ) ) { + nodes = new ArrayList(); + for( String query : queries ) { + if ( ForesterUtil.isEmpty( query ) ) { + continue; + } + query = query.trim(); + if ( query.indexOf( '+' ) >= 0 ) { + nodes.addAll( PhylogenyMethods.searchDataLogicalAnd( query.split( "\\++" ), + tree, + getOptions().isSearchCaseSensitive(), + !getOptions().isMatchWholeTermsOnly(), + isShowDomainArchitectures() ) ); + } + else { + nodes.addAll( PhylogenyMethods.searchData( query, + tree, + getOptions().isSearchCaseSensitive(), + !getOptions().isMatchWholeTermsOnly(), + isShowDomainArchitectures() ) ); + } + } + if ( getOptions().isInverseSearchResult() ) { + final List all = PhylogenyMethods.obtainAllNodesAsList( tree ); + all.removeAll( nodes ); + nodes = all; + } + } + if ( ( nodes != null ) && ( nodes.size() > 0 ) ) { + main_panel.getCurrentTreePanel().setFoundNodes1( new HashSet() ); + for( final PhylogenyNode node : nodes ) { + main_panel.getCurrentTreePanel().getFoundNodes1().add( node.getId() ); + } + setSearchFoundCountsOnLabel1( nodes.size() ); + } + else { + setSearchFoundCountsOnLabel1( 0 ); + searchReset1(); } } @@ -1658,10 +1891,6 @@ final class ControlPanel extends JPanel implements ActionListener { getIsDrawPhylogramList().set( index, b ); } - void setSearchFoundCountsOnLabel( final int counts ) { - getSearchFoundCountsLabel().setText( "Found: " + counts ); - } - private void setupClickToOptions() { final int default_option = _configuration.getDefaultDisplayClicktoOption(); int selected_index = 0; @@ -1717,6 +1946,24 @@ final class ControlPanel extends JPanel implements ActionListener { } 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 ) ); @@ -1733,6 +1980,14 @@ final class ControlPanel extends JPanel implements ActionListener { } cb_index++; } + if ( _configuration.doDisplayClickToOption( Configuration.open_pdb_web ) ) { + _open_pdb_item = cb_index; + addClickToOption( Configuration.open_pdb_web, _configuration.getClickToTitle( Configuration.open_pdb_web ) ); + if ( default_option == Configuration.open_pdb_web ) { + selected_index = cb_index; + } + cb_index++; + } if ( _configuration.doDisplayClickToOption( Configuration.open_tax_web ) ) { _open_tax_web_item = cb_index; addClickToOption( Configuration.open_tax_web, _configuration.getClickToTitle( Configuration.open_tax_web ) ); @@ -1891,6 +2146,18 @@ final class ControlPanel extends JPanel implements ActionListener { 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 ) ); @@ -1903,9 +2170,9 @@ final class ControlPanel extends JPanel implements ActionListener { 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 ) ); @@ -2036,23 +2303,26 @@ final class ControlPanel extends JPanel implements ActionListener { } enum NodeClickAction { - SHOW_DATA, + ADD_NEW_NODE, + BLAST, COLLAPSE, - REROOT, - SUBTREE, - SWAP, COLOR_SUBTREE, - OPEN_TAX_WEB, - OPEN_SEQ_WEB, - CUT_SUBTREE, COPY_SUBTREE, + CUT_SUBTREE, DELETE_NODE_OR_SUBTREE, - PASTE_SUBTREE, - ADD_NEW_NODE, EDIT_NODE_DATA, + GET_EXT_DESC_DATA, + OPEN_PDB_WEB, + OPEN_SEQ_WEB, + OPEN_TAX_WEB, + PASTE_SUBTREE, + REROOT, SELECT_NODES, + SHOW_DATA, SORT_DESCENDENTS, - GET_EXT_DESC_DATA, - BLAST; + SUBTREE, + SWAP, + CHANGE_NODE_FONT, + COLOR_NODE_FONT; } }