import java.util.HashSet;
import java.util.List;
import java.util.Map;
+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.archaeopteryx.Options.CLADOGRAM_TYPE;
import org.forester.archaeopteryx.Options.PHYLOGENY_GRAPHICS_TYPE;
+import org.forester.archaeopteryx.util.TypomaticJButton;
import org.forester.phylogeny.Phylogeny;
import org.forester.phylogeny.PhylogenyMethods;
import org.forester.phylogeny.PhylogenyMethods.DESCENDANT_SORT_PRIORITY;
import org.forester.phylogeny.PhylogenyNode;
import org.forester.phylogeny.data.Sequence;
import org.forester.phylogeny.data.SequenceRelation;
+import org.forester.phylogeny.data.SequenceRelation.SEQUENCE_RELATION_TYPE;
import org.forester.phylogeny.iterators.PhylogenyNodeIterator;
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_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 long serialVersionUID = -8463483932821545633L;
- private final MainPanel _mainpanel;
+public final class ControlPanel extends JPanel implements ActionListener {
+
+ enum NodeClickAction {
+ ADD_NEW_NODE,
+ BLAST,
+ COLLAPSE,
+ COLOR_SUBTREE,
+ COPY_SUBTREE,
+ CUT_SUBTREE,
+ DELETE_NODE_OR_SUBTREE,
+ 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,
+ SUBTREE,
+ SWAP,
+ CHANGE_NODE_FONT,
+ COLOR_NODE_FONT,
+ UNCOLLAPSE_ALL,
+ ORDER_SUBTREE;
+ }
+ 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 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 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 JCheckBox _show_annotation;
- private JCheckBox _show_binary_characters;
- private JCheckBox _show_binary_character_counts;
- private JCheckBox _show_gene_names;
- private JCheckBox _show_gene_symbols;
- private JCheckBox _show_sequence_acc;
- private JCheckBox _node_desc_popup_cb;
- private JCheckBox _dynamically_hide_data;
- private JCheckBox _show_taxo_scientific_names;
- 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_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<Integer, String> _all_click_to_names;
- private List<String> _click_to_names;
+ 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;
// 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 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;
- // zooming and quick tree manipulation buttons:
- private JButton _zoom_in_x;
- private JButton _zoom_in_y;
- 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<Boolean> _draw_phylogram;
- private Map<String, Color> _annotation_colors;
- private Map<String, Color> _species_colors;
- private JButton _search_reset_button;
- private JLabel _search_found_label;
- private Sequence _selected_query_seq;
+ 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();
setBorder( BorderFactory.createRaisedBevelBorder() );
}
setLayout( new GridLayout( 0, 1, 2, 2 ) );
- _order_of_appearance = true;
setupControls();
}
@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( 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() ) {
- 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
else if ( e.getSource() == _zoom_in_x ) {
- zoomInX( Constants.BUTTON_ZOOM_IN_FACTOR, Constants.BUTTON_ZOOM_IN_X_CORRECTION_FACTOR );
+ zoomInX( AptxConstants.BUTTON_ZOOM_IN_FACTOR, AptxConstants.BUTTON_ZOOM_IN_X_CORRECTION_FACTOR );
displayedPhylogenyMightHaveChanged( false );
}
else if ( e.getSource() == _zoom_in_y ) {
- zoomInY( Constants.BUTTON_ZOOM_IN_FACTOR );
+ zoomInY( AptxConstants.BUTTON_ZOOM_IN_FACTOR );
displayedPhylogenyMightHaveChanged( false );
}
else if ( e.getSource() == _zoom_out_x ) {
- zoomOutX( Constants.BUTTON_ZOOM_OUT_FACTOR, Constants.BUTTON_ZOOM_OUT_X_CORRECTION_FACTOR );
+ zoomOutX( AptxConstants.BUTTON_ZOOM_OUT_FACTOR, AptxConstants.BUTTON_ZOOM_OUT_X_CORRECTION_FACTOR );
displayedPhylogenyMightHaveChanged( false );
}
else if ( e.getSource() == _zoom_out_y ) {
- zoomOutY( Constants.BUTTON_ZOOM_OUT_FACTOR );
+ zoomOutY( AptxConstants.BUTTON_ZOOM_OUT_FACTOR );
displayedPhylogenyMightHaveChanged( false );
}
else if ( e.getSource() == _show_whole ) {
+ displayedPhylogenyMightHaveChanged( true );
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.TAXONOMY;
- if ( ( !isShowTaxonomyScientificNames() && !isShowTaxonomyCode() && !isShowTaxonomyCommonNames() ) ) {
- if ( ( isShowSequenceAcc() || isShowGeneNames() || isShowGeneSymbols() ) ) {
- pri = DESCENDANT_SORT_PRIORITY.SEQUENCE;
- }
- else if ( isShowNodeNames() ) {
- pri = DESCENDANT_SORT_PRIORITY.NODE_NAME;
- }
- }
- PhylogenyMethods.orderAppearance( tp.getPhylogeny().getRoot(), _order_of_appearance, true, pri );
- _order_of_appearance = !_order_of_appearance;
- tp.setNodeInPreorderToNull();
- tp.getPhylogeny().externalNodesHaveChanged();
- tp.getPhylogeny().clearHashIdToNodeMap();
- tp.getPhylogeny().recalculateNumberOfExternalDescendants( true );
- tp.resetNodeIdToDistToLeafMap();
- tp.setEdited( true );
- displayedPhylogenyMightHaveChanged( false );
+ orderPressed( tp );
}
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 ) {
- search();
+ else if ( e.getSource() == _search_tf_0 ) {
+ search0();
displayedPhylogenyMightHaveChanged( true );
}
+ else if ( e.getSource() == _search_tf_1 ) {
+ search1();
+ displayedPhylogenyMightHaveChanged( true );
+ }
+ else if ( ( _dynamically_hide_data != null ) && ( e.getSource() == _dynamically_hide_data )
+ && !_dynamically_hide_data.isSelected() ) {
+ setDynamicHidingIsOn( false );
+ displayedPhylogenyMightHaveChanged( true );
+ }
+ else if ( ( e.getSource() == _decr_depth_collapse_level )
+ || ( e.getSource() == _incr_depth_collapse_level ) ) {
+ if ( e.getSource() == _decr_depth_collapse_level ) {
+ _mainpanel.getCurrentTreePanel().decreaseDepthCollapseLevel();
+ }
+ else {
+ _mainpanel.getCurrentTreePanel().increaseDepthCollapseLevel();
+ }
+ search0();
+ search1();
+ _mainpanel.getCurrentTreePanel().updateSetOfCollapsedExternalNodes();
+ _mainpanel.getCurrentTreePanel().getPhylogeny().recalculateNumberOfExternalDescendants( true );
+ _mainpanel.getCurrentTreePanel().resetNodeIdToDistToLeafMap();
+ _mainpanel.getCurrentTreePanel().calculateLongestExtNodeInfo();
+ _mainpanel.getCurrentTreePanel().setNodeInPreorderToNull();
+ displayedPhylogenyMightHaveChanged( true );
+ _mainpanel.getCurrentTreePanel().resetPreferredSize();
+ _mainpanel.getCurrentTreePanel().updateOvSizes();
+ _mainpanel.adjustJScrollPane();
+ showWhole();
+ repaint();
+ }
+ else if ( ( e.getSource() == _decr_rank_collapse_level )
+ || ( e.getSource() == _incr_rank_collapse_level ) ) {
+ if ( e.getSource() == _decr_rank_collapse_level ) {
+ _mainpanel.getCurrentTreePanel().decreaseRankCollapseLevel();
+ }
+ else {
+ _mainpanel.getCurrentTreePanel().increaseRankCollapseLevel();
+ }
+ search0();
+ search1();
+ _mainpanel.getCurrentTreePanel().updateSetOfCollapsedExternalNodes();
+ _mainpanel.getCurrentTreePanel().getPhylogeny().recalculateNumberOfExternalDescendants( true );
+ _mainpanel.getCurrentTreePanel().resetNodeIdToDistToLeafMap();
+ _mainpanel.getCurrentTreePanel().calculateLongestExtNodeInfo();
+ _mainpanel.getCurrentTreePanel().setNodeInPreorderToNull();
+ displayedPhylogenyMightHaveChanged( true );
+ _mainpanel.getCurrentTreePanel().resetPreferredSize();
+ _mainpanel.getCurrentTreePanel().updateOvSizes();
+ _mainpanel.adjustJScrollPane();
+ showWhole();
+ repaint();
+ }
else {
displayedPhylogenyMightHaveChanged( true );
}
}
}
+ 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;
+ }
+
public JCheckBox getColorAccSpeciesCb() {
return _color_acc_species;
}
- public JCheckBox getColorBranchesCb() {
- return _color_branches_cb;
+ public JRadioButton getDisplayAsCladogramRb() {
+ return _display_as_cladogram_rb;
+ }
+
+ public JRadioButton getDisplayAsAlignedPhylogramRb() {
+ return _display_as_aligned_phylogram_rb;
}
- public JCheckBox getDisplayAsPhylogramCb() {
- return _display_as_phylogram_cb;
+ public JRadioButton getDisplayAsUnalignedPhylogramRb() {
+ return _display_as_unaligned_phylogram_rb;
}
public JCheckBox getDynamicallyHideData() {
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();
- for( final SequenceRelation.SEQUENCE_RELATION_TYPE type : SequenceRelation.SEQUENCE_RELATION_TYPE.values() ) {
+ _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 );
}
_sequence_relation_type_box.addActionListener( new ActionListener() {
return _show_events;
}
+ public JCheckBox getUseVisualStylesCb() {
+ return _use_visual_styles_cb;
+ }
+
public JCheckBox getWriteConfidenceCb() {
return _write_confidence;
}
+ public boolean isShowMolSequences() {
+ return ( ( _show_mol_seqs != null ) && _show_mol_seqs.isSelected() );
+ }
+
public boolean isShowProperties() {
return ( ( _show_properties_cb != null ) && _show_properties_cb.isSelected() );
}
}
public void setSequenceRelationQueries( final Collection<Sequence> sequenceRelationQueries ) {
- final JComboBox box = getSequenceRelationBox();
+ final JComboBox<String> box = getSequenceRelationBox();
while ( box.getItemCount() > 1 ) {
box.removeItemAt( 1 );
}
}
final ArrayList<String> sequenceNamesToAdd = new ArrayList<String>();
for( final Sequence seq : sequenceRelationQueries ) {
- if ( seq.hasSequenceRelations() ) {
+ if ( seq.isHasSequenceRelations() ) {
boolean fFoundForCurrentType = false;
for( final SequenceRelation sq : seq.getSequenceRelations() ) {
if ( sq.getType().equals( relationType ) ) {
} );
}
- void activateButtonToReturnToSuperTree( int index ) {
- --index;
- if ( index > 0 ) {
- _return_to_super_tree.setText( RETURN_TO_SUPER_TREE_TEXT + " " + index );
+ private void addClickToOption( final int which, final String title ) {
+ _click_to_combobox.addItem( title );
+ _click_to_names.add( title );
+ _all_click_to_names.put( new Integer( which ), title );
+ if ( !_configuration.isUseNativeUI() ) {
+ _click_to_combobox.setBackground( getConfiguration().getGuiButtonBackgroundColor() );
+ _click_to_combobox.setForeground( getConfiguration().getGuiButtonTextColor() );
}
- else {
- _return_to_super_tree.setText( RETURN_TO_SUPER_TREE_TEXT );
+ }
+
+ /* GUILHEM_BEG */
+ private void addSequenceRelationBlock() {
+ final JLabel spacer = new JLabel( "" );
+ spacer.setSize( 1, 1 );
+ add( spacer );
+ final JLabel mainLabel = new JLabel( "Sequence relations to display" );
+ final JLabel typeLabel = customizeLabel( new JLabel( "(type) " ), getConfiguration() );
+ typeLabel.setFont( ControlPanel.js_font.deriveFont( 7 ) );
+ getSequenceRelationTypeBox().setFocusable( false );
+ _sequence_relation_type_box.setFont( ControlPanel.js_font );
+ if ( !_configuration.isUseNativeUI() ) {
+ _sequence_relation_type_box.setBackground( getConfiguration().getGuiButtonBackgroundColor() );
+ _sequence_relation_type_box.setForeground( getConfiguration().getGuiButtonTextColor() );
}
- _return_to_super_tree.setForeground( getConfiguration().getGuiCheckboxAndButtonActiveColor() );
- _return_to_super_tree.setEnabled( true );
+ _sequence_relation_type_box.setRenderer( new ListCellRenderer<Object>() {
+
+ @Override
+ public Component getListCellRendererComponent( final JList<?> list,
+ final Object value,
+ final int index,
+ final boolean isSelected,
+ final boolean cellHasFocus ) {
+ final Component component = new DefaultListCellRenderer()
+ .getListCellRendererComponent( list, value, index, isSelected, cellHasFocus );
+ if ( ( value != null ) && ( value instanceof SequenceRelation.SEQUENCE_RELATION_TYPE ) ) {
+ ( ( DefaultListCellRenderer ) component ).setText( SequenceRelation
+ .getPrintableNameByType( ( SequenceRelation.SEQUENCE_RELATION_TYPE ) value ) );
+ }
+ return component;
+ }
+ } );
+ final GridBagLayout gbl = new GridBagLayout();
+ _sequence_relation_type_box.setMinimumSize( new Dimension( 115, 17 ) );
+ _sequence_relation_type_box.setPreferredSize( new Dimension( 115, 20 ) );
+ final JPanel horizGrid = new JPanel( gbl );
+ horizGrid.setBackground( getBackground() );
+ horizGrid.add( typeLabel );
+ horizGrid.add( _sequence_relation_type_box );
+ add( customizeLabel( mainLabel, getConfiguration() ) );
+ add( horizGrid );
+ add( getSequenceRelationBox() );
+ if ( _configuration.doDisplayOption( Configuration.show_relation_confidence ) ) {
+ addCheckbox( Configuration.show_relation_confidence,
+ _configuration.getDisplayTitle( Configuration.show_relation_confidence ) );
+ setCheckbox( Configuration.show_relation_confidence,
+ _configuration.doCheckOption( Configuration.show_relation_confidence ) );
+ }
+ }// addSequenceRelationBlock
+
+ /* GUILHEM_END */
+ private List<Options.PHYLOGENY_DISPLAY_TYPE> getTreeDisplayTypes() {
+ return _tree_display_types;
}
- void showAnnotations() {
- _show_annotation.setSelected( true );
- _color_according_to_annotation.setSelected( true );
- _color_acc_species.setSelected( false );
- _mainpanel.getCurrentTreePanel().repaint();
+ final private MainFrame getMainFrame() {
+ return getMainPanel().getMainFrame();
}
- /**
- * Add zoom and quick edit buttons. (Last modified 8/9/04)
- */
- void addButtons() {
- final JLabel spacer = new JLabel( "" );
- spacer.setOpaque( false );
- add( spacer );
- 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 ) );
- if ( !getConfiguration().isUseNativeUI() ) {
- x_panel.setBackground( getBackground() );
- y_panel.setBackground( getBackground() );
- z_panel.setBackground( getBackground() );
+ private void init() {
+ _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 Options.PHYLOGENY_DISPLAY_TYPE getTreeDisplayType( final int index ) {
+ return getTreeDisplayTypes().get( index );
+ }
+
+ 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( ",+" );
}
- add( _zoom_label = new JLabel( "Zoom:" ) );
- customizeLabel( _zoom_label, getConfiguration() );
- add( x_panel );
- add( y_panel );
- add( z_panel );
- if ( getConfiguration().isUseNativeUI() ) {
- _zoom_in_x = new JButton( "+" );
- _zoom_out_x = new JButton( "-" );
+ else {
+ queries = new String[ 1 ];
+ queries[ 0 ] = query_str.trim();
+ }
+ if ( ( queries != null ) && ( queries.length > 0 ) ) {
+ nodes = new HashSet<Long>();
+ for( String query : queries ) {
+ if ( ForesterUtil.isEmpty( query ) ) {
+ continue;
+ }
+ query = query.trim();
+ final TreePanel tp = getMainPanel().getCurrentTreePanel();
+ if ( ( query.indexOf( '+' ) > 0 ) && !getOptions().isSearchWithRegex() ) {
+ nodes.addAll( PhylogenyMethods.searchDataLogicalAnd( query.split( "\\++" ),
+ tree,
+ getOptions().isSearchCaseSensitive(),
+ !getOptions().isMatchWholeTermsOnly(),
+ isShowDomainArchitectures(),
+ tp != null
+ ? Math.pow( 10,
+ tp.getDomainStructureEvalueThresholdExp() )
+ : 0 ) );
+ }
+ else {
+ nodes.addAll( PhylogenyMethods
+ .searchData( query,
+ tree,
+ getOptions().isSearchCaseSensitive(),
+ !getOptions().isMatchWholeTermsOnly(),
+ getOptions().isSearchWithRegex(),
+ isShowDomainArchitectures(),
+ tp != null ? Math.pow( 10, tp.getDomainStructureEvalueThresholdExp() ) : 0 ) );
+ }
+ }
+ if ( getOptions().isInverseSearchResult() ) {
+ final List<PhylogenyNode> all = PhylogenyMethods.obtainAllNodesAsList( tree );
+ final Set<Long> temp_nodes = nodes;
+ nodes = new HashSet<Long>();
+ for( final PhylogenyNode n : all ) {
+ if ( ( !temp_nodes.contains( n.getId() ) ) && n.isHasNodeData() ) {
+ nodes.add( n.getId() );
+ }
+ }
+ }
+ }
+ if ( ( nodes != null ) && ( nodes.size() > 0 ) ) {
+ main_panel.getCurrentTreePanel().setFoundNodes0( new HashSet<Long>() );
+ for( final Long node : nodes ) {
+ main_panel.getCurrentTreePanel().getFoundNodes0().add( node );
+ }
+ setSearchFoundCountsOnLabel0( nodes.size() );
}
else {
- _zoom_in_x = new JButton( "X+" );
- _zoom_out_x = new JButton( "X-" );
+ setSearchFoundCountsOnLabel0( 0 );
+ searchReset0();
}
- _zoom_in_y = new JButton( "Y+" );
- _zoom_out_y = new JButton( "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]" );
- if ( getConfiguration().isUseNativeUI() && AptxUtil.isMac() ) {
- _zoom_out_x.setPreferredSize( new Dimension( 55, 10 ) );
- _zoom_in_x.setPreferredSize( new Dimension( 55, 10 ) );
+ }
+
+ 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( ",+" );
}
else {
- _zoom_out_x.setPreferredSize( new Dimension( 10, 10 ) );
- _zoom_in_x.setPreferredSize( new Dimension( 10, 10 ) );
+ queries = new String[ 1 ];
+ queries[ 0 ] = query_str.trim();
}
- _zoom_out_y.setPreferredSize( new Dimension( 10, 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.setEnabled( false );
- _order = new JButton( "Order Subtrees" );
- _uncollapse_all = new JButton( "Uncollapse All" );
- 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 );
- if ( getConfiguration().doDisplayOption( Configuration.show_domain_architectures ) ) {
- setUpControlsForDomainStrucures();
+ if ( ( queries != null ) && ( queries.length > 0 ) ) {
+ nodes = new HashSet<Long>();
+ for( String query : queries ) {
+ if ( ForesterUtil.isEmpty( query ) ) {
+ continue;
+ }
+ query = query.trim();
+ final TreePanel tp = getMainPanel().getCurrentTreePanel();
+ if ( ( query.indexOf( '+' ) > 0 ) && !getOptions().isSearchWithRegex() ) {
+ nodes.addAll( PhylogenyMethods.searchDataLogicalAnd( query.split( "\\++" ),
+ tree,
+ getOptions().isSearchCaseSensitive(),
+ !getOptions().isMatchWholeTermsOnly(),
+ isShowDomainArchitectures(),
+ tp != null
+ ? Math.pow( 10,
+ tp.getDomainStructureEvalueThresholdExp() )
+ : 0 ) );
+ }
+ else {
+ nodes.addAll( PhylogenyMethods
+ .searchData( query,
+ tree,
+ getOptions().isSearchCaseSensitive(),
+ !getOptions().isMatchWholeTermsOnly(),
+ getOptions().isSearchWithRegex(),
+ isShowDomainArchitectures(),
+ tp != null ? Math.pow( 10, tp.getDomainStructureEvalueThresholdExp() ) : 0 ) );
+ }
+ }
+ if ( getOptions().isInverseSearchResult() ) {
+ final List<PhylogenyNode> all = PhylogenyMethods.obtainAllNodesAsList( tree );
+ final Set<Long> temp_nodes = nodes;
+ nodes = new HashSet<Long>();
+ for( final PhylogenyNode n : all ) {
+ if ( ( !temp_nodes.contains( n.getId() ) ) && n.isHasNodeData() ) {
+ nodes.add( n.getId() );
+ }
+ }
+ }
+ }
+ if ( ( nodes != null ) && ( nodes.size() > 0 ) ) {
+ main_panel.getCurrentTreePanel().setFoundNodes1( new HashSet<Long>() );
+ for( final Long node : nodes ) {
+ main_panel.getCurrentTreePanel().getFoundNodes1().add( node );
+ }
+ setSearchFoundCountsOnLabel1( nodes.size() );
+ }
+ else {
+ setSearchFoundCountsOnLabel1( 0 );
+ searchReset1();
}
- 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.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" );
- addJCheckBox( _color_acc_species, ch_panel );
- add( ch_panel );
- break;
- case Configuration.color_according_to_annotation:
- _color_according_to_annotation = new JCheckBox( title );
- _color_according_to_annotation
- .setToolTipText( "To colorize sequence annotation labels as a function of sequence annotation" );
- addJCheckBox( _color_according_to_annotation, ch_panel );
- add( ch_panel );
- break;
- case Configuration.show_node_names:
- _show_node_names = new JCheckBox( title );
- addJCheckBox( _show_node_names, ch_panel );
- add( ch_panel );
- break;
- case Configuration.show_taxonomy_scientific_names:
- _show_taxo_scientific_names = new JCheckBox( title );
- addJCheckBox( _show_taxo_scientific_names, ch_panel );
- add( ch_panel );
- break;
- case Configuration.show_taxonomy_common_names:
- _show_taxo_common_names = new JCheckBox( title );
- addJCheckBox( _show_taxo_common_names, ch_panel );
- add( ch_panel );
+ private void setTreeDisplayType( final int index, final Options.PHYLOGENY_DISPLAY_TYPE t ) {
+ getTreeDisplayTypes().set( index, t );
+ }
+
+ private void setupClickToOptions() {
+ final int default_option = _configuration.getDefaultDisplayClicktoOption();
+ int selected_index = 0;
+ int cb_index = 0;
+ if ( _configuration.doDisplayClickToOption( Configuration.display_node_data ) ) {
+ _show_data_item = cb_index;
+ addClickToOption( Configuration.display_node_data,
+ _configuration.getClickToTitle( Configuration.display_node_data ) );
+ if ( default_option == Configuration.display_node_data ) {
+ selected_index = cb_index;
+ }
+ cb_index++;
+ }
+ if ( _configuration.doDisplayClickToOption( Configuration.collapse_uncollapse ) ) {
+ _collapse_cb_item = cb_index;
+ addClickToOption( Configuration.collapse_uncollapse,
+ _configuration.getClickToTitle( Configuration.collapse_uncollapse ) );
+ if ( default_option == Configuration.collapse_uncollapse ) {
+ selected_index = cb_index;
+ }
+ cb_index++;
+ }
+ if ( _configuration.doDisplayClickToOption( Configuration.uncollapse_all ) ) {
+ _uncollapse_all_cb_item = cb_index;
+ addClickToOption( Configuration.uncollapse_all,
+ _configuration.getClickToTitle( Configuration.uncollapse_all ) );
+ if ( default_option == Configuration.uncollapse_all ) {
+ selected_index = cb_index;
+ }
+ cb_index++;
+ }
+ if ( _configuration.doDisplayClickToOption( Configuration.reroot ) ) {
+ _reroot_cb_item = cb_index;
+ addClickToOption( Configuration.reroot, _configuration.getClickToTitle( Configuration.reroot ) );
+ if ( default_option == Configuration.reroot ) {
+ selected_index = cb_index;
+ }
+ cb_index++;
+ }
+ if ( _configuration.doDisplayClickToOption( Configuration.subtree ) ) {
+ _subtree_cb_item = cb_index;
+ addClickToOption( Configuration.subtree, _configuration.getClickToTitle( Configuration.subtree ) );
+ if ( default_option == Configuration.subtree ) {
+ selected_index = cb_index;
+ }
+ cb_index++;
+ }
+ if ( _configuration.doDisplayClickToOption( Configuration.swap ) ) {
+ _swap_cb_item = cb_index;
+ addClickToOption( Configuration.swap, _configuration.getClickToTitle( Configuration.swap ) );
+ if ( default_option == Configuration.swap ) {
+ selected_index = cb_index;
+ }
+ cb_index++;
+ }
+ if ( _configuration.doDisplayClickToOption( Configuration.order_subtree ) ) {
+ _order_subtree_cb_item = cb_index;
+ addClickToOption( Configuration.order_subtree,
+ _configuration.getClickToTitle( Configuration.order_subtree ) );
+ if ( default_option == Configuration.order_subtree ) {
+ selected_index = cb_index;
+ }
+ cb_index++;
+ }
+ if ( _configuration.doDisplayClickToOption( Configuration.sort_descendents ) ) {
+ _sort_descendents_item = cb_index;
+ addClickToOption( Configuration.sort_descendents,
+ _configuration.getClickToTitle( Configuration.sort_descendents ) );
+ if ( default_option == Configuration.sort_descendents ) {
+ selected_index = cb_index;
+ }
+ cb_index++;
+ }
+ if ( _configuration.doDisplayClickToOption( Configuration.color_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 ) );
+ if ( default_option == Configuration.color_subtree ) {
+ selected_index = cb_index;
+ }
+ cb_index++;
+ }
+ if ( _configuration.doDisplayClickToOption( Configuration.open_seq_web ) ) {
+ _open_seq_web_item = cb_index;
+ addClickToOption( Configuration.open_seq_web,
+ _configuration.getClickToTitle( Configuration.open_seq_web ) );
+ if ( default_option == Configuration.open_seq_web ) {
+ selected_index = cb_index;
+ }
+ 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 ) );
+ if ( default_option == Configuration.open_tax_web ) {
+ selected_index = cb_index;
+ }
+ cb_index++;
+ }
+ if ( _configuration.doDisplayClickToOption( Configuration.blast ) ) {
+ _blast_item = cb_index;
+ addClickToOption( Configuration.blast, _configuration.getClickToTitle( Configuration.blast ) );
+ if ( default_option == Configuration.blast ) {
+ selected_index = cb_index;
+ }
+ cb_index++;
+ }
+ if ( _configuration.doDisplayClickToOption( Configuration.select_nodes ) ) {
+ _select_nodes_item = cb_index;
+ addClickToOption( Configuration.select_nodes,
+ _configuration.getClickToTitle( Configuration.select_nodes ) );
+ if ( default_option == Configuration.select_nodes ) {
+ selected_index = cb_index;
+ }
+ cb_index++;
+ }
+ if ( _configuration.doDisplayClickToOption( Configuration.get_ext_desc_data ) ) {
+ _get_ext_desc_data = cb_index;
+ if ( !ForesterUtil.isEmpty( getConfiguration().getLabelForGetExtDescendentsData() ) ) {
+ addClickToOption( Configuration.get_ext_desc_data,
+ getConfiguration().getLabelForGetExtDescendentsData() );
+ }
+ else {
+ 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;
+ }
+ cb_index++;
+ }
+ if ( getOptions().isEditable() ) {
+ if ( _configuration.doDisplayClickToOption( Configuration.cut_subtree ) ) {
+ _cut_subtree_item = cb_index;
+ addClickToOption( Configuration.cut_subtree,
+ _configuration.getClickToTitle( Configuration.cut_subtree ) );
+ if ( default_option == Configuration.cut_subtree ) {
+ selected_index = cb_index;
+ }
+ cb_index++;
+ }
+ if ( _configuration.doDisplayClickToOption( Configuration.copy_subtree ) ) {
+ _copy_subtree_item = cb_index;
+ addClickToOption( Configuration.copy_subtree,
+ _configuration.getClickToTitle( Configuration.copy_subtree ) );
+ if ( default_option == Configuration.copy_subtree ) {
+ selected_index = cb_index;
+ }
+ cb_index++;
+ }
+ if ( _configuration.doDisplayClickToOption( Configuration.paste_subtree ) ) {
+ _paste_subtree_item = cb_index;
+ addClickToOption( Configuration.paste_subtree,
+ _configuration.getClickToTitle( Configuration.paste_subtree ) );
+ if ( default_option == Configuration.paste_subtree ) {
+ selected_index = cb_index;
+ }
+ cb_index++;
+ }
+ if ( _configuration.doDisplayClickToOption( Configuration.delete_subtree_or_node ) ) {
+ _delete_node_or_subtree_item = cb_index;
+ addClickToOption( Configuration.delete_subtree_or_node,
+ _configuration.getClickToTitle( Configuration.delete_subtree_or_node ) );
+ if ( default_option == Configuration.delete_subtree_or_node ) {
+ selected_index = cb_index;
+ }
+ cb_index++;
+ }
+ if ( _configuration.doDisplayClickToOption( Configuration.add_new_node ) ) {
+ _add_new_node_item = cb_index;
+ addClickToOption( Configuration.add_new_node,
+ _configuration.getClickToTitle( Configuration.add_new_node ) );
+ if ( default_option == Configuration.add_new_node ) {
+ selected_index = cb_index;
+ }
+ cb_index++;
+ }
+ if ( _configuration.doDisplayClickToOption( Configuration.edit_node_data ) ) {
+ _edit_node_data_item = cb_index;
+ addClickToOption( Configuration.edit_node_data,
+ _configuration.getClickToTitle( Configuration.edit_node_data ) );
+ if ( default_option == Configuration.edit_node_data ) {
+ selected_index = cb_index;
+ }
+ cb_index++;
+ }
+ }
+ // Set default selection and its action
+ _click_to_combobox.setSelectedIndex( selected_index );
+ setClickToAction( selected_index );
+ }
+
+ private void setupDisplayCheckboxes() {
+ if ( _configuration.doDisplayOption( Configuration.dynamically_hide_data ) ) {
+ addCheckbox( Configuration.dynamically_hide_data,
+ _configuration.getDisplayTitle( Configuration.dynamically_hide_data ) );
+ setCheckbox( Configuration.dynamically_hide_data,
+ _configuration.doCheckOption( Configuration.dynamically_hide_data ) );
+ }
+ if ( _configuration.doDisplayOption( Configuration.node_data_popup ) ) {
+ addCheckbox( Configuration.node_data_popup,
+ _configuration.getDisplayTitle( Configuration.node_data_popup ) );
+ setCheckbox( Configuration.node_data_popup, _configuration.doCheckOption( Configuration.node_data_popup ) );
+ }
+ if ( _configuration.doDisplayOption( Configuration.display_internal_data ) ) {
+ addCheckbox( Configuration.display_internal_data,
+ _configuration.getDisplayTitle( Configuration.display_internal_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 ) );
+ 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_species,
+ _configuration.doCheckOption( Configuration.color_according_to_species ) );
+ }
+ if ( _configuration.doDisplayOption( Configuration.color_according_to_annotation ) ) {
+ addCheckbox( Configuration.color_according_to_annotation,
+ _configuration.getDisplayTitle( Configuration.color_according_to_annotation ) );
+ setCheckbox( Configuration.color_according_to_annotation,
+ _configuration.doCheckOption( Configuration.color_according_to_annotation ) );
+ }
+ 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 ) );
+ setCheckbox( Configuration.width_branches, _configuration.doCheckOption( Configuration.width_branches ) );
+ }
+ final JLabel label = new JLabel( "Display Data:" );
+ label.setFont( ControlPanel.jcb_bold_font );
+ if ( !getConfiguration().isUseNativeUI() ) {
+ label.setForeground( getConfiguration().getGuiCheckboxTextColor() );
+ }
+ add( label );
+ if ( _configuration.doDisplayOption( Configuration.show_node_names ) ) {
+ addCheckbox( Configuration.show_node_names,
+ _configuration.getDisplayTitle( Configuration.show_node_names ) );
+ setCheckbox( Configuration.show_node_names, _configuration.doCheckOption( Configuration.show_node_names ) );
+ }
+ if ( _configuration.doDisplayOption( Configuration.show_tax_code ) ) {
+ addCheckbox( Configuration.show_tax_code, _configuration.getDisplayTitle( Configuration.show_tax_code ) );
+ setCheckbox( Configuration.show_tax_code, _configuration.doCheckOption( Configuration.show_tax_code ) );
+ }
+ if ( _configuration.doDisplayOption( Configuration.show_taxonomy_scientific_names ) ) {
+ addCheckbox( Configuration.show_taxonomy_scientific_names,
+ _configuration.getDisplayTitle( Configuration.show_taxonomy_scientific_names ) );
+ setCheckbox( Configuration.show_taxonomy_scientific_names,
+ _configuration.doCheckOption( Configuration.show_taxonomy_scientific_names ) );
+ }
+ if ( _configuration.doDisplayOption( Configuration.show_taxonomy_common_names ) ) {
+ addCheckbox( Configuration.show_taxonomy_common_names,
+ _configuration.getDisplayTitle( Configuration.show_taxonomy_common_names ) );
+ setCheckbox( Configuration.show_taxonomy_common_names,
+ _configuration.doCheckOption( Configuration.show_taxonomy_common_names ) );
+ }
+ if ( _configuration.doDisplayOption( Configuration.show_tax_rank ) ) {
+ addCheckbox( Configuration.show_tax_rank, _configuration.getDisplayTitle( Configuration.show_tax_rank ) );
+ setCheckbox( Configuration.show_tax_rank, _configuration.doCheckOption( Configuration.show_tax_rank ) );
+ }
+ if ( _configuration.doDisplayOption( Configuration.show_seq_names ) ) {
+ addCheckbox( Configuration.show_seq_names, _configuration.getDisplayTitle( Configuration.show_seq_names ) );
+ setCheckbox( Configuration.show_seq_names, _configuration.doCheckOption( Configuration.show_seq_names ) );
+ }
+ if ( _configuration.doDisplayOption( Configuration.show_gene_names ) ) {
+ addCheckbox( Configuration.show_gene_names,
+ _configuration.getDisplayTitle( Configuration.show_gene_names ) );
+ setCheckbox( Configuration.show_gene_names, _configuration.doCheckOption( Configuration.show_gene_names ) );
+ }
+ if ( _configuration.doDisplayOption( Configuration.show_seq_symbols ) ) {
+ addCheckbox( Configuration.show_seq_symbols,
+ _configuration.getDisplayTitle( Configuration.show_seq_symbols ) );
+ setCheckbox( Configuration.show_seq_symbols,
+ _configuration.doCheckOption( Configuration.show_seq_symbols ) );
+ }
+ if ( _configuration.doDisplayOption( Configuration.show_sequence_acc ) ) {
+ addCheckbox( Configuration.show_sequence_acc,
+ _configuration.getDisplayTitle( Configuration.show_sequence_acc ) );
+ setCheckbox( Configuration.show_sequence_acc,
+ _configuration.doCheckOption( Configuration.show_sequence_acc ) );
+ }
+ if ( _configuration.doDisplayOption( Configuration.show_annotation ) ) {
+ 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_binary_characters,
+ _configuration.doCheckOption( Configuration.show_binary_characters ) );
+ }
+ if ( _configuration.doDisplayOption( Configuration.show_binary_character_counts ) ) {
+ addCheckbox( Configuration.show_binary_character_counts,
+ _configuration.getDisplayTitle( Configuration.show_binary_character_counts ) );
+ setCheckbox( Configuration.show_binary_character_counts,
+ _configuration.doCheckOption( Configuration.show_binary_character_counts ) );
+ }
+ if ( _configuration.doDisplayOption( Configuration.show_domain_architectures ) ) {
+ addCheckbox( Configuration.show_domain_architectures,
+ _configuration.getDisplayTitle( Configuration.show_domain_architectures ) );
+ setCheckbox( Configuration.show_domain_architectures,
+ _configuration.doCheckOption( Configuration.show_domain_architectures ) );
+ }
+ 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 ) );
+ setCheckbox( Configuration.write_events, _configuration.doCheckOption( Configuration.write_events ) );
+ }
+ if ( _configuration.doDisplayOption( Configuration.show_vector_data ) ) {
+ addCheckbox( Configuration.show_vector_data,
+ _configuration.getDisplayTitle( Configuration.show_vector_data ) );
+ setCheckbox( Configuration.show_vector_data,
+ _configuration.doCheckOption( Configuration.show_vector_data ) );
+ }
+ if ( _configuration.doDisplayOption( Configuration.show_properties ) ) {
+ addCheckbox( Configuration.show_properties,
+ _configuration.getDisplayTitle( Configuration.show_properties ) );
+ setCheckbox( Configuration.show_properties, _configuration.doCheckOption( Configuration.show_properties ) );
+ }
+ if ( _configuration.doDisplayOption( Configuration.show_taxonomy_images ) ) {
+ addCheckbox( Configuration.show_taxonomy_images,
+ _configuration.getDisplayTitle( Configuration.show_taxonomy_images ) );
+ setCheckbox( Configuration.show_taxonomy_images,
+ _configuration.doCheckOption( Configuration.show_taxonomy_images ) );
+ }
+ }
+
+ private void setVisibilityOfDomainStrucureControls() {
+ if ( _zoom_in_domain_structure != null ) {
+ 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 );
+ }
+ }
+ }
+ }
+ }
+
+ void activateButtonToReturnToSuperTree( int index ) {
+ --index;
+ if ( index > 0 ) {
+ _return_to_super_tree.setText( RETURN_TO_SUPER_TREE_TEXT + " " + index );
+ }
+ else {
+ _return_to_super_tree.setText( RETURN_TO_SUPER_TREE_TEXT );
+ }
+ _return_to_super_tree.setForeground( getConfiguration().getGuiCheckboxAndButtonActiveColor() );
+ _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)
+ */
+ void addButtons() {
+ final JLabel spacer = new JLabel( "" );
+ spacer.setOpaque( false );
+ add( spacer );
+ 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() );
+ add( x_panel );
+ add( y_panel );
+ add( z_panel );
+ if ( getConfiguration().isUseNativeUI() ) {
+ _zoom_in_x = new TypomaticJButton( "+" );
+ _zoom_out_x = new TypomaticJButton( "-" );
+ }
+ else {
+ _zoom_in_x = new TypomaticJButton( "X+" );
+ _zoom_out_x = new TypomaticJButton( "X-" );
+ }
+ _zoom_in_y = new TypomaticJButton( "Y+" );
+ _zoom_out_y = new TypomaticJButton( "Y-" );
+ _show_whole = new JButton( "F" );
+ _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 ) );
+ }
+ else {
+ _zoom_out_x.setPreferredSize( new Dimension( 10, 10 ) );
+ _zoom_in_x.setPreferredSize( new Dimension( 10, 10 ) );
+ }
+ _zoom_out_y.setPreferredSize( new Dimension( 10, 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( "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 ) {
+ setUpControlsForDepthCollapse();
+ }
+ if ( true ) {
+ setUpControlsForRankCollapse();
+ }
+ 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_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" );
+ 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
+ .setToolTipText( "To colorize sequence annotation labels as a function of sequence annotation" );
+ addJCheckBox( _color_according_to_annotation, ch_panel );
+ add( ch_panel );
+ break;
+ case Configuration.show_node_names:
+ _show_node_names = new JCheckBox( title );
+ addJCheckBox( _show_node_names, ch_panel );
+ add( ch_panel );
+ break;
+ case Configuration.show_taxonomy_scientific_names:
+ _show_taxo_scientific_names = new JCheckBox( title );
+ addJCheckBox( _show_taxo_scientific_names, ch_panel );
+ add( ch_panel );
+ break;
+ case Configuration.show_taxonomy_common_names:
+ _show_taxo_common_names = new JCheckBox( title );
+ addJCheckBox( _show_taxo_common_names, ch_panel );
+ add( ch_panel );
break;
case Configuration.show_tax_code:
_show_taxo_code = new JCheckBox( title );
addJCheckBox( _show_taxo_code, ch_panel );
add( ch_panel );
break;
+ case Configuration.show_tax_rank:
+ _show_taxo_rank = new JCheckBox( title );
+ addJCheckBox( _show_taxo_rank, ch_panel );
+ add( ch_panel );
+ break;
case Configuration.show_taxonomy_images:
_show_taxo_images_cb = new JCheckBox( title );
addJCheckBox( _show_taxo_images_cb, ch_panel );
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 );
+ add( ch_panel );
+ break;
case Configuration.show_gene_names:
_show_gene_names = new JCheckBox( title );
addJCheckBox( _show_gene_names, ch_panel );
add( ch_panel );
break;
- case Configuration.show_gene_symbols:
- _show_gene_symbols = new JCheckBox( title );
- addJCheckBox( _show_gene_symbols, ch_panel );
+ case Configuration.show_seq_symbols:
+ _show_seq_symbols = new JCheckBox( title );
+ addJCheckBox( _show_seq_symbols, ch_panel );
add( ch_panel );
break;
case Configuration.show_sequence_acc:
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;
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() ) ) {
+ if ( recalc_longest_ext_node_info ) {
+ _mainpanel.getCurrentTreePanel().initNodeData();
+ _mainpanel.getCurrentTreePanel().calculateLongestExtNodeInfo();
+ }
if ( getOptions().isShowOverview() ) {
_mainpanel.getCurrentTreePanel().updateOvSizes();
}
_mainpanel.getCurrentTreePanel().recalculateMaxDistanceToRoot();
setVisibilityOfDomainStrucureControls();
updateDomainStructureEvaluethresholdDisplay();
+ updateDepthCollapseDepthDisplay();
+ updateRankCollapseRankDisplay();
+ getMainPanel().getControlPanel();
+ _mainpanel.getCurrentTreePanel().updateButtonToUncollapseAll();
_mainpanel.getCurrentTreePanel().calculateScaleDistance();
_mainpanel.getCurrentTreePanel().calcMaxDepth();
_mainpanel.adjustJScrollPane();
- if ( recalc_longest_ext_node_info ) {
- _mainpanel.getCurrentTreePanel().initNodeData();
- _mainpanel.getCurrentTreePanel().calculateLongestExtNodeInfo();
- }
_mainpanel.getCurrentTreePanel().repaint();
- // _mainpanel.getCurrentTreePanel().setUpUrtFactors();
+ // _mainpanel.getCurrentTreePanel().setUpUrtFactor();
}
}
/**
* Indicates what action should be execute when a node is clicked
- *
+ *
* @return the click-on action
*/
NodeClickAction getActionWhenNodeClicked() {
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;
+ }
+
+ Map<String, Color> getSequenceColors() {
+ return _sequence_colors;
}
List<String> getSingleClickToNames() {
return ( ( _color_according_to_annotation != null ) && _color_according_to_annotation.isSelected() );
}
- 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 isColorAccordingToTaxonomy() {
+ return ( ( _color_acc_species != null ) && _color_acc_species.isSelected() );
}
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 ( ( _show_gene_names != null ) && _show_gene_names.isSelected() );
}
- boolean isShowGeneSymbols() {
- return ( ( _show_gene_symbols != null ) && _show_gene_symbols.isSelected() );
- }
-
boolean isShowInternalData() {
return ( ( _display_internal_data == null ) || _display_internal_data.isSelected() );
}
- boolean isShowNodeNames() {
- return ( ( _show_node_names != null ) && _show_node_names.isSelected() );
+ boolean isShowExternalData() {
+ return ( ( _display_external_data == null ) || _display_external_data.isSelected() );
+ }
+
+ boolean isShowNodeNames() {
+ return ( ( _show_node_names != null ) && _show_node_names.isSelected() );
+ }
+
+ boolean isShowSeqNames() {
+ return ( ( _show_seq_names != null ) && _show_seq_names.isSelected() );
+ }
+
+ boolean isShowSeqSymbols() {
+ return ( ( _show_seq_symbols != null ) && _show_seq_symbols.isSelected() );
}
boolean isShowSequenceAcc() {
return ( ( _show_taxo_code != null ) && _show_taxo_code.isSelected() );
}
+ boolean isShowTaxonomyRank() {
+ return ( ( _show_taxo_rank != null ) && _show_taxo_rank.isSelected() );
+ }
+
boolean isShowTaxonomyCommonNames() {
return ( ( _show_taxo_common_names != null ) && _show_taxo_common_names.isSelected() );
}
return ( ( _show_taxo_scientific_names != null ) && _show_taxo_scientific_names.isSelected() );
}
+ boolean isUseVisualStyles() {
+ return ( ( ( getUseVisualStylesCb() != null ) && getUseVisualStylesCb().isSelected() )
+ || ( ( getUseVisualStylesCb() == null ) && _color_branches ) );
+ }
+
boolean isWidthBranches() {
return ( ( _width_branches != null ) && _width_branches.isSelected() );
}
+ boolean isWriteBranchLengthValues() {
+ return ( ( _write_branch_length_values != null ) && _write_branch_length_values.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 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 );
}
}
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 );
}
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 );
_show_taxo_code.setSelected( state );
}
break;
+ case Configuration.show_tax_rank:
+ if ( _show_taxo_rank != null ) {
+ _show_taxo_rank.setSelected( state );
+ }
+ break;
case Configuration.show_taxonomy_images:
if ( _show_taxo_images_cb != null ) {
_show_taxo_images_cb.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 );
+ }
+ break;
case Configuration.show_gene_names:
if ( _show_gene_names != null ) {
_show_gene_names.setSelected( state );
}
break;
- case Configuration.show_gene_symbols:
- if ( _show_gene_symbols != null ) {
- _show_gene_symbols.setSelected( state );
+ case Configuration.show_seq_symbols:
+ if ( _show_seq_symbols != null ) {
+ _show_seq_symbols.setSelected( state );
}
break;
case Configuration.show_vector_data:
else if ( action == _get_ext_desc_data ) {
setActionWhenNodeClicked( NodeClickAction.GET_EXT_DESC_DATA );
}
- else {
- throw new RuntimeException( "unknown action: " + action );
- }
- // make sure drop down is displaying the correct action
- // in case this was called from outside the class
- _click_to_combobox.setSelectedIndex( action );
- }
-
- void setColorBranches( final boolean color_branches ) {
- _color_branches = color_branches;
- }
-
- void setDrawPhylogram( final boolean b ) {
- getDisplayAsPhylogramCb().setSelected( b );
- setDrawPhylogram( getMainPanel().getCurrentTabIndex(), b );
- }
-
- void setDrawPhylogramEnabled( final boolean b ) {
- getDisplayAsPhylogramCb().setEnabled( b );
- }
-
- void setDynamicHidingIsOn( final boolean is_on ) {
- // if ( !_configuration.isUseNativeUI() ) {
- if ( is_on ) {
- getDynamicallyHideData().setForeground( getConfiguration().getGuiCheckboxAndButtonActiveColor() );
- }
- else {
- if ( !_configuration.isUseNativeUI() ) {
- getDynamicallyHideData().setForeground( getConfiguration().getGuiButtonTextColor() );
- }
- else {
- getDynamicallyHideData().setForeground( Color.BLACK );
- }
- }
- // }
- }
-
- void setShowEvents( final boolean show_events ) {
- if ( getShowEventsCb() == null ) {
- _show_events = new JCheckBox( "" );
- }
- getShowEventsCb().setSelected( show_events );
- }
-
- void setSpeciesColors( final Map<String, Color> species_colors ) {
- _species_colors = species_colors;
- }
-
- /* GUILHEM_END */
- /*
- * Set up the controls from the config settings. 11/26/05
- */
- void setupControls() {
- // The tree display options:
- setupDisplayCheckboxes();
- /* GUILHEM_BEG */
- // The sequence relation query selection combo-box
- if ( _configuration.displaySequenceRelations() ) {
- addSequenceRelationBlock();
- }
- /* GUILHEM_END */
- // Click-to options
- startClickToOptions();
- setupClickToOptions();
- endClickToOptions();
- // Zoom and quick edit buttons
- addButtons();
- setupSearchTools();
- }
-
- void setUpControlsForDomainStrucures() {
- _domain_display_label = new JLabel( "Domain Display:" );
- add( customizeLabel( _domain_display_label, getConfiguration() ) );
- add( _domain_display_label );
- _zoom_in_domain_structure = new JButton( "d+" );
- _zoom_out_domain_structure = new JButton( "d-" );
- _decr_domain_structure_evalue_thr = new JButton( "-" );
- _incr_domain_structure_evalue_thr = new JButton( "+" );
- _zoom_in_domain_structure.setPreferredSize( new Dimension( 10, 10 ) );
- _zoom_out_domain_structure.setPreferredSize( new Dimension( 10, 10 ) );
- _decr_domain_structure_evalue_thr.setPreferredSize( new Dimension( 10, 10 ) );
- _incr_domain_structure_evalue_thr.setPreferredSize( new Dimension( 10, 10 ) );
- _incr_domain_structure_evalue_thr.setToolTipText( "Increase the E-value threshold by a factor of 10" );
- _decr_domain_structure_evalue_thr.setToolTipText( "Decrease the E-value threshold by a factor of 10" );
- _domain_structure_evalue_thr_tf = new JTextField( 3 );
- _domain_structure_evalue_thr_tf.setEditable( false );
- if ( !getConfiguration().isUseNativeUI() ) {
- _domain_structure_evalue_thr_tf.setForeground( getConfiguration().getGuiMenuBackgroundColor() );
- _domain_structure_evalue_thr_tf.setBackground( getConfiguration().getGuiCheckboxTextColor() );
- _domain_structure_evalue_thr_tf.setBorder( null );
- }
- final JPanel d1_panel = new JPanel( new GridLayout( 1, 2, 0, 0 ) );
- final JPanel d2_panel = new JPanel( new GridLayout( 1, 3, 0, 0 ) );
- if ( !_configuration.isUseNativeUI() ) {
- d1_panel.setBackground( getBackground() );
- d2_panel.setBackground( getBackground() );
- }
- add( d1_panel );
- add( d2_panel );
- addJButton( _zoom_out_domain_structure, d1_panel );
- addJButton( _zoom_in_domain_structure, d1_panel );
- addJButton( _decr_domain_structure_evalue_thr, d2_panel );
- addJTextField( _domain_structure_evalue_thr_tf, d2_panel );
- addJButton( _incr_domain_structure_evalue_thr, d2_panel );
- }
-
- void setupSearchTools() {
- 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:" );
- 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 );
- if ( !getConfiguration().isUseNativeUI() ) {
- _search_found_label.setForeground( getConfiguration().getGuiCheckboxTextColor() );
+ else if ( action == _open_pdb_item ) {
+ setActionWhenNodeClicked( NodeClickAction.OPEN_PDB_WEB );
}
- _search_tf = new JTextField( 3 );
- _search_tf.setToolTipText( tip );
- _search_tf.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 );
- 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 ) {
- search();
- displayedPhylogenyMightHaveChanged( true );
- }
- };
- final ActionListener action_listener = new ActionListener() {
-
- @Override
- public void actionPerformed( final ActionEvent e ) {
- searchReset();
- setSearchFoundCountsOnLabel( 0 );
- getSearchFoundCountsLabel().setVisible( false );
- getSearchTextField().setText( "" );
- getSearchResetButton().setEnabled( false );
- getSearchResetButton().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 );
- }
-
- /**
- * Fit entire tree into window.
- */
- void showWhole() {
- if ( ( _mainpanel.getCurrentScrollPane() == null ) || _mainpanel.getCurrentTreePanel().getPhylogeny().isEmpty() ) {
- return;
+ else if ( action == _color_node_font_item ) {
+ setActionWhenNodeClicked( NodeClickAction.COLOR_NODE_FONT );
}
- getCurrentTreePanel().updateSetOfCollapsedExternalNodes();
- displayedPhylogenyMightHaveChanged( true );
- _mainpanel.getCurrentTreePanel().updateOvSettings();
- _mainpanel.getCurrentTreePanel().validate();
- _mainpanel.validate();
- _mainpanel.getCurrentTreePanel().calcParametersForPainting( _mainpanel.getSizeOfViewport().width,
- _mainpanel.getSizeOfViewport().height,
- true );
- _mainpanel.getCurrentTreePanel().resetPreferredSize();
- _mainpanel.adjustJScrollPane();
- _mainpanel.getCurrentTreePanel().repaint();
- _mainpanel.getCurrentTreePanel().validate();
- _mainpanel.validate();
- _mainpanel.getCurrentTreePanel().calcParametersForPainting( _mainpanel.getSizeOfViewport().width,
- _mainpanel.getSizeOfViewport().height,
- true );
- _mainpanel.getCurrentTreePanel().resetPreferredSize();
- _mainpanel.adjustJScrollPane();
- _mainpanel.getCurrentTreePanel().repaint();
- _mainpanel.getCurrentTreePanel().updateOvSizes();
- }
-
- void showWholeAll() {
- for( final TreePanel tree_panel : _mainpanel.getTreePanels() ) {
- if ( tree_panel != null ) {
- tree_panel.validate();
- tree_panel.calcParametersForPainting( _mainpanel.getSizeOfViewport().width,
- _mainpanel.getSizeOfViewport().height,
- true );
- tree_panel.resetPreferredSize();
- tree_panel.repaint();
- }
+ else if ( action == _change_node_font_item ) {
+ setActionWhenNodeClicked( NodeClickAction.CHANGE_NODE_FONT );
}
- }
-
- // Create header for click-to combo box.
- void startClickToOptions() {
- final JLabel spacer = new JLabel( "" );
- spacer.setFont( ControlPanel.jcb_font );
- 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.setFocusable( false );
- _click_to_combobox.setMaximumRowCount( 14 );
- _click_to_combobox.setFont( ControlPanel.js_font );
- if ( !_configuration.isUseNativeUI() ) {
- _click_to_combobox.setBackground( getConfiguration().getGuiBackgroundColor() );
+ else if ( action == _uncollapse_all_cb_item ) {
+ setActionWhenNodeClicked( NodeClickAction.UNCOLLAPSE_ALL );
}
- // don't add listener until all items are set (or each one will trigger
- // an event)
- // click_to_list.addActionListener(this);
- add( _click_to_combobox );
- // Correlates option names to titles
- _all_click_to_names = new HashMap<Integer, String>();
- _click_to_names = new ArrayList<String>();
- }
-
- void tabChanged() {
- if ( getMainPanel().getTabbedPane().getTabCount() > 0 ) {
- if ( getCurrentTreePanel().isPhyHasBranchLengths()
- && ( getCurrentTreePanel().getPhylogenyGraphicsType() != PHYLOGENY_GRAPHICS_TYPE.CIRCULAR ) ) {
- setDrawPhylogramEnabled( true );
- setDrawPhylogram( isDrawPhylogram() );
- }
- 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() );
- }
- getMainPanel().getCurrentTreePanel().updateSubSuperTreeButton();
- getMainPanel().getControlPanel().search();
- getSequenceRelationTypeBox().removeAllItems();
- for( final SequenceRelation.SEQUENCE_RELATION_TYPE type : getMainPanel().getCurrentPhylogeny()
- .getRelevantSequenceRelationTypes() ) {
- _sequence_relation_type_box.addItem( type );
- }
- //setSequenceRelationQueries( getMainPanel().getCurrentPhylogeny().getSequenceRelationQueries() );
- // according to GUILHEM the line above can be removed.
+ else if ( action == _order_subtree_cb_item ) {
+ setActionWhenNodeClicked( NodeClickAction.ORDER_SUBTREE );
}
- }
-
- /**
- * Uncollapse all nodes.
- */
- void uncollapseAll( final TreePanel tp ) {
- final Phylogeny t = tp.getPhylogeny();
- if ( ( t != null ) && !t.isEmpty() ) {
- for( final PhylogenyNodeIterator iter = t.iteratorPreorder(); iter.hasNext(); ) {
- final PhylogenyNode node = iter.next();
- node.setCollapse( false );
- }
- tp.resetNodeIdToDistToLeafMap();
- tp.updateSetOfCollapsedExternalNodes();
- t.recalculateNumberOfExternalDescendants( false );
- tp.setNodeInPreorderToNull();
- t.clearHashIdToNodeMap();
- showWhole();
+ else {
+ throw new RuntimeException( "unknown action: " + action );
}
+ // make sure drop down is displaying the correct action
+ // in case this was called from outside the class
+ _click_to_combobox.setSelectedIndex( action );
}
- void updateDomainStructureEvaluethresholdDisplay() {
- if ( _domain_structure_evalue_thr_tf != null ) {
- _domain_structure_evalue_thr_tf.setText( "10^"
- + getMainPanel().getCurrentTreePanel().getDomainStructureEvalueThreshold() );
- }
+ public void setColorBranches( final boolean color_branches ) {
+ _color_branches = color_branches;
}
- void zoomInX( final float factor, final float x_correction_factor ) {
- final JScrollBar sb = getMainPanel().getCurrentScrollPane().getHorizontalScrollBar();
- final TreePanel treepanel = getMainPanel().getCurrentTreePanel();
- treepanel.multiplyUrtFactor( 1f );
- if ( ( treepanel.getPhylogenyGraphicsType() == PHYLOGENY_GRAPHICS_TYPE.CIRCULAR )
- || ( treepanel.getPhylogenyGraphicsType() == PHYLOGENY_GRAPHICS_TYPE.UNROOTED )
- || isDrawPhylogram( getMainPanel().getCurrentTabIndex() )
- || ( getOptions().getCladogramType() == CLADOGRAM_TYPE.NON_LINED_UP ) ) {
- final double x = ( sb.getMaximum() - sb.getMinimum() ) / ( sb.getValue() + ( sb.getVisibleAmount() / 2.0 ) );
- treepanel.setXdistance( ( treepanel.getXdistance() * factor ) );
- treepanel.setXcorrectionFactor( ( treepanel.getXcorrectionFactor() * x_correction_factor ) );
- getMainPanel().adjustJScrollPane();
- treepanel.resetPreferredSize();
- getMainPanel().getCurrentScrollPane().getViewport().validate();
- sb.setValue( ForesterUtil.roundToInt( ( ( sb.getMaximum() - sb.getMinimum() ) / x )
- - ( sb.getVisibleAmount() / 2.0 ) ) );
- }
- else {
- final int x = sb.getMaximum() - sb.getMinimum() - sb.getVisibleAmount() - sb.getValue();
- treepanel.setXdistance( ( treepanel.getXdistance() * factor ) );
- treepanel.setXcorrectionFactor( ( treepanel.getXcorrectionFactor() * x_correction_factor ) );
- getMainPanel().adjustJScrollPane();
- treepanel.resetPreferredSize();
- getMainPanel().getCurrentScrollPane().getViewport().validate();
- sb.setValue( sb.getMaximum() - sb.getMinimum() - x - sb.getVisibleAmount() );
+ 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;
}
- treepanel.resetPreferredSize();
- treepanel.updateOvSizes();
+ setTreeDisplayType( getMainPanel().getCurrentTabIndex(), t );
}
- void zoomInY( final float factor ) {
- final JScrollBar sb = getMainPanel().getCurrentScrollPane().getVerticalScrollBar();
- final TreePanel treepanel = getMainPanel().getCurrentTreePanel();
- treepanel.multiplyUrtFactor( 1.1f );
- final double x = ( sb.getMaximum() - sb.getMinimum() ) / ( sb.getValue() + ( sb.getVisibleAmount() / 2.0 ) );
- treepanel.setYdistance( ( treepanel.getYdistance() * factor ) );
- getMainPanel().adjustJScrollPane();
- treepanel.resetPreferredSize();
- getMainPanel().getCurrentScrollPane().getViewport().validate();
- sb.setValue( ForesterUtil.roundToInt( ( ( sb.getMaximum() - sb.getMinimum() ) / x )
- - ( sb.getVisibleAmount() / 2.0 ) ) );
- treepanel.resetPreferredSize();
- treepanel.updateOvSizes();
+ void setDrawPhylogramEnabled( final boolean b ) {
+ if ( getDisplayAsAlignedPhylogramRb() != null && getDisplayAsUnalignedPhylogramRb() != null
+ && getDisplayAsCladogramRb() != null ) {
+ getDisplayAsAlignedPhylogramRb().setEnabled( b );
+ getDisplayAsUnalignedPhylogramRb().setEnabled( b );
+ getDisplayAsCladogramRb().setEnabled( b );
+ }
}
- void zoomOutX( final float factor, final float x_correction_factor ) {
- final TreePanel treepanel = getMainPanel().getCurrentTreePanel();
- treepanel.multiplyUrtFactor( 1f );
- if ( ( treepanel.getXdistance() * factor ) > 0.0 ) {
- final JScrollBar sb = getMainPanel().getCurrentScrollPane().getHorizontalScrollBar();
- if ( ( treepanel.getPhylogenyGraphicsType() == PHYLOGENY_GRAPHICS_TYPE.CIRCULAR )
- || ( treepanel.getPhylogenyGraphicsType() == PHYLOGENY_GRAPHICS_TYPE.UNROOTED )
- || isDrawPhylogram( getMainPanel().getCurrentTabIndex() )
- || ( getOptions().getCladogramType() == CLADOGRAM_TYPE.NON_LINED_UP ) ) {
- getMainPanel().adjustJScrollPane();
- treepanel.resetPreferredSize();
- getMainPanel().getCurrentScrollPane().getViewport().validate();
- final double x = ( sb.getMaximum() - sb.getMinimum() )
- / ( sb.getValue() + ( sb.getVisibleAmount() / 2.0 ) );
- treepanel.setXdistance( ( treepanel.getXdistance() * factor ) );
- treepanel.setXcorrectionFactor( ( treepanel.getXcorrectionFactor() * x_correction_factor ) );
- getMainPanel().adjustJScrollPane();
- treepanel.resetPreferredSize();
- getMainPanel().getCurrentScrollPane().getViewport().validate();
- sb.setValue( ForesterUtil.roundToInt( ( ( sb.getMaximum() - sb.getMinimum() ) / x )
- - ( sb.getVisibleAmount() / 2.0 ) ) );
+ void setDynamicHidingIsOn( final boolean is_on ) {
+ if ( is_on ) {
+ getDynamicallyHideData().setForeground( getConfiguration().getGuiCheckboxAndButtonActiveColor() );
+ }
+ else {
+ if ( !_configuration.isUseNativeUI() ) {
+ getDynamicallyHideData().setForeground( getConfiguration().getGuiButtonTextColor() );
}
else {
- final int x = sb.getMaximum() - sb.getMinimum() - sb.getVisibleAmount() - sb.getValue();
- treepanel.setXdistance( treepanel.getXdistance() * factor );
- treepanel.setXcorrectionFactor( treepanel.getXcorrectionFactor() * x_correction_factor );
- if ( x > 0 ) {
- getMainPanel().adjustJScrollPane();
- treepanel.resetPreferredSize();
- getMainPanel().getCurrentScrollPane().getViewport().validate();
- sb.setValue( sb.getMaximum() - sb.getMinimum() - x - sb.getVisibleAmount() );
- }
+ getDynamicallyHideData().setForeground( Color.BLACK );
}
- treepanel.resetPreferredSize();
- treepanel.updateOvSizes();
}
}
- void zoomOutY( final float factor ) {
- final TreePanel treepanel = getMainPanel().getCurrentTreePanel();
- treepanel.multiplyUrtFactor( 0.9f );
- if ( ( treepanel.getYdistance() * factor ) > 0.0 ) {
- final JScrollBar sb = getMainPanel().getCurrentScrollPane().getVerticalScrollBar();
- final double x = ( sb.getMaximum() - sb.getMinimum() ) / ( sb.getValue() + ( sb.getVisibleAmount() / 2.0 ) );
- treepanel.setYdistance( ( treepanel.getYdistance() * factor ) );
- getMainPanel().adjustJScrollPane();
- treepanel.resetPreferredSize();
- getMainPanel().getCurrentScrollPane().getViewport().validate();
- sb.setValue( ForesterUtil.roundToInt( ( ( sb.getMaximum() - sb.getMinimum() ) / x )
- - ( sb.getVisibleAmount() / 2.0 ) ) );
- treepanel.resetPreferredSize();
- treepanel.updateOvSizes();
- }
+ void setSearchFoundCountsOnLabel0( final int counts ) {
+ getSearchFoundCountsLabel0().setText( "Found: " + counts );
}
- private void addClickToOption( final int which, final String title ) {
- _click_to_combobox.addItem( title );
- _click_to_names.add( title );
- _all_click_to_names.put( new Integer( which ), title );
- if ( !_configuration.isUseNativeUI() ) {
- _click_to_combobox.setBackground( getConfiguration().getGuiButtonBackgroundColor() );
- _click_to_combobox.setForeground( getConfiguration().getGuiButtonTextColor() );
- }
+ void setSearchFoundCountsOnLabel1( final int counts ) {
+ getSearchFoundCountsLabel1().setText( "Found: " + counts );
}
- /* GUILHEM_BEG */
- private void addSequenceRelationBlock() {
- final JLabel spacer = new JLabel( "" );
- spacer.setSize( 1, 1 );
- add( spacer );
- final JLabel mainLabel = new JLabel( "Sequence relations to display" );
- final JLabel typeLabel = customizeLabel( new JLabel( "(type) " ), getConfiguration() );
- typeLabel.setFont( ControlPanel.js_font.deriveFont( 7 ) );
- getSequenceRelationTypeBox().setFocusable( false );
- _sequence_relation_type_box.setFont( ControlPanel.js_font );
- if ( !_configuration.isUseNativeUI() ) {
- _sequence_relation_type_box.setBackground( getConfiguration().getGuiButtonBackgroundColor() );
- _sequence_relation_type_box.setForeground( getConfiguration().getGuiButtonTextColor() );
- }
- _sequence_relation_type_box.setRenderer( new ListCellRenderer() {
+ void setSequenceColors( final Map<String, Color> sequence_colors ) {
+ _sequence_colors = sequence_colors;
+ }
- @Override
- public Component getListCellRendererComponent( final JList list,
- final Object value,
- final int index,
- final boolean isSelected,
- final boolean cellHasFocus ) {
- final Component component = new DefaultListCellRenderer().getListCellRendererComponent( list,
- value,
- index,
- isSelected,
- cellHasFocus );
- if ( ( value != null ) && ( value instanceof SequenceRelation.SEQUENCE_RELATION_TYPE ) ) {
- ( ( DefaultListCellRenderer ) component ).setText( SequenceRelation
- .getPrintableNameByType( ( SequenceRelation.SEQUENCE_RELATION_TYPE ) value ) );
- }
- return component;
- }
- } );
- final GridBagLayout gbl = new GridBagLayout();
- _sequence_relation_type_box.setMinimumSize( new Dimension( 115, 17 ) );
- _sequence_relation_type_box.setPreferredSize( new Dimension( 115, 20 ) );
- final JPanel horizGrid = new JPanel( gbl );
- horizGrid.setBackground( getBackground() );
- horizGrid.add( typeLabel );
- horizGrid.add( _sequence_relation_type_box );
- add( customizeLabel( mainLabel, getConfiguration() ) );
- add( horizGrid );
- add( getSequenceRelationBox() );
- if ( _configuration.doDisplayOption( Configuration.show_relation_confidence ) ) {
- addCheckbox( Configuration.show_relation_confidence,
- _configuration.getDisplayTitle( Configuration.show_relation_confidence ) );
- setCheckbox( Configuration.show_relation_confidence,
- _configuration.doCheckOption( Configuration.show_relation_confidence ) );
+ void setShowEvents( final boolean show_events ) {
+ if ( getShowEventsCb() == null ) {
+ _show_events = new JCheckBox( "" );
}
- }// addSequenceRelationBlock
-
- /* GUILHEM_END */
- private List<Boolean> getIsDrawPhylogramList() {
- return _draw_phylogram;
+ getShowEventsCb().setSelected( show_events );
}
- JLabel getSearchFoundCountsLabel() {
- return _search_found_label;
+ void setSpeciesColors( final Map<String, Color> species_colors ) {
+ _species_colors = species_colors;
}
- JButton getSearchResetButton() {
- return _search_reset_button;
+ void setupControls() {
+ setupTreeDisplayTypeOptions();
+ setupDisplayCheckboxes();
+ /* GUILHEM_BEG */
+ // The sequence relation query selection combo-box
+ if ( _configuration.displaySequenceRelations() ) {
+ addSequenceRelationBlock();
+ }
+ /* GUILHEM_END */
+ // Click-to options
+ startClickToOptions();
+ setupClickToOptions();
+ endClickToOptions();
+ // Zoom and quick edit buttons
+ addButtons();
+ setupSearchTools0();
+ 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 );
}
- private void init() {
- _draw_phylogram = new ArrayList<Boolean>();
- setSpeciesColors( new HashMap<String, Color>() );
- setAnnotationColors( new HashMap<String, Color>() );
+ void setUpControlsForDomainStrucures() {
+ _domain_display_label = new JLabel( "Domain Architectures:" );
+ add( customizeLabel( _domain_display_label, getConfiguration() ) );
+ add( _domain_display_label );
+ _zoom_in_domain_structure = new TypomaticJButton( "d+" );
+ _zoom_out_domain_structure = new TypomaticJButton( "d-" );
+ _decr_domain_structure_evalue_thr = new JButton( "-" );
+ _incr_domain_structure_evalue_thr = new JButton( "+" );
+ _zoom_in_domain_structure.setPreferredSize( new Dimension( 10, 10 ) );
+ _zoom_out_domain_structure.setPreferredSize( new Dimension( 10, 10 ) );
+ _decr_domain_structure_evalue_thr.setPreferredSize( new Dimension( 10, 10 ) );
+ _incr_domain_structure_evalue_thr.setPreferredSize( new Dimension( 10, 10 ) );
+ _incr_domain_structure_evalue_thr.setToolTipText( "Increase the E-value threshold by a factor of 10" );
+ _decr_domain_structure_evalue_thr.setToolTipText( "Decrease the E-value threshold by a factor of 10" );
+ _domain_structure_evalue_thr_tf = new JTextField( 3 );
+ _domain_structure_evalue_thr_tf.setEditable( false );
+ if ( !getConfiguration().isUseNativeUI() ) {
+ _domain_structure_evalue_thr_tf.setForeground( getConfiguration().getGuiMenuBackgroundColor() );
+ _domain_structure_evalue_thr_tf.setBackground( getConfiguration().getGuiCheckboxTextColor() );
+ _domain_structure_evalue_thr_tf.setBorder( null );
+ }
+ final JPanel d1_panel = new JPanel( new GridLayout( 1, 2, 0, 0 ) );
+ final JPanel d2_panel = new JPanel( new GridLayout( 1, 3, 0, 0 ) );
+ if ( !_configuration.isUseNativeUI() ) {
+ d1_panel.setBackground( getBackground() );
+ d2_panel.setBackground( getBackground() );
+ }
+ add( d1_panel );
+ add( d2_panel );
+ addJButton( _zoom_out_domain_structure, d1_panel );
+ addJButton( _zoom_in_domain_structure, d1_panel );
+ addJButton( _decr_domain_structure_evalue_thr, d2_panel );
+ addJTextField( _domain_structure_evalue_thr_tf, d2_panel );
+ addJButton( _incr_domain_structure_evalue_thr, d2_panel );
}
- private boolean isDrawPhylogram( final int index ) {
- return getIsDrawPhylogramList().get( index );
+ void setUpControlsForDepthCollapse() {
+ _depth_collapse_label = new JLabel( "Collapse by Node Depth:" );
+ _depth_collapse_label
+ .setToolTipText( "to automaticall collapse nodes with a depth equal or larger than a threshold" );
+ add( customizeLabel( _depth_collapse_label, getConfiguration() ) );
+ add( _depth_collapse_label );
+ _decr_depth_collapse_level = new TypomaticJButton( "-" );
+ _incr_depth_collapse_level = new TypomaticJButton( "+" );
+ _decr_depth_collapse_level.setPreferredSize( new Dimension( 10, 10 ) );
+ _incr_depth_collapse_level.setPreferredSize( new Dimension( 10, 10 ) );
+ _decr_depth_collapse_level.setToolTipText( "to decrease the depth threshold (wraps around)" );
+ _incr_depth_collapse_level.setToolTipText( "to increase the depth threshold (wraps around)" );
+ _depth_collapse_depth_tf = new JTextField( 3 );
+ _depth_collapse_depth_tf.setToolTipText( "the current depth threshold" );
+ _depth_collapse_depth_tf.setEditable( false );
+ if ( !getConfiguration().isUseNativeUI() ) {
+ _depth_collapse_depth_tf.setForeground( getConfiguration().getGuiMenuBackgroundColor() );
+ _depth_collapse_depth_tf.setBackground( getConfiguration().getGuiCheckboxTextColor() );
+ _depth_collapse_depth_tf.setBorder( null );
+ }
+ final JPanel panel = new JPanel( new GridLayout( 1, 3, 0, 0 ) );
+ if ( !_configuration.isUseNativeUI() ) {
+ panel.setBackground( getBackground() );
+ }
+ add( panel );
+ addJButton( _decr_depth_collapse_level, panel );
+ addJTextField( _depth_collapse_depth_tf, panel );
+ addJButton( _incr_depth_collapse_level, panel );
+ }
+
+ void setUpControlsForRankCollapse() {
+ _rank_collapse_label = new JLabel( "Collapse by Node Rank:" );
+ _rank_collapse_label
+ .setToolTipText( "to automatically collapse nodes with a taxonomic rank equal or lower than a threshold" );
+ add( customizeLabel( _rank_collapse_label, getConfiguration() ) );
+ add( _rank_collapse_label );
+ _decr_rank_collapse_level = new TypomaticJButton( "-" );
+ _incr_rank_collapse_level = new TypomaticJButton( "+" );
+ _decr_rank_collapse_level.setPreferredSize( new Dimension( 10, 10 ) );
+ _incr_rank_collapse_level.setPreferredSize( new Dimension( 10, 10 ) );
+ _decr_rank_collapse_level.setToolTipText( "to decrease the taxonomic rank threshold (wraps around)" );
+ _incr_rank_collapse_level.setToolTipText( "to increase the taxonomic rank threshold (wraps around)" );
+ _rank_collapse_depth_tf = new JTextField( 3 );
+ _rank_collapse_depth_tf.setToolTipText( "the current taxonomic rank threshold" );
+ _rank_collapse_depth_tf.setEditable( false );
+ if ( !getConfiguration().isUseNativeUI() ) {
+ _rank_collapse_depth_tf.setForeground( getConfiguration().getGuiMenuBackgroundColor() );
+ _rank_collapse_depth_tf.setBackground( getConfiguration().getGuiCheckboxTextColor() );
+ _rank_collapse_depth_tf.setBorder( null );
+ }
+ final JPanel panel = new JPanel( new GridLayout( 1, 3, 0, 0 ) );
+ if ( !_configuration.isUseNativeUI() ) {
+ panel.setBackground( getBackground() );
+ }
+ add( panel );
+ addJButton( _decr_rank_collapse_level, panel );
+ addJTextField( _rank_collapse_depth_tf, panel );
+ addJButton( _incr_rank_collapse_level, panel );
}
- private void search( final MainPanel main_panel, final Phylogeny tree, final String query_str ) {
- getSearchFoundCountsLabel().setVisible( true );
- getSearchResetButton().setEnabled( true );
- getSearchResetButton().setVisible( true );
- String[] queries = null;
- List<PhylogenyNode> nodes = null;
- if ( query_str.indexOf( ',' ) >= 0 ) {
- queries = query_str.split( ",+" );
+ void setupSearchTools0() {
+ final JLabel search_label = new JLabel( "Search (A):" );
+ search_label.setFont( ControlPanel.jcb_bold_font );
+ if ( !getConfiguration().isUseNativeUI() ) {
+ search_label.setForeground( getConfiguration().getGuiCheckboxTextColor() );
}
- else {
- queries = new String[ 1 ];
- queries[ 0 ] = query_str.trim();
+ add( search_label );
+ search_label.setToolTipText( SEARCH_TIP_TEXT );
+ _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() );
}
- if ( ( queries != null ) && ( queries.length > 0 ) ) {
- nodes = new ArrayList<PhylogenyNode>();
- 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<PhylogenyNode> all = PhylogenyMethods.obtainAllNodesAsList( tree );
- all.removeAll( nodes );
- nodes = all;
+ _search_tf_0 = new JTextField( 3 );
+ _search_tf_0.setToolTipText( SEARCH_TIP_TEXT );
+ _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 );
}
- }
- if ( ( nodes != null ) && ( nodes.size() > 0 ) ) {
- main_panel.getCurrentTreePanel().setFoundNodes( new HashSet<Long>() );
- for( final PhylogenyNode node : nodes ) {
- main_panel.getCurrentTreePanel().getFoundNodes().add( node.getId() );
+ };
+ 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 );
}
- setSearchFoundCountsOnLabel( nodes.size() );
- }
- else {
- setSearchFoundCountsOnLabel( 0 );
- searchReset();
- }
+ };
+ _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 searchReset() {
- if ( getMainPanel().getCurrentTreePanel() != null ) {
- getMainPanel().getCurrentTreePanel().setFoundNodes( null );
+ void setupSearchTools1() {
+ 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( SEARCH_TIP_TEXT );
+ _search_found_label_1 = new JLabel();
+ getSearchFoundCountsLabel1().setVisible( false );
+ _search_found_label_1.setFont( ControlPanel.jcb_bold_font );
+ if ( !getConfiguration().isUseNativeUI() ) {
+ _search_found_label_1.setForeground( getConfiguration().getGuiCheckboxTextColor() );
+ }
+ _search_tf_1 = new JTextField( 3 );
+ _search_tf_1.setToolTipText( SEARCH_TIP_TEXT );
+ _search_tf_1.setEditable( true );
+ if ( !getConfiguration().isUseNativeUI() ) {
+ _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() );
+ add( s_panel_1 );
+ s_panel_2.setBackground( getBackground() );
+ add( s_panel_2 );
+ final KeyAdapter key_adapter = new KeyAdapter() {
- private void setDrawPhylogram( final int index, final boolean b ) {
- getIsDrawPhylogramList().set( index, b );
- }
+ @Override
+ public void keyReleased( final KeyEvent key_event ) {
+ search1();
+ displayedPhylogenyMightHaveChanged( true );
+ }
+ };
+ final ActionListener action_listener = new ActionListener() {
- void setSearchFoundCountsOnLabel( final int counts ) {
- getSearchFoundCountsLabel().setText( "Found: " + counts );
+ @Override
+ public void actionPerformed( final ActionEvent e ) {
+ searchReset1();
+ setSearchFoundCountsOnLabel1( 0 );
+ getSearchFoundCountsLabel1().setVisible( false );
+ getSearchTextField1().setText( "" );
+ getSearchResetButton1().setEnabled( false );
+ getSearchResetButton1().setVisible( false );
+ displayedPhylogenyMightHaveChanged( true );
+ }
+ };
+ _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 );
}
- private void setupClickToOptions() {
- final int default_option = _configuration.getDefaultDisplayClicktoOption();
- int selected_index = 0;
- int cb_index = 0;
- if ( _configuration.doDisplayClickToOption( Configuration.display_node_data ) ) {
- _show_data_item = cb_index;
- addClickToOption( Configuration.display_node_data,
- _configuration.getClickToTitle( Configuration.display_node_data ) );
- if ( default_option == Configuration.display_node_data ) {
- selected_index = cb_index;
- }
- cb_index++;
- }
- if ( _configuration.doDisplayClickToOption( Configuration.collapse_uncollapse ) ) {
- _collapse_cb_item = cb_index;
- addClickToOption( Configuration.collapse_uncollapse,
- _configuration.getClickToTitle( Configuration.collapse_uncollapse ) );
- if ( default_option == Configuration.collapse_uncollapse ) {
- selected_index = cb_index;
- }
- cb_index++;
- }
- if ( _configuration.doDisplayClickToOption( Configuration.reroot ) ) {
- _reroot_cb_item = cb_index;
- addClickToOption( Configuration.reroot, _configuration.getClickToTitle( Configuration.reroot ) );
- if ( default_option == Configuration.reroot ) {
- selected_index = cb_index;
- }
- cb_index++;
- }
- if ( _configuration.doDisplayClickToOption( Configuration.subtree ) ) {
- _subtree_cb_item = cb_index;
- addClickToOption( Configuration.subtree, _configuration.getClickToTitle( Configuration.subtree ) );
- if ( default_option == Configuration.subtree ) {
- selected_index = cb_index;
- }
- cb_index++;
- }
- if ( _configuration.doDisplayClickToOption( Configuration.swap ) ) {
- _swap_cb_item = cb_index;
- addClickToOption( Configuration.swap, _configuration.getClickToTitle( Configuration.swap ) );
- if ( default_option == Configuration.swap ) {
- selected_index = cb_index;
- }
- cb_index++;
- }
- if ( _configuration.doDisplayClickToOption( Configuration.sort_descendents ) ) {
- _sort_descendents_item = cb_index;
- addClickToOption( Configuration.sort_descendents,
- _configuration.getClickToTitle( Configuration.sort_descendents ) );
- if ( default_option == Configuration.sort_descendents ) {
- selected_index = cb_index;
+ 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 );
+ }
}
- cb_index++;
- }
- if ( _configuration.doDisplayClickToOption( Configuration.color_subtree ) ) {
- _color_subtree_cb_item = cb_index;
- addClickToOption( Configuration.color_subtree, _configuration.getClickToTitle( Configuration.color_subtree ) );
- if ( default_option == Configuration.color_subtree ) {
- selected_index = cb_index;
+ 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 );
+ }
}
- cb_index++;
- }
- if ( _configuration.doDisplayClickToOption( Configuration.open_seq_web ) ) {
- _open_seq_web_item = cb_index;
- addClickToOption( Configuration.open_seq_web, _configuration.getClickToTitle( Configuration.open_seq_web ) );
- if ( default_option == Configuration.open_seq_web ) {
- selected_index = cb_index;
+ 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 );
+ }
}
- 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 ) );
- if ( default_option == Configuration.open_tax_web ) {
- selected_index = cb_index;
- }
- cb_index++;
+ catch ( final Exception ignore ) {
+ //not important...
}
- if ( _configuration.doDisplayClickToOption( Configuration.blast ) ) {
- _blast_item = cb_index;
- addClickToOption( Configuration.blast, _configuration.getClickToTitle( Configuration.blast ) );
- if ( default_option == Configuration.blast ) {
- selected_index = cb_index;
+ }
+
+ 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 );
+ }
+ }
}
- cb_index++;
- }
- if ( _configuration.doDisplayClickToOption( Configuration.get_ext_desc_data ) ) {
- _get_ext_desc_data = cb_index;
- if ( !ForesterUtil.isEmpty( getConfiguration().getLabelForGetExtDescendentsData() ) ) {
- addClickToOption( Configuration.get_ext_desc_data, getConfiguration()
- .getLabelForGetExtDescendentsData() );
+ 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._ext_node_dependent_cladogram_rbmi != null ) {
+ mf._ext_node_dependent_cladogram_rbmi.setVisible( false );
+ }
}
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 SEQUENCE_SYMBOL:
- s = "Sequence Symbols";
- break;
- case TAXONOMY_CODE:
- s = "Taxonomy Codes";
- break;
- case TAXONOMY_SCIENTIFIC_NAME:
- s = "Scientific Names";
- break;
- case UNKNOWN:
- s = "User Selected Data";
- break;
+ if ( mf._non_lined_up_cladograms_rbmi != null ) {
+ mf._non_lined_up_cladograms_rbmi.setVisible( true );
}
- final String label = _configuration.getClickToTitle( Configuration.get_ext_desc_data ) + " " + s;
- addClickToOption( Configuration.get_ext_desc_data, label );
- }
- if ( default_option == Configuration.get_ext_desc_data ) {
- selected_index = cb_index;
- }
- cb_index++;
- }
- if ( getOptions().isEditable() ) {
- if ( _configuration.doDisplayClickToOption( Configuration.cut_subtree ) ) {
- _cut_subtree_item = cb_index;
- addClickToOption( Configuration.cut_subtree, _configuration.getClickToTitle( Configuration.cut_subtree ) );
- if ( default_option == Configuration.cut_subtree ) {
- selected_index = cb_index;
+ if ( mf._ext_node_dependent_cladogram_rbmi != null ) {
+ mf._ext_node_dependent_cladogram_rbmi.setVisible( true );
}
- cb_index++;
}
- if ( _configuration.doDisplayClickToOption( Configuration.copy_subtree ) ) {
- _copy_subtree_item = cb_index;
- addClickToOption( Configuration.copy_subtree,
- _configuration.getClickToTitle( Configuration.copy_subtree ) );
- if ( default_option == Configuration.copy_subtree ) {
- selected_index = cb_index;
+ if ( isDrawPhylogram() ) {
+ if ( mf._show_scale_cbmi != null ) {
+ mf._show_scale_cbmi.setVisible( true );
}
- cb_index++;
}
- if ( _configuration.doDisplayClickToOption( Configuration.paste_subtree ) ) {
- _paste_subtree_item = cb_index;
- addClickToOption( Configuration.paste_subtree,
- _configuration.getClickToTitle( Configuration.paste_subtree ) );
- if ( default_option == Configuration.paste_subtree ) {
- selected_index = cb_index;
+ else {
+ if ( mf._show_scale_cbmi != null ) {
+ mf._show_scale_cbmi.setVisible( false );
}
- cb_index++;
}
- if ( _configuration.doDisplayClickToOption( Configuration.delete_subtree_or_node ) ) {
- _delete_node_or_subtree_item = cb_index;
- addClickToOption( Configuration.delete_subtree_or_node,
- _configuration.getClickToTitle( Configuration.delete_subtree_or_node ) );
- if ( default_option == Configuration.delete_subtree_or_node ) {
- selected_index = cb_index;
+ 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 );
+ }
}
- cb_index++;
- }
- if ( _configuration.doDisplayClickToOption( Configuration.add_new_node ) ) {
- _add_new_node_item = cb_index;
- addClickToOption( Configuration.add_new_node,
- _configuration.getClickToTitle( Configuration.add_new_node ) );
- if ( default_option == Configuration.add_new_node ) {
- selected_index = cb_index;
+ else {
+ if ( mf._label_direction_cbmi != null ) {
+ mf._label_direction_cbmi.setVisible( false );
+ }
}
- cb_index++;
}
- if ( _configuration.doDisplayClickToOption( Configuration.edit_node_data ) ) {
- _edit_node_data_item = cb_index;
- addClickToOption( Configuration.edit_node_data,
- _configuration.getClickToTitle( Configuration.edit_node_data ) );
- if ( default_option == Configuration.edit_node_data ) {
- selected_index = cb_index;
- }
- cb_index++;
+ }
+ }
+
+ 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();
+ }
+
+ /**
+ * Fit entire tree into window.
+ */
+ public void showWhole() {
+ if ( ( _mainpanel.getCurrentScrollPane() == null )
+ || _mainpanel.getCurrentTreePanel().getPhylogeny().isEmpty() ) {
+ return;
+ }
+ getCurrentTreePanel().updateSetOfCollapsedExternalNodes();
+ displayedPhylogenyMightHaveChanged( true );
+ _mainpanel.getCurrentTreePanel().updateOvSettings();
+ _mainpanel.getCurrentTreePanel().validate();
+ _mainpanel.validate();
+ _mainpanel.getCurrentTreePanel().calcParametersForPainting( _mainpanel.getSizeOfViewport().width,
+ _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 );
+ _mainpanel.getCurrentTreePanel().resetPreferredSize();
+ _mainpanel.adjustJScrollPane();
+ _mainpanel.getCurrentTreePanel().repaint();
+ _mainpanel.getCurrentTreePanel().updateOvSizes();
+ }
+
+ void showWholeAll() {
+ for( final TreePanel tree_panel : _mainpanel.getTreePanels() ) {
+ if ( tree_panel != null ) {
+ tree_panel.validate();
+ tree_panel.calcParametersForPainting( _mainpanel.getSizeOfViewport().width,
+ _mainpanel.getSizeOfViewport().height );
+ tree_panel.resetPreferredSize();
+ tree_panel.repaint();
+ }
+ }
+ }
+
+ // Create header for click-to combo box.
+ void startClickToOptions() {
+ final JLabel spacer = new JLabel( "" );
+ spacer.setFont( ControlPanel.jcb_font );
+ add( spacer );
+ _click_to_label = new JLabel( "Click on Node to:" );
+ add( customizeLabel( _click_to_label, getConfiguration() ) );
+ _click_to_combobox = new JComboBox<String>();
+ _click_to_combobox.setFocusable( false );
+ _click_to_combobox.setMaximumRowCount( 14 );
+ _click_to_combobox.setFont( ControlPanel.js_font );
+ if ( !_configuration.isUseNativeUI() ) {
+ _click_to_combobox.setBackground( getConfiguration().getGuiBackgroundColor() );
+ }
+ // don't add listener until all items are set (or each one will trigger
+ // an event)
+ // click_to_list.addActionListener(this);
+ add( _click_to_combobox );
+ // Correlates option names to titles
+ _all_click_to_names = new HashMap<Integer, String>();
+ _click_to_names = new ArrayList<String>();
+ }
+
+ void tabChanged() {
+ if ( getMainPanel().getTabbedPane().getTabCount() > 0 ) {
+ if ( getCurrentTreePanel().isPhyHasBranchLengths()
+ && ( getCurrentTreePanel().getPhylogenyGraphicsType() != PHYLOGENY_GRAPHICS_TYPE.CIRCULAR ) ) {
+ setDrawPhylogramEnabled( true );
+ setTreeDisplayType( getTreeDisplayType( getMainPanel().getCurrentTabIndex() ) );
+ }
+ else {
+ setDrawPhylogramEnabled( false );
+ setTreeDisplayType( Options.PHYLOGENY_DISPLAY_TYPE.CLADOGRAM );
}
- if ( _configuration.doDisplayClickToOption( Configuration.select_nodes ) ) {
- _select_nodes_item = cb_index;
- addClickToOption( Configuration.select_nodes,
- _configuration.getClickToTitle( Configuration.select_nodes ) );
- if ( default_option == Configuration.select_nodes ) {
- selected_index = cb_index;
- }
- cb_index++;
+ getMainPanel().getMainFrame()
+ .setSelectedTypeInTypeMenu( getMainPanel().getCurrentTreePanel().getPhylogenyGraphicsType() );
+ getMainPanel().getCurrentTreePanel().updateSubSuperTreeButton();
+ getMainPanel().getCurrentTreePanel().updateButtonToUncollapseAll();
+ getMainPanel().getControlPanel().search0();
+ getMainPanel().getControlPanel().search1();
+ getMainPanel().getControlPanel().updateDomainStructureEvaluethresholdDisplay();
+ getMainPanel().getControlPanel().updateDepthCollapseDepthDisplay();
+ getMainPanel().getControlPanel().updateRankCollapseRankDisplay();
+ 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.
}
- // Set default selection and its action
- _click_to_combobox.setSelectedIndex( selected_index );
- setClickToAction( selected_index );
}
- 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.dynamically_hide_data,
- _configuration.doCheckOption( Configuration.dynamically_hide_data ) );
- }
- if ( _configuration.doDisplayOption( Configuration.node_data_popup ) ) {
- addCheckbox( Configuration.node_data_popup, _configuration.getDisplayTitle( Configuration.node_data_popup ) );
- setCheckbox( Configuration.node_data_popup, _configuration.doCheckOption( Configuration.node_data_popup ) );
- }
- if ( _configuration.doDisplayOption( Configuration.display_internal_data ) ) {
- addCheckbox( Configuration.display_internal_data,
- _configuration.getDisplayTitle( Configuration.display_internal_data ) );
- setCheckbox( Configuration.display_internal_data,
- _configuration.doCheckOption( Configuration.display_internal_data ) );
- }
- 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_species,
- _configuration.doCheckOption( Configuration.color_according_to_species ) );
- }
- if ( _configuration.doDisplayOption( Configuration.color_according_to_annotation ) ) {
- addCheckbox( Configuration.color_according_to_annotation,
- _configuration.getDisplayTitle( Configuration.color_according_to_annotation ) );
- 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.width_branches ) ) {
- addCheckbox( Configuration.width_branches, _configuration.getDisplayTitle( Configuration.width_branches ) );
- setCheckbox( Configuration.width_branches, _configuration.doCheckOption( Configuration.width_branches ) );
- }
- final JLabel label = new JLabel( "Display Data:" );
- label.setFont( ControlPanel.jcb_bold_font );
- if ( !getConfiguration().isUseNativeUI() ) {
- label.setForeground( getConfiguration().getGuiCheckboxTextColor() );
- }
- add( label );
- if ( _configuration.doDisplayOption( Configuration.show_node_names ) ) {
- addCheckbox( Configuration.show_node_names, _configuration.getDisplayTitle( Configuration.show_node_names ) );
- setCheckbox( Configuration.show_node_names, _configuration.doCheckOption( Configuration.show_node_names ) );
- }
- if ( _configuration.doDisplayOption( Configuration.show_tax_code ) ) {
- addCheckbox( Configuration.show_tax_code, _configuration.getDisplayTitle( Configuration.show_tax_code ) );
- setCheckbox( Configuration.show_tax_code, _configuration.doCheckOption( Configuration.show_tax_code ) );
- }
- if ( _configuration.doDisplayOption( Configuration.show_taxonomy_scientific_names ) ) {
- addCheckbox( Configuration.show_taxonomy_scientific_names,
- _configuration.getDisplayTitle( Configuration.show_taxonomy_scientific_names ) );
- setCheckbox( Configuration.show_taxonomy_scientific_names,
- _configuration.doCheckOption( Configuration.show_taxonomy_scientific_names ) );
- }
- if ( _configuration.doDisplayOption( Configuration.show_taxonomy_common_names ) ) {
- addCheckbox( Configuration.show_taxonomy_common_names,
- _configuration.getDisplayTitle( Configuration.show_taxonomy_common_names ) );
- setCheckbox( Configuration.show_taxonomy_common_names,
- _configuration.doCheckOption( Configuration.show_taxonomy_common_names ) );
+ /**
+ * Uncollapse all nodes.
+ */
+ final void uncollapseAll( final TreePanel tp ) {
+ final Phylogeny t = tp.getPhylogeny();
+ if ( ( t != null ) && !t.isEmpty() ) {
+ for( final PhylogenyNodeIterator iter = t.iteratorPreorder(); iter.hasNext(); ) {
+ final PhylogenyNode node = iter.next();
+ node.setCollapse( false );
+ }
+ tp.resetNodeIdToDistToLeafMap();
+ tp.updateSetOfCollapsedExternalNodes();
+ t.recalculateNumberOfExternalDescendants( false );
+ tp.setNodeInPreorderToNull();
+ t.clearHashIdToNodeMap();
+ tp.resetDepthCollapseDepthValue();
+ tp.resetRankCollapseRankValue();
+ showWhole();
}
- if ( _configuration.doDisplayOption( Configuration.show_taxonomy_images ) ) {
- addCheckbox( Configuration.show_taxonomy_images,
- _configuration.getDisplayTitle( Configuration.show_taxonomy_images ) );
- setCheckbox( Configuration.show_taxonomy_images,
- _configuration.doCheckOption( Configuration.show_taxonomy_images ) );
+ }
+
+ final void updateDomainStructureEvaluethresholdDisplay() {
+ if ( _domain_structure_evalue_thr_tf != null ) {
+ _domain_structure_evalue_thr_tf
+ .setText( "10^" + getMainPanel().getCurrentTreePanel().getDomainStructureEvalueThresholdExp() );
}
- if ( _configuration.doDisplayOption( Configuration.show_gene_symbols ) ) {
- addCheckbox( Configuration.show_gene_symbols,
- _configuration.getDisplayTitle( Configuration.show_gene_symbols ) );
- setCheckbox( Configuration.show_gene_symbols,
- _configuration.doCheckOption( Configuration.show_gene_symbols ) );
+ }
+
+ private final String obtainDepthCollapseDepthValue() {
+ if ( getMainPanel().getCurrentTreePanel() == null ) {
+ return "";
}
- if ( _configuration.doDisplayOption( Configuration.show_gene_names ) ) {
- addCheckbox( Configuration.show_gene_names, _configuration.getDisplayTitle( Configuration.show_gene_names ) );
- setCheckbox( Configuration.show_gene_names, _configuration.doCheckOption( Configuration.show_gene_names ) );
+ final TreePanel tp = getMainPanel().getCurrentTreePanel();
+ final Phylogeny p = tp.getPhylogeny();
+ if ( ( p == null ) || ( p.getNumberOfExternalNodes() < 3 ) ) {
+ return "off";
}
- if ( _configuration.doDisplayOption( Configuration.show_sequence_acc ) ) {
- addCheckbox( Configuration.show_sequence_acc,
- _configuration.getDisplayTitle( Configuration.show_sequence_acc ) );
- setCheckbox( Configuration.show_sequence_acc,
- _configuration.doCheckOption( Configuration.show_sequence_acc ) );
+ else if ( tp.getDepthCollapseDepthValue() < 0 ) {
+ tp.setDepthCollapseDepthValue( PhylogenyMethods.calculateMaxDepth( p ) );
+ return "off";
}
- if ( _configuration.doDisplayOption( Configuration.show_annotation ) ) {
- addCheckbox( Configuration.show_annotation, _configuration.getDisplayTitle( Configuration.show_annotation ) );
- setCheckbox( Configuration.show_annotation, _configuration.doCheckOption( Configuration.show_annotation ) );
+ else if ( tp.getDepthCollapseDepthValue() == PhylogenyMethods.calculateMaxDepth( p ) ) {
+ return "off";
}
- if ( _configuration.doDisplayOption( Configuration.show_binary_characters ) ) {
- addCheckbox( Configuration.show_binary_characters,
- _configuration.getDisplayTitle( Configuration.show_binary_characters ) );
- setCheckbox( Configuration.show_binary_characters,
- _configuration.doCheckOption( Configuration.show_binary_characters ) );
+ return String.valueOf( tp.getDepthCollapseDepthValue() );
+ }
+
+ private final String obtainRankCollapseDepthValue() {
+ if ( getMainPanel().getCurrentTreePanel() == null ) {
+ return "";
}
- if ( _configuration.doDisplayOption( Configuration.show_binary_character_counts ) ) {
- addCheckbox( Configuration.show_binary_character_counts,
- _configuration.getDisplayTitle( Configuration.show_binary_character_counts ) );
- setCheckbox( Configuration.show_binary_character_counts,
- _configuration.doCheckOption( Configuration.show_binary_character_counts ) );
+ final TreePanel tp = getMainPanel().getCurrentTreePanel();
+ final Phylogeny p = tp.getPhylogeny();
+ if ( ( p == null ) || ( p.getNumberOfExternalNodes() < 3 ) ) {
+ return "off";
}
- if ( _configuration.doDisplayOption( Configuration.show_domain_architectures ) ) {
- addCheckbox( Configuration.show_domain_architectures,
- _configuration.getDisplayTitle( Configuration.show_domain_architectures ) );
- setCheckbox( Configuration.show_domain_architectures,
- _configuration.doCheckOption( Configuration.show_domain_architectures ) );
+ else {
+ final String ranks[] = PhylogenyMethods.obtainPresentRanksSorted( p );
+ if ( ranks.length < 1 ) {
+ return "off";
+ }
+ else if ( tp.getRankCollapseRankValue() < 0 ) {
+ tp.setRankCollapseRankValue( ranks.length - 1 );
+ return "off";
+ }
+ else if ( tp.getRankCollapseRankValue() == ( ranks.length - 1 ) ) {
+ return "off";
+ }
}
- 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 ) );
+ return String.valueOf( tp.getRankCollapseRankValue() );
+ }
+
+ final void updateDepthCollapseDepthDisplay() {
+ if ( _depth_collapse_depth_tf != null ) {
+ _depth_collapse_depth_tf.setText( " " + obtainDepthCollapseDepthValue() );
}
- if ( _configuration.doDisplayOption( Configuration.write_events ) ) {
- addCheckbox( Configuration.write_events, _configuration.getDisplayTitle( Configuration.write_events ) );
- setCheckbox( Configuration.write_events, _configuration.doCheckOption( Configuration.write_events ) );
+ }
+
+ final void updateRankCollapseRankDisplay() {
+ if ( _rank_collapse_depth_tf != null ) {
+ final String r = obtainRankCollapseDepthValue();
+ if ( r.equals( "off" ) ) {
+ _rank_collapse_depth_tf.setText( " off" );
+ _rank_collapse_depth_tf.setToolTipText( "the current taxonomic rank threshold" );
+ }
+ else {
+ final String ranks[] = PhylogenyMethods
+ .obtainPresentRanksSorted( getMainPanel().getCurrentTreePanel().getPhylogeny() );
+ final int rr = Integer.parseInt( r );
+ _rank_collapse_depth_tf.setText( ranks[ rr ] );
+ _rank_collapse_depth_tf.setToolTipText( ( rr + 1 ) + "/" + ( ranks.length - 1 ) + ": "
+ + ranks[ Integer.parseInt( r ) ] );
+ }
}
- if ( _configuration.doDisplayOption( Configuration.show_vector_data ) ) {
- addCheckbox( Configuration.show_vector_data,
- _configuration.getDisplayTitle( Configuration.show_vector_data ) );
- setCheckbox( Configuration.show_vector_data, _configuration.doCheckOption( Configuration.show_vector_data ) );
+ }
+
+ final void zoomInX( final float factor, final float x_correction_factor ) {
+ final JScrollBar sb = getMainPanel().getCurrentScrollPane().getHorizontalScrollBar();
+ final TreePanel treepanel = getMainPanel().getCurrentTreePanel();
+ treepanel.multiplyUrtFactor( 1f );
+ if ( ( treepanel.getPhylogenyGraphicsType() == PHYLOGENY_GRAPHICS_TYPE.CIRCULAR )
+ || ( treepanel.getPhylogenyGraphicsType() == PHYLOGENY_GRAPHICS_TYPE.UNROOTED )
+ || isDrawPhylogram( getMainPanel().getCurrentTabIndex() )
+ || ( getOptions().getCladogramType() == CLADOGRAM_TYPE.NON_LINED_UP ) ) {
+ final double x = ( sb.getMaximum() - sb.getMinimum() )
+ / ( sb.getValue() + ( sb.getVisibleAmount() / 2.0 ) );
+ treepanel.setXdistance( ( treepanel.getXdistance() * factor ) );
+ treepanel.setXcorrectionFactor( ( treepanel.getXcorrectionFactor() * x_correction_factor ) );
+ getMainPanel().adjustJScrollPane();
+ treepanel.resetPreferredSize();
+ getMainPanel().getCurrentScrollPane().getViewport().validate();
+ sb.setValue( ForesterUtil
+ .roundToInt( ( ( sb.getMaximum() - sb.getMinimum() ) / x ) - ( sb.getVisibleAmount() / 2.0 ) ) );
}
- if ( _configuration.doDisplayOption( Configuration.show_properties ) ) {
- addCheckbox( Configuration.show_properties, _configuration.getDisplayTitle( Configuration.show_properties ) );
- setCheckbox( Configuration.show_properties, _configuration.doCheckOption( Configuration.show_properties ) );
+ else {
+ final int x = sb.getMaximum() - sb.getMinimum() - sb.getVisibleAmount() - sb.getValue();
+ treepanel.setXdistance( ( treepanel.getXdistance() * factor ) );
+ treepanel.setXcorrectionFactor( ( treepanel.getXcorrectionFactor() * x_correction_factor ) );
+ getMainPanel().adjustJScrollPane();
+ treepanel.resetPreferredSize();
+ getMainPanel().getCurrentScrollPane().getViewport().validate();
+ sb.setValue( sb.getMaximum() - sb.getMinimum() - x - sb.getVisibleAmount() );
}
+ treepanel.resetPreferredSize();
+ treepanel.updateOvSizes();
}
- 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 void zoomInY( final float factor ) {
+ final JScrollBar sb = getMainPanel().getCurrentScrollPane().getVerticalScrollBar();
+ final TreePanel treepanel = getMainPanel().getCurrentTreePanel();
+ treepanel.multiplyUrtFactor( 1.1f );
+ final double x = ( sb.getMaximum() - sb.getMinimum() ) / ( sb.getValue() + ( sb.getVisibleAmount() / 2.0 ) );
+ treepanel.setYdistance( ( treepanel.getYdistance() * factor ) );
+ getMainPanel().adjustJScrollPane();
+ treepanel.resetPreferredSize();
+ getMainPanel().getCurrentScrollPane().getViewport().validate();
+ sb.setValue( ForesterUtil
+ .roundToInt( ( ( sb.getMaximum() - sb.getMinimum() ) / x ) - ( sb.getVisibleAmount() / 2.0 ) ) );
+ treepanel.resetPreferredSize();
+ treepanel.updateOvSizes();
+ }
+
+ final void zoomOutX( final float factor, final float x_correction_factor ) {
+ final TreePanel treepanel = getMainPanel().getCurrentTreePanel();
+ treepanel.multiplyUrtFactor( 1f );
+ if ( ( treepanel.getXdistance() * factor ) > 0.0 ) {
+ final JScrollBar sb = getMainPanel().getCurrentScrollPane().getHorizontalScrollBar();
+ if ( ( treepanel.getPhylogenyGraphicsType() == PHYLOGENY_GRAPHICS_TYPE.CIRCULAR )
+ || ( treepanel.getPhylogenyGraphicsType() == PHYLOGENY_GRAPHICS_TYPE.UNROOTED )
+ || isDrawPhylogram( getMainPanel().getCurrentTabIndex() )
+ || ( getOptions().getCladogramType() == CLADOGRAM_TYPE.NON_LINED_UP ) ) {
+ getMainPanel().adjustJScrollPane();
+ treepanel.resetPreferredSize();
+ getMainPanel().getCurrentScrollPane().getViewport().validate();
+ final double x = ( sb.getMaximum() - sb.getMinimum() )
+ / ( sb.getValue() + ( sb.getVisibleAmount() / 2.0 ) );
+ treepanel.setXdistance( ( treepanel.getXdistance() * factor ) );
+ treepanel.setXcorrectionFactor( ( treepanel.getXcorrectionFactor() * x_correction_factor ) );
+ getMainPanel().adjustJScrollPane();
+ treepanel.resetPreferredSize();
+ getMainPanel().getCurrentScrollPane().getViewport().validate();
+ sb.setValue( ForesterUtil.roundToInt( ( ( sb.getMaximum() - sb.getMinimum() ) / x )
+ - ( sb.getVisibleAmount() / 2.0 ) ) );
}
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 );
+ final int x = sb.getMaximum() - sb.getMinimum() - sb.getVisibleAmount() - sb.getValue();
+ treepanel.setXdistance( treepanel.getXdistance() * factor );
+ treepanel.setXcorrectionFactor( treepanel.getXcorrectionFactor() * x_correction_factor );
+ if ( x > 0 ) {
+ getMainPanel().adjustJScrollPane();
+ treepanel.resetPreferredSize();
+ getMainPanel().getCurrentScrollPane().getViewport().validate();
+ sb.setValue( sb.getMaximum() - sb.getMinimum() - x - sb.getVisibleAmount() );
+ }
}
+ treepanel.resetPreferredSize();
+ treepanel.updateOvSizes();
+ }
+ }
+
+ 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 );
+ if ( ( treepanel.getYdistance() * factor ) > 0.0 ) {
+ final JScrollBar sb = getMainPanel().getCurrentScrollPane().getVerticalScrollBar();
+ final double x = ( sb.getMaximum() - sb.getMinimum() )
+ / ( sb.getValue() + ( sb.getVisibleAmount() / 2.0 ) );
+ treepanel.setYdistance( ( treepanel.getYdistance() * factor ) );
+ getMainPanel().adjustJScrollPane();
+ treepanel.resetPreferredSize();
+ getMainPanel().getCurrentScrollPane().getViewport().validate();
+ sb.setValue( ForesterUtil
+ .roundToInt( ( ( sb.getMaximum() - sb.getMinimum() ) / x ) - ( sb.getVisibleAmount() / 2.0 ) ) );
+ treepanel.resetPreferredSize();
+ treepanel.updateOvSizes();
}
}
- static JLabel customizeLabel( final JLabel label, final Configuration configuration ) {
+ final static JLabel customizeLabel( final JLabel label, final Configuration configuration ) {
label.setFont( ControlPanel.jcb_bold_font );
if ( !configuration.isUseNativeUI() ) {
label.setForeground( configuration.getGuiCheckboxTextColor() );
return label;
}
- enum NodeClickAction {
- SHOW_DATA,
- COLLAPSE,
- REROOT,
- SUBTREE,
- SWAP,
- COLOR_SUBTREE,
- OPEN_TAX_WEB,
- OPEN_SEQ_WEB,
- CUT_SUBTREE,
- COPY_SUBTREE,
- DELETE_NODE_OR_SUBTREE,
- PASTE_SUBTREE,
- ADD_NEW_NODE,
- EDIT_NODE_DATA,
- SELECT_NODES,
- SORT_DESCENDENTS,
- GET_EXT_DESC_DATA,
- BLAST;
+ 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;
}
}