import java.util.Set;
import javax.swing.BorderFactory;
+import javax.swing.ButtonGroup;
import javax.swing.DefaultListCellRenderer;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
+import javax.swing.JRadioButton;
import javax.swing.JScrollBar;
import javax.swing.JTextField;
import javax.swing.ListCellRenderer;
import org.forester.phylogeny.iterators.PhylogenyNodeIterator;
import org.forester.util.ForesterUtil;
-final class ControlPanel extends JPanel implements ActionListener {
+public final class ControlPanel extends JPanel implements ActionListener {
enum NodeClickAction {
ADD_NEW_NODE,
UNCOLLAPSE_ALL,
ORDER_SUBTREE;
}
- 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 int _uncollapse_all_cb_item;
- private int _order_subtree_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;
+ final static Font jcb_bold_font = new Font( Configuration
+ .getDefaultFontFamilyName(), Font.BOLD, Configuration.getGuiFontSize() );
+ final static Font jcb_font = new Font( Configuration
+ .getDefaultFontFamilyName(), Font.PLAIN, Configuration.getGuiFontSize() );
+ final static Font js_font = new Font( Configuration
+ .getDefaultFontFamilyName(), Font.PLAIN, Configuration.getGuiFontSize() );
+ private static final String RETURN_TO_SUPER_TREE_TEXT = "R";
+ 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 int _uncollapse_all_cb_item;
+ private int _order_subtree_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 JRadioButton _display_as_unaligned_phylogram_rb;
+ private JRadioButton _display_as_aligned_phylogram_rb;
+ private JRadioButton _display_as_cladogram_rb;
+ private ButtonGroup _display_as_buttongroup;
// Tree checkboxes
- private JCheckBox _display_internal_data;
- private JLabel _domain_display_label;
- private JTextField _domain_structure_evalue_thr_tf;
- private JTextField _depth_collapse_depth_tf;
- private JTextField _rank_collapse_depth_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 int _paste_subtree_item;
- private int _reroot_cb_item;
- private JButton _return_to_super_tree;
+ private JCheckBox _display_internal_data;
+ private JCheckBox _display_external_data;
+ private JLabel _domain_display_label;
+ private JTextField _domain_structure_evalue_thr_tf;
+ private JTextField _depth_collapse_depth_tf;
+ private JTextField _rank_collapse_depth_tf;
+ private List<Options.PHYLOGENY_DISPLAY_TYPE> _tree_display_types;
+ 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 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;
+ 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_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_rank;
- 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;
- private JButton _decr_depth_collapse_level;
- private JButton _incr_depth_collapse_level;
- private JLabel _depth_collapse_label;
- private JButton _decr_rank_collapse_level;
- private JButton _incr_rank_collapse_level;
- private JLabel _rank_collapse_label;
+ 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_rank;
+ 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;
+ private JButton _decr_depth_collapse_level;
+ private JButton _incr_depth_collapse_level;
+ private JLabel _depth_collapse_label;
+ private JButton _decr_rank_collapse_level;
+ private JButton _incr_rank_collapse_level;
+ private JLabel _rank_collapse_label;
ControlPanel( final MainPanel ap, final Configuration configuration ) {
init();
displayedPhylogenyMightHaveChanged( true );
}
else if ( ( tp != null ) && ( tp.getPhylogeny() != null ) ) {
- if ( e.getSource() == getDisplayAsPhylogramCb() ) {
- setDrawPhylogram( getDisplayAsPhylogramCb().isSelected() );
+ if ( e.getSource() == getDisplayAsUnalignedPhylogramRb() ) {
+ setTreeDisplayType( Options.PHYLOGENY_DISPLAY_TYPE.UNALIGNED_PHYLOGRAM );
+ showWhole();
+ }
+ if ( e.getSource() == getDisplayAsAlignedPhylogramRb() ) {
+ setTreeDisplayType( Options.PHYLOGENY_DISPLAY_TYPE.ALIGNED_PHYLOGRAM );
+ showWhole();
+ }
+ if ( e.getSource() == getDisplayAsCladogramRb() ) {
+ setTreeDisplayType( Options.PHYLOGENY_DISPLAY_TYPE.CLADOGRAM );
showWhole();
}
// Zoom buttons
showWhole();
}
else if ( e.getSource() == _return_to_super_tree ) {
- _mainpanel.getCurrentTreePanel().superTree();
- showWhole();
+ returnedToSuperTreePressed();
}
else if ( e.getSource() == _order ) {
- 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.orderAppearanceX( tp.getPhylogeny().getRoot(), true, pri );
- tp.setNodeInPreorderToNull();
- tp.getPhylogeny().externalNodesHaveChanged();
- tp.getPhylogeny().clearHashIdToNodeMap();
- tp.getPhylogeny().recalculateNumberOfExternalDescendants( true );
- tp.resetNodeIdToDistToLeafMap();
- tp.setEdited( true );
- displayedPhylogenyMightHaveChanged( true );
+ orderPressed( tp );
}
else if ( e.getSource() == _uncollapse_all ) {
uncollapseAll( tp );
}
}
+ void orderPressed( final TreePanel tp ) {
+ 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.orderAppearanceX( tp.getPhylogeny().getRoot(), true, pri );
+ tp.setNodeInPreorderToNull();
+ tp.getPhylogeny().externalNodesHaveChanged();
+ tp.getPhylogeny().clearHashIdToNodeMap();
+ tp.getPhylogeny().recalculateNumberOfExternalDescendants( true );
+ tp.resetNodeIdToDistToLeafMap();
+ tp.setEdited( true );
+ displayedPhylogenyMightHaveChanged( true );
+ }
+
+ void returnedToSuperTreePressed() {
+ if ( getCurrentTreePanel().isCurrentTreeIsSubtree() ) {
+ _mainpanel.getCurrentTreePanel().superTree();
+ showWhole();
+ }
+ }
+
public JCheckBox getColorAccSequenceCb() {
return _color_acc_sequence;
}
return _color_acc_species;
}
- public JCheckBox getDisplayAsPhylogramCb() {
- return _display_as_phylogram_cb;
+ public JRadioButton getDisplayAsCladogramRb() {
+ return _display_as_cladogram_rb;
+ }
+
+ public JRadioButton getDisplayAsAlignedPhylogramRb() {
+ return _display_as_aligned_phylogram_rb;
+ }
+
+ public JRadioButton getDisplayAsUnalignedPhylogramRb() {
+ return _display_as_unaligned_phylogram_rb;
}
public JCheckBox getDynamicallyHideData() {
}// addSequenceRelationBlock
/* GUILHEM_END */
- private List<Boolean> getIsDrawPhylogramList() {
- return _draw_phylogram;
+ private List<Options.PHYLOGENY_DISPLAY_TYPE> getTreeDisplayTypes() {
+ return _tree_display_types;
}
- // 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;
+ return getMainPanel().getMainFrame();
}
private void init() {
- _draw_phylogram = new ArrayList<Boolean>();
+ _tree_display_types = new ArrayList<Options.PHYLOGENY_DISPLAY_TYPE>();
setSpeciesColors( new HashMap<String, Color>() );
setSequenceColors( new HashMap<String, Color>() );
setAnnotationColors( new HashMap<String, Color>() );
}
- private boolean isDrawPhylogram( final int index ) {
- return getIsDrawPhylogramList().get( index );
+ private Options.PHYLOGENY_DISPLAY_TYPE getTreeDisplayType( final int index ) {
+ return getTreeDisplayTypes().get( index );
}
- private void search0( final MainPanel main_panel, final Phylogeny tree, final String query_str ) {
+ private void search0( final MainPanel main_panel, final Phylogeny tree, String query_str ) {
getSearchFoundCountsLabel0().setVisible( true );
getSearchResetButton0().setEnabled( true );
getSearchResetButton0().setVisible( true );
String[] queries = null;
Set<Long> nodes = null;
+ query_str = query_str.replaceAll( "\\s+", " " );
if ( ( query_str.indexOf( ',' ) >= 0 ) && !getOptions().isSearchWithRegex() ) {
queries = query_str.split( ",+" );
}
}
}
- private void search1( final MainPanel main_panel, final Phylogeny tree, final String query_str ) {
+ private void search1( final MainPanel main_panel, final Phylogeny tree, String query_str ) {
getSearchFoundCountsLabel1().setVisible( true );
getSearchResetButton1().setEnabled( true );
getSearchResetButton1().setVisible( true );
String[] queries = null;
Set<Long> nodes = null;
+ query_str = query_str.replaceAll( "\\s+", " " );
if ( ( query_str.indexOf( ',' ) >= 0 ) && !getOptions().isSearchWithRegex() ) {
queries = query_str.split( ",+" );
}
}
}
- private void setDrawPhylogram( final int index, final boolean b ) {
- getIsDrawPhylogramList().set( index, b );
+ private void setTreeDisplayType( final int index, final Options.PHYLOGENY_DISPLAY_TYPE t ) {
+ getTreeDisplayTypes().set( index, t );
}
private void setupClickToOptions() {
}
private void setupDisplayCheckboxes() {
- if ( _configuration.doDisplayOption( Configuration.display_as_phylogram ) ) {
- addCheckbox( Configuration.display_as_phylogram,
- _configuration.getDisplayTitle( Configuration.display_as_phylogram ) );
- setCheckbox( Configuration.display_as_phylogram,
- _configuration.doCheckOption( Configuration.display_as_phylogram ) );
- }
if ( _configuration.doDisplayOption( Configuration.dynamically_hide_data ) ) {
addCheckbox( Configuration.dynamically_hide_data,
_configuration.getDisplayTitle( Configuration.dynamically_hide_data ) );
setCheckbox( Configuration.display_internal_data,
_configuration.doCheckOption( Configuration.display_internal_data ) );
}
+ if ( _configuration.doDisplayOption( Configuration.display_external_data ) ) {
+ addCheckbox( Configuration.display_external_data,
+ _configuration.getDisplayTitle( Configuration.display_external_data ) );
+ setCheckbox( Configuration.display_external_data,
+ _configuration.doCheckOption( Configuration.display_external_data ) );
+ }
if ( _configuration.doDisplayOption( Configuration.color_according_to_sequence ) ) {
addCheckbox( Configuration.color_according_to_sequence,
_configuration.getDisplayTitle( Configuration.color_according_to_sequence ) );
_return_to_super_tree.setEnabled( true );
}
+ void activateButtonToUncollapseAll() {
+ _uncollapse_all.setForeground( getConfiguration().getGuiCheckboxAndButtonActiveColor() );
+ _uncollapse_all.setEnabled( true );
+ }
+
/**
* Add zoom and quick edit buttons. (Last modified 8/9/04)
*/
final JPanel x_panel = new JPanel( new GridLayout( 1, 1, 0, 0 ) );
final JPanel y_panel = new JPanel( new GridLayout( 1, 3, 0, 0 ) );
final JPanel z_panel = new JPanel( new GridLayout( 1, 1, 0, 0 ) );
+ final JPanel o_panel = new JPanel( new GridLayout( 1, 3, 0, 0 ) );
if ( !getConfiguration().isUseNativeUI() ) {
x_panel.setBackground( getBackground() );
y_panel.setBackground( getBackground() );
z_panel.setBackground( getBackground() );
+ o_panel.setBackground( getBackground() );
}
add( _zoom_label = new JLabel( "Zoom:" ) );
customizeLabel( _zoom_label, getConfiguration() );
_zoom_in_y = new TypomaticJButton( "Y+" );
_zoom_out_y = new TypomaticJButton( "Y-" );
_show_whole = new JButton( "F" );
- _show_whole.setToolTipText( "To fit the complete phylogeny to the current display size [F or Home]" );
- _zoom_in_x.setToolTipText( "To zoom in horizontally [Shift+cursor-right]" );
- _zoom_in_y.setToolTipText( "To zoom in vertically [Shift+cursor-up]" );
- _zoom_out_x.setToolTipText( "To zoom out horizontally [Shift+cursor-left]" );
- _zoom_out_y.setToolTipText( "To zoom out vertically [Shift+cursor-down]" );
+ _show_whole.setToolTipText( "fit and center tree display [Alt+C, Home, or Esc]" );
+ _zoom_in_x.setToolTipText( "zoom in horizontally [Alt+Right or Shift+Alt+mousewheel]" );
+ _zoom_in_y.setToolTipText( "zoom in vertically [Alt+Up or Shift+mousewheel]" );
+ _zoom_out_x.setToolTipText( "zoom out horizontally [Alt+Left or Shift+Alt+mousewheel]" );
+ _zoom_out_y.setToolTipText( "zoom out vertically [Alt+Down or Shift+mousewheel]" );
if ( getConfiguration().isUseNativeUI() && ForesterUtil.isMac() ) {
_zoom_out_x.setPreferredSize( new Dimension( 55, 10 ) );
_zoom_in_x.setPreferredSize( new Dimension( 55, 10 ) );
_zoom_in_y.setPreferredSize( new Dimension( 10, 10 ) );
_show_whole.setPreferredSize( new Dimension( 10, 10 ) );
_return_to_super_tree = new JButton( RETURN_TO_SUPER_TREE_TEXT );
+ _return_to_super_tree.setToolTipText( "return to the super-tree (if in sub-tree) [Alt+R]" );
_return_to_super_tree.setEnabled( false );
- _order = new JButton( "Order Tree" );
- _uncollapse_all = new JButton( "Uncollapse All" );
+ _order = new JButton( "O" );
+ _order.setToolTipText( "order all [Alt+O]" );
+ _uncollapse_all = new JButton( "U" );
+ _uncollapse_all.setToolTipText( "uncollapse all [Alt+U]" );
addJButton( _zoom_in_y, x_panel );
addJButton( _zoom_out_x, y_panel );
addJButton( _show_whole, y_panel );
addJButton( _zoom_in_x, y_panel );
addJButton( _zoom_out_y, z_panel );
+ final JLabel spacer2 = new JLabel( "" );
+ add( spacer2 );
+ add( o_panel );
+ addJButton( _order, o_panel );
+ addJButton( _return_to_super_tree, o_panel );
+ addJButton( _uncollapse_all, o_panel );
if ( getConfiguration().doDisplayOption( Configuration.show_domain_architectures ) ) {
setUpControlsForDomainStrucures();
}
if ( true ) {
setUpControlsForRankCollapse();
}
- final JLabel spacer2 = new JLabel( "" );
- add( spacer2 );
- addJButton( _return_to_super_tree, this );
- addJButton( _order, this );
- addJButton( _uncollapse_all, this );
final JLabel spacer3 = new JLabel( "" );
add( spacer3 );
setVisibilityOfDomainStrucureControls();
void addCheckbox( final int which, final String title ) {
final JPanel ch_panel = new JPanel( new BorderLayout( 0, 0 ) );
switch ( which ) {
- case Configuration.display_as_phylogram:
- _display_as_phylogram_cb = new JCheckBox( title );
- getDisplayAsPhylogramCb().setToolTipText( "To switch between phylogram and cladogram display" );
- addJCheckBox( getDisplayAsPhylogramCb(), ch_panel );
- add( ch_panel );
- break;
case Configuration.display_internal_data:
_display_internal_data = new JCheckBox( title );
_display_internal_data.setToolTipText( "To allow or disallow display of internal labels" );
addJCheckBox( _display_internal_data, ch_panel );
add( ch_panel );
break;
+ case Configuration.display_external_data:
+ _display_external_data = new JCheckBox( title );
+ _display_external_data.setToolTipText( "To allow or disallow display of external labels" );
+ addJCheckBox( _display_external_data, ch_panel );
+ add( ch_panel );
+ break;
case Configuration.color_according_to_species:
_color_acc_species = new JCheckBox( title );
_color_acc_species.setToolTipText( "To colorize node labels as a function of taxonomy" );
jcb.addActionListener( this );
}
+ private final void setupJRadioButton( final JRadioButton rb ) {
+ rb.setFocusPainted( false );
+ rb.setFont( ControlPanel.jcb_font );
+ if ( !_configuration.isUseNativeUI() ) {
+ rb.setBackground( getConfiguration().getGuiBackgroundColor() );
+ rb.setForeground( getConfiguration().getGuiCheckboxTextColor() );
+ }
+ rb.addActionListener( this );
+ }
+
void addJTextField( final JTextField tf, final JPanel p ) {
if ( !_configuration.isUseNativeUI() ) {
tf.setForeground( getConfiguration().getGuiBackgroundColor() );
_return_to_super_tree.setEnabled( false );
}
+ void deactivateButtonToUncollapseAll() {
+ _uncollapse_all.setForeground( getConfiguration().getGuiButtonTextColor() );
+ _uncollapse_all.setEnabled( false );
+ }
+
void displayedPhylogenyMightHaveChanged( final boolean recalc_longest_ext_node_info ) {
if ( ( _mainpanel != null )
&& ( ( _mainpanel.getCurrentPhylogeny() != null ) && !_mainpanel.getCurrentPhylogeny().isEmpty() ) ) {
updateDepthCollapseDepthDisplay();
updateRankCollapseRankDisplay();
getMainPanel().getControlPanel();
+ _mainpanel.getCurrentTreePanel().updateButtonToUncollapseAll();
_mainpanel.getCurrentTreePanel().calculateScaleDistance();
_mainpanel.getCurrentTreePanel().calcMaxDepth();
_mainpanel.adjustJScrollPane();
}
boolean isDrawPhylogram() {
- return isDrawPhylogram( getMainPanel().getCurrentTabIndex() );
+ final Options.PHYLOGENY_DISPLAY_TYPE t = getTreeDisplayType( getMainPanel().getCurrentTabIndex() );
+ return ( ( t == Options.PHYLOGENY_DISPLAY_TYPE.ALIGNED_PHYLOGRAM )
+ || ( t == Options.PHYLOGENY_DISPLAY_TYPE.UNALIGNED_PHYLOGRAM ) );
}
boolean isDynamicallyHideData() {
return ( ( _display_internal_data == null ) || _display_internal_data.isSelected() );
}
+ boolean isShowExternalData() {
+ return ( ( _display_external_data == null ) || _display_external_data.isSelected() );
+ }
+
boolean isShowNodeNames() {
return ( ( _show_node_names != null ) && _show_node_names.isSelected() );
}
}
void phylogenyAdded( final Configuration configuration ) {
- getIsDrawPhylogramList().add( configuration.isDrawAsPhylogram() );
+ if ( configuration.isDrawAsPhylogram() ) {
+ getTreeDisplayTypes().add( Options.PHYLOGENY_DISPLAY_TYPE.UNALIGNED_PHYLOGRAM );
+ }
+ else {
+ getTreeDisplayTypes().add( Options.PHYLOGENY_DISPLAY_TYPE.CLADOGRAM );
+ }
}
void phylogenyRemoved( final int index ) {
- getIsDrawPhylogramList().remove( index );
+ getTreeDisplayTypes().remove( index );
}
void search0() {
void setCheckbox( final int which, final boolean state ) {
switch ( which ) {
case Configuration.display_as_phylogram:
- if ( getDisplayAsPhylogramCb() != null ) {
- getDisplayAsPhylogramCb().setSelected( state );
+ if ( getDisplayAsUnalignedPhylogramRb() != null ) {
+ getDisplayAsUnalignedPhylogramRb().setSelected( state );
+ getDisplayAsAlignedPhylogramRb().setSelected( !state );
+ getDisplayAsCladogramRb().setSelected( !state );
}
break;
case Configuration.display_internal_data:
_display_internal_data.setSelected( state );
}
break;
+ case Configuration.display_external_data:
+ if ( _display_external_data != null ) {
+ _display_external_data.setSelected( state );
+ }
+ break;
case Configuration.color_according_to_species:
if ( _color_acc_species != null ) {
_color_acc_species.setSelected( state );
_click_to_combobox.setSelectedIndex( action );
}
- void setColorBranches( final boolean color_branches ) {
+ public void setColorBranches( final boolean color_branches ) {
_color_branches = color_branches;
}
- void setDrawPhylogram( final boolean b ) {
- getDisplayAsPhylogramCb().setSelected( b );
- setDrawPhylogram( getMainPanel().getCurrentTabIndex(), b );
+ void setTreeDisplayType( final Options.PHYLOGENY_DISPLAY_TYPE t ) {
+ switch ( t ) {
+ case UNALIGNED_PHYLOGRAM:
+ getDisplayAsUnalignedPhylogramRb().setSelected( true );
+ break;
+ case ALIGNED_PHYLOGRAM:
+ getDisplayAsAlignedPhylogramRb().setSelected( true );
+ break;
+ case CLADOGRAM:
+ getDisplayAsCladogramRb().setSelected( true );
+ break;
+ }
+ setTreeDisplayType( getMainPanel().getCurrentTabIndex(), t );
}
void setDrawPhylogramEnabled( final boolean b ) {
- getDisplayAsPhylogramCb().setEnabled( b );
+ if ( getDisplayAsAlignedPhylogramRb() != null && getDisplayAsUnalignedPhylogramRb() != null
+ && getDisplayAsCladogramRb() != null ) {
+ getDisplayAsAlignedPhylogramRb().setEnabled( b );
+ getDisplayAsUnalignedPhylogramRb().setEnabled( b );
+ getDisplayAsCladogramRb().setEnabled( b );
+ }
}
void setDynamicHidingIsOn( final boolean is_on ) {
}
void setupControls() {
- // The tree display options:
+ setupTreeDisplayTypeOptions();
setupDisplayCheckboxes();
/* GUILHEM_BEG */
// The sequence relation query selection combo-box
setupSearchTools1();
}
+ void setupTreeDisplayTypeOptions() {
+ _display_as_unaligned_phylogram_rb = new JRadioButton( "P" );
+ _display_as_aligned_phylogram_rb = new JRadioButton( "A" );
+ _display_as_cladogram_rb = new JRadioButton( "C" );
+ _display_as_buttongroup = new ButtonGroup();
+ _display_as_buttongroup.add( _display_as_unaligned_phylogram_rb );
+ _display_as_buttongroup.add( _display_as_aligned_phylogram_rb );
+ _display_as_buttongroup.add( _display_as_cladogram_rb );
+ getDisplayAsUnalignedPhylogramRb().setToolTipText( "(unaligned) phylogram" );
+ getDisplayAsAlignedPhylogramRb().setToolTipText( "aligned phylogram" );
+ getDisplayAsCladogramRb().setToolTipText( "cladogram" );
+ setupJRadioButton( getDisplayAsUnalignedPhylogramRb() );
+ setupJRadioButton( getDisplayAsAlignedPhylogramRb() );
+ setupJRadioButton( getDisplayAsCladogramRb() );
+ final JPanel p = new JPanel( new GridLayout( 1, 3, 0, 0 ) );
+ p.setFont( ControlPanel.jcb_font );
+ if ( !_configuration.isUseNativeUI() ) {
+ p.setBackground( getConfiguration().getGuiBackgroundColor() );
+ p.setForeground( getConfiguration().getGuiCheckboxTextColor() );
+ }
+ p.add( _display_as_unaligned_phylogram_rb );
+ p.add( _display_as_aligned_phylogram_rb );
+ p.add( _display_as_cladogram_rb );
+ add( p );
+ }
+
void setUpControlsForDomainStrucures() {
_domain_display_label = new JLabel( "Domain Architectures:" );
add( customizeLabel( _domain_display_label, getConfiguration() ) );
/**
* Fit entire tree into window.
*/
- void showWhole() {
+ public void showWhole() {
if ( ( _mainpanel.getCurrentScrollPane() == null )
|| _mainpanel.getCurrentTreePanel().getPhylogeny().isEmpty() ) {
return;
if ( getCurrentTreePanel().isPhyHasBranchLengths()
&& ( getCurrentTreePanel().getPhylogenyGraphicsType() != PHYLOGENY_GRAPHICS_TYPE.CIRCULAR ) ) {
setDrawPhylogramEnabled( true );
- setDrawPhylogram( isDrawPhylogram() );
+ setTreeDisplayType( getTreeDisplayType( getMainPanel().getCurrentTabIndex() ) );
}
else {
setDrawPhylogramEnabled( false );
- setDrawPhylogram( false );
- }
- if ( getMainPanel().getMainFrame() == null ) {
- // Must be "E" applet version.
- final ArchaeopteryxE e = ( ArchaeopteryxE ) ( ( MainPanelApplets ) getMainPanel() ).getApplet();
- e.setSelectedTypeInTypeMenu( e.getCurrentTreePanel().getPhylogenyGraphicsType() );
- }
- else {
- getMainPanel().getMainFrame()
- .setSelectedTypeInTypeMenu( getMainPanel().getCurrentTreePanel().getPhylogenyGraphicsType() );
+ setTreeDisplayType( Options.PHYLOGENY_DISPLAY_TYPE.CLADOGRAM );
}
+ getMainPanel().getMainFrame()
+ .setSelectedTypeInTypeMenu( getMainPanel().getCurrentTreePanel().getPhylogenyGraphicsType() );
getMainPanel().getCurrentTreePanel().updateSubSuperTreeButton();
+ getMainPanel().getCurrentTreePanel().updateButtonToUncollapseAll();
getMainPanel().getControlPanel().search0();
getMainPanel().getControlPanel().search1();
getMainPanel().getControlPanel().updateDomainStructureEvaluethresholdDisplay();
}
}
+ private final boolean isDrawPhylogram( int currentTabIndex ) {
+ Options.PHYLOGENY_DISPLAY_TYPE t = getTreeDisplayType( currentTabIndex );
+ return ( ( t == Options.PHYLOGENY_DISPLAY_TYPE.ALIGNED_PHYLOGRAM )
+ | ( t == Options.PHYLOGENY_DISPLAY_TYPE.UNALIGNED_PHYLOGRAM ) );
+ }
+
final void zoomOutY( final float factor ) {
final TreePanel treepanel = getMainPanel().getCurrentTreePanel();
treepanel.multiplyUrtFactor( 0.9f );
final public JCheckBox getUseBranchWidthsCb() {
return _width_branches;
}
+
+ public Options.PHYLOGENY_DISPLAY_TYPE getTreeDisplayType() {
+ if ( _display_as_unaligned_phylogram_rb.isSelected() ) {
+ return Options.PHYLOGENY_DISPLAY_TYPE.UNALIGNED_PHYLOGRAM;
+ }
+ else if ( _display_as_aligned_phylogram_rb.isSelected() ) {
+ return Options.PHYLOGENY_DISPLAY_TYPE.ALIGNED_PHYLOGRAM;
+ }
+ return Options.PHYLOGENY_DISPLAY_TYPE.CLADOGRAM;
+ }
}