in progress
[jalview.git] / forester / java / src / org / forester / archaeopteryx / ControlPanel.java
index 9549aef..509e24d 100644 (file)
@@ -91,10 +91,12 @@ final class ControlPanel extends JPanel implements ActionListener {
     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            _color_branches_cb;
+    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;
@@ -116,12 +118,19 @@ final class ControlPanel extends JPanel implements ActionListener {
     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;
@@ -129,14 +138,6 @@ final class ControlPanel extends JPanel implements ActionListener {
     private JCheckBox            _show_annotation;
     private JCheckBox            _show_binary_character_counts;
     private JCheckBox            _show_binary_characters;
-    // Search 
-    private JLabel               _search_found_label_0;
-    private JButton              _search_reset_button_0;
-    private JTextField           _search_tf_0;
-    private JLabel               _search_found_label_1;
-    private JButton              _search_reset_button_1;
-    private JTextField           _search_tf_1;
-    
     // Indices for the click-to options in the combo box
     private int                  _show_data_item;
     private JCheckBox            _show_domain_architectures;
@@ -156,6 +157,7 @@ final class ControlPanel extends JPanel implements ActionListener {
     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;
@@ -189,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;
@@ -291,6 +306,10 @@ final class ControlPanel extends JPanel implements ActionListener {
                     search1();
                     displayedPhylogenyMightHaveChanged( true );
                 }
+                
+              
+                
+                
                 else {
                     displayedPhylogenyMightHaveChanged( true );
                 }
@@ -310,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() {
@@ -532,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
@@ -593,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:
@@ -761,7 +792,7 @@ final class ControlPanel extends JPanel implements ActionListener {
     JLabel getSearchFoundCountsLabel0() {
         return _search_found_label_0;
     }
-    
+
     JLabel getSearchFoundCountsLabel1() {
         return _search_found_label_1;
     }
@@ -769,7 +800,7 @@ final class ControlPanel extends JPanel implements ActionListener {
     JButton getSearchResetButton0() {
         return _search_reset_button_0;
     }
-    
+
     JButton getSearchResetButton1() {
         return _search_reset_button_1;
     }
@@ -777,7 +808,7 @@ final class ControlPanel extends JPanel implements ActionListener {
     JTextField getSearchTextField0() {
         return _search_tf_0;
     }
-    
+
     JTextField getSearchTextField1() {
         return _search_tf_1;
     }
@@ -789,6 +820,10 @@ final class ControlPanel extends JPanel implements ActionListener {
     Map<String, Color> getSpeciesColors() {
         return _species_colors;
     }
+    
+    Map<String, Color> getSequenceColors() {
+        return _sequence_colors;
+    }
 
     boolean isAntialiasScreenText() {
         return true;
@@ -801,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() {
@@ -908,8 +947,6 @@ final class ControlPanel extends JPanel implements ActionListener {
         if ( query != null ) {
             query = query.trim();
         }
-       
-        
         if ( !ForesterUtil.isEmpty( query ) ) {
             search0( main_panel, tree, query );
         }
@@ -920,7 +957,7 @@ final class ControlPanel extends JPanel implements ActionListener {
             searchReset0();
         }
     }
-    
+
     void search1() {
         final MainPanel main_panel = getMainPanel();
         final Phylogeny tree = main_panel.getCurrentPhylogeny();
@@ -931,7 +968,6 @@ final class ControlPanel extends JPanel implements ActionListener {
         if ( query != null ) {
             query = query.trim();
         }
-       
         if ( !ForesterUtil.isEmpty( query ) ) {
             search1( main_panel, tree, query );
         }
@@ -942,15 +978,13 @@ final class ControlPanel extends JPanel implements ActionListener {
             searchReset1();
         }
     }
-    
-    
 
     void searchReset0() {
         if ( getMainPanel().getCurrentTreePanel() != null ) {
             getMainPanel().getCurrentTreePanel().setFoundNodes0( null );
         }
     }
-    
+
     void searchReset1() {
         if ( getMainPanel().getCurrentTreePanel() != null ) {
             getMainPanel().getCurrentTreePanel().setFoundNodes1( null );
@@ -982,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 );
@@ -1037,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:
@@ -1173,6 +1212,12 @@ final class ControlPanel extends JPanel implements ActionListener {
         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 );
         }
@@ -1213,7 +1258,7 @@ 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 );
     }
@@ -1228,6 +1273,10 @@ final class ControlPanel extends JPanel implements ActionListener {
     void setSpeciesColors( final Map<String, Color> species_colors ) {
         _species_colors = species_colors;
     }
+    
+    void setSequenceColors( final Map<String, Color> sequence_colors ) {
+        _sequence_colors = sequence_colors;
+    }
 
     /* GUILHEM_END */
     /*
@@ -1409,8 +1458,7 @@ final class ControlPanel extends JPanel implements ActionListener {
         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 );
@@ -1421,6 +1469,9 @@ final class ControlPanel extends JPanel implements ActionListener {
         if ( _color_acc_species != null ) {
             _color_acc_species.setSelected( false );
         }
+        if ( _color_acc_sequence != null ) {
+            _color_acc_sequence.setSelected( false );
+        }
         _mainpanel.getCurrentTreePanel().repaint();
     }
 
@@ -1720,6 +1771,7 @@ final class ControlPanel extends JPanel implements ActionListener {
     private void init() {
         _draw_phylogram = new ArrayList<Boolean>();
         setSpeciesColors( new HashMap<String, Color>() );
+        setSequenceColors( new HashMap<String, Color>() );
         setAnnotationColors( new HashMap<String, Color>() );
     }
 
@@ -1780,7 +1832,7 @@ final class ControlPanel extends JPanel implements ActionListener {
             searchReset0();
         }
     }
-    
+
     private void search1( final MainPanel main_panel, final Phylogeny tree, final String query_str ) {
         getSearchFoundCountsLabel1().setVisible( true );
         getSearchResetButton1().setEnabled( true );
@@ -1894,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 ) );
@@ -2076,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 ) );
@@ -2088,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 ) );
@@ -2239,6 +2321,8 @@ final class ControlPanel extends JPanel implements ActionListener {
         SHOW_DATA,
         SORT_DESCENDENTS,
         SUBTREE,
-        SWAP;
+        SWAP,
+        CHANGE_NODE_FONT,
+        COLOR_NODE_FONT;
     }
 }