import org.forester.archaeopteryx.Options.CLADOGRAM_TYPE;\r
import org.forester.archaeopteryx.Options.NODE_LABEL_DIRECTION;\r
import org.forester.archaeopteryx.Options.PHYLOGENY_GRAPHICS_TYPE;\r
-import org.forester.archaeopteryx.tools.AncestralTaxonomyInferrer;\r
import org.forester.archaeopteryx.tools.InferenceManager;\r
import org.forester.archaeopteryx.tools.PhyloInferenceDialog;\r
import org.forester.archaeopteryx.tools.PhylogeneticInferenceOptions;\r
\r
public final class MainFrameApplication extends MainFrame {\r
\r
- static final String INFER_ANCESTOR_TAXONOMIES = "Infer Ancestor Taxonomies";\r
- static final String OBTAIN_DETAILED_TAXONOMIC_INFORMATION = "Obtain Detailed Taxonomic Information";\r
- private final static int FRAME_X_SIZE = 800;\r
- private final static int FRAME_Y_SIZE = 800;\r
+ private final static int FRAME_X_SIZE = 800;\r
+ private final static int FRAME_Y_SIZE = 800;\r
// Filters for the file-open dialog (classes defined in this file)\r
- private static final long serialVersionUID = -799735726778865234L;\r
- private static final boolean PREPROCESS_TREES = false;\r
+ private static final long serialVersionUID = -799735726778865234L;\r
+ private static final boolean PREPROCESS_TREES = false;\r
private final JFileChooser _values_filechooser;\r
private final JFileChooser _sequences_filechooser;\r
private final JFileChooser _open_filechooser;\r
private ButtonGroup _radio_group_1;\r
private ButtonGroup _radio_group_2;\r
// Others:\r
- double _min_not_collapse = Constants.MIN_NOT_COLLAPSE_DEFAULT;\r
- double _min_not_collapse_bl = 0.001;\r
+ double _min_not_collapse = AptxConstants.MIN_NOT_COLLAPSE_DEFAULT;\r
+ double _min_not_collapse_bl = 0.001;\r
// Phylogeny Inference menu\r
private JMenu _inference_menu;\r
private JMenuItem _inference_from_msa_item;\r
private JMenuItem _inference_from_seqs_item;\r
// Phylogeny Inference\r
- private PhylogeneticInferenceOptions _phylogenetic_inference_options = null;\r
- private Msa _msa = null;\r
- private File _msa_file = null;\r
- private List<MolecularSequence> _seqs = null;\r
- private File _seqs_file = null;\r
+ private PhylogeneticInferenceOptions _phylogenetic_inference_options = null;\r
+ private Msa _msa = null;\r
+ private File _msa_file = null;\r
+ private List<MolecularSequence> _seqs = null;\r
+ private File _seqs_file = null;\r
JMenuItem _read_values_jmi;\r
JMenuItem _read_seqs_jmi;\r
\r
}\r
try {\r
boolean synth_exception = false;\r
- if ( Constants.__SYNTH_LF ) {\r
+ if ( AptxConstants.__SYNTH_LF ) {\r
try {\r
final SynthLookAndFeel synth = new SynthLookAndFeel();\r
synth.load( MainFrameApplication.class.getResourceAsStream( "/resources/synth_look_and_feel_1.xml" ),\r
}\r
catch ( final Exception ex ) {\r
synth_exception = true;\r
- ForesterUtil.printWarningMessage( Constants.PRG_NAME,\r
+ ForesterUtil.printWarningMessage( AptxConstants.PRG_NAME,\r
"could not create synth look and feel: "\r
+ ex.getLocalizedMessage() );\r
}\r
}\r
- if ( !Constants.__SYNTH_LF || synth_exception ) {\r
+ if ( !AptxConstants.__SYNTH_LF || synth_exception ) {\r
if ( _configuration.isUseNativeUI() ) {\r
UIManager.setLookAndFeel( UIManager.getSystemLookAndFeelClassName() );\r
}\r
setOptions( Options.createInstance( _configuration ) );\r
setInferenceManager( InferenceManager.createInstance( _configuration ) );\r
setPhylogeneticInferenceOptions( PhylogeneticInferenceOptions.createInstance( _configuration ) );\r
- // _textframe = null; #~~~~\r
// set title\r
- setTitle( Constants.PRG_NAME + " " + Constants.VERSION + " (" + Constants.PRG_DATE + ")" );\r
+ setTitle( AptxConstants.PRG_NAME + " " + AptxConstants.VERSION + " (" + AptxConstants.PRG_DATE + ")" );\r
_mainpanel = new MainPanel( _configuration, this );\r
// The file dialogs\r
_open_filechooser = new JFileChooser();\r
- _open_filechooser.setCurrentDirectory( new File( "." ) );\r
- _open_filechooser.setMultiSelectionEnabled( false );\r
+ _open_filechooser.setMultiSelectionEnabled( true );\r
_open_filechooser.addChoosableFileFilter( MainFrame.xmlfilter );\r
_open_filechooser.addChoosableFileFilter( MainFrame.nhxfilter );\r
_open_filechooser.addChoosableFileFilter( MainFrame.nhfilter );\r
_open_filechooser.addChoosableFileFilter( _open_filechooser.getAcceptAllFileFilter() );\r
_open_filechooser.setFileFilter( MainFrame.defaultfilter );\r
_open_filechooser_for_species_tree = new JFileChooser();\r
- _open_filechooser_for_species_tree.setCurrentDirectory( new File( "." ) );\r
_open_filechooser_for_species_tree.setMultiSelectionEnabled( false );\r
_open_filechooser_for_species_tree.addChoosableFileFilter( MainFrame.xmlfilter );\r
_open_filechooser_for_species_tree.addChoosableFileFilter( MainFrame.tolfilter );\r
_open_filechooser_for_species_tree.setFileFilter( MainFrame.xmlfilter );\r
- _save_filechooser = new JFileChooser();\r
- _save_filechooser.setCurrentDirectory( new File( "." ) );\r
- _save_filechooser.setMultiSelectionEnabled( false );\r
- _save_filechooser.setFileFilter( MainFrame.xmlfilter );\r
- _save_filechooser.addChoosableFileFilter( MainFrame.nhfilter );\r
- _save_filechooser.addChoosableFileFilter( MainFrame.nexusfilter );\r
- _save_filechooser.addChoosableFileFilter( _save_filechooser.getAcceptAllFileFilter() );\r
- _writetopdf_filechooser = new JFileChooser();\r
- _writetopdf_filechooser.addChoosableFileFilter( MainFrame.pdffilter );\r
- _writetographics_filechooser = new JFileChooser();\r
- _writetographics_filechooser.addChoosableFileFilter( MainFrame.graphicsfilefilter );\r
// Msa:\r
_msa_filechooser = new JFileChooser();\r
_msa_filechooser.setName( "Read Multiple Sequence Alignment File" );\r
- _msa_filechooser.setCurrentDirectory( new File( "." ) );\r
_msa_filechooser.setMultiSelectionEnabled( false );\r
_msa_filechooser.addChoosableFileFilter( _msa_filechooser.getAcceptAllFileFilter() );\r
_msa_filechooser.addChoosableFileFilter( MainFrame.msafilter );\r
// Seqs:\r
_seqs_pi_filechooser = new JFileChooser();\r
_seqs_pi_filechooser.setName( "Read Sequences File" );\r
- _seqs_pi_filechooser.setCurrentDirectory( new File( "." ) );\r
_seqs_pi_filechooser.setMultiSelectionEnabled( false );\r
_seqs_pi_filechooser.addChoosableFileFilter( _seqs_pi_filechooser.getAcceptAllFileFilter() );\r
_seqs_pi_filechooser.addChoosableFileFilter( MainFrame.seqsfilter );\r
// Expression\r
_values_filechooser = new JFileChooser();\r
- _values_filechooser.setCurrentDirectory( new File( "." ) );\r
_values_filechooser.setMultiSelectionEnabled( false );\r
// Sequences\r
_sequences_filechooser = new JFileChooser();\r
- _sequences_filechooser.setCurrentDirectory( new File( "." ) );\r
_sequences_filechooser.setMultiSelectionEnabled( false );\r
+ try {\r
+ final String home_dir = System.getProperty( "user.home" );\r
+ _open_filechooser.setCurrentDirectory( new File( home_dir ) );\r
+ _open_filechooser_for_species_tree.setCurrentDirectory( new File( home_dir ) );\r
+ _msa_filechooser.setCurrentDirectory( new File( home_dir ) );\r
+ _seqs_pi_filechooser.setCurrentDirectory( new File( home_dir ) );\r
+ _values_filechooser.setCurrentDirectory( new File( home_dir ) );\r
+ _sequences_filechooser.setCurrentDirectory( new File( home_dir ) );\r
+ }\r
+ catch ( final Exception e ) {\r
+ e.printStackTrace();\r
+ // Do nothing. Not important.\r
+ }\r
// build the menu bar\r
_jmenubar = new JMenuBar();\r
if ( !_configuration.isUseNativeUI() ) {\r
_jmenubar.setBackground( getConfiguration().getGuiMenuBackgroundColor() );\r
}\r
buildFileMenu();\r
- if ( Constants.__ALLOW_PHYLOGENETIC_INFERENCE ) {\r
+ if ( AptxConstants.__ALLOW_PHYLOGENETIC_INFERENCE ) {\r
buildPhylogeneticInferenceMenu();\r
}\r
buildAnalysisMenu();\r
else if ( o == _load_species_tree_item ) {\r
readSpeciesTreeFromFile();\r
}\r
- else if ( o == _lineage_inference ) {\r
- if ( isSubtreeDisplayed() ) {\r
- JOptionPane.showMessageDialog( this,\r
- "Subtree is shown.",\r
- "Cannot infer ancestral taxonomies",\r
- JOptionPane.ERROR_MESSAGE );\r
- return;\r
- }\r
- executeLineageInference();\r
- }\r
else if ( o == _obtain_detailed_taxonomic_information_jmi ) {\r
if ( isSubtreeDisplayed() ) {\r
return;\r
Phylogeny[] phys = null;\r
// Set an initial directory if none set yet\r
final File my_dir = getCurrentDir();\r
- _open_filechooser.setMultiSelectionEnabled( true );\r
// Open file-open dialog and set current directory\r
if ( my_dir != null ) {\r
_open_filechooser.setCurrentDirectory( my_dir );\r
_options_jmenu.add( _search_with_regex_cbmi = new JCheckBoxMenuItem( MainFrame.SEARCH_REGEX_LABEL ) );\r
_search_with_regex_cbmi.setToolTipText( MainFrame.SEARCH_WITH_REGEX_TIP );\r
_options_jmenu.add( _inverse_search_result_cbmi = new JCheckBoxMenuItem( INVERSE_SEARCH_RESULT_LABEL ) );\r
+ _options_jmenu.add( _color_all_found_nodes_when_coloring_subtree_cbmi = new JCheckBoxMenuItem( "Colorize All Found Nodes When Colorizing Subtree(s)" ) ); \r
_options_jmenu.addSeparator();\r
_options_jmenu.add( customizeMenuItemAsLabel( new JMenuItem( "Graphics Export & Printing:" ),\r
getConfiguration() ) );\r
_options_jmenu.add( _print_size_mi = new JMenuItem( "" ) );\r
_options_jmenu.add( _choose_pdf_width_mi = new JMenuItem( "" ) );\r
_options_jmenu.addSeparator();\r
- _options_jmenu.add( customizeMenuItemAsLabel( new JMenuItem( "Newick/NHX/Nexus Input:" ), getConfiguration() ) );\r
+ _options_jmenu.add( customizeMenuItemAsLabel( new JMenuItem( "Newick/NHX/Nexus Read:" ), getConfiguration() ) );\r
_options_jmenu\r
.add( _internal_number_are_confidence_for_nh_parsing_cbmi = new JCheckBoxMenuItem( "Internal Node Names are Confidence Values" ) );\r
_options_jmenu.add( _replace_underscores_cbmi = new JCheckBoxMenuItem( "Replace Underscores with Spaces" ) );\r
_radio_group_2.add( _extract_taxonomy_pfam_strict_rbmi );\r
_radio_group_2.add( _extract_taxonomy_pfam_relaxed_rbmi );\r
_radio_group_2.add( _extract_taxonomy_agressive_rbmi );\r
- _options_jmenu.add( customizeMenuItemAsLabel( new JMenuItem( "Newick/Nexus Output:" ), getConfiguration() ) );\r
+ _options_jmenu.add( customizeMenuItemAsLabel( new JMenuItem( "Newick/Nexus Save:" ), getConfiguration() ) );\r
_options_jmenu\r
.add( _use_brackets_for_conf_in_nh_export_cbmi = new JCheckBoxMenuItem( USE_BRACKETS_FOR_CONF_IN_NH_LABEL ) );\r
_use_brackets_for_conf_in_nh_export_cbmi\r
customizeCheckBoxMenuItem( _search_with_regex_cbmi, getOptions().isSearchWithRegex() );\r
customizeCheckBoxMenuItem( _search_whole_words_only_cbmi, getOptions().isMatchWholeTermsOnly() );\r
customizeCheckBoxMenuItem( _inverse_search_result_cbmi, getOptions().isInverseSearchResult() );\r
+ customizeCheckBoxMenuItem( _color_all_found_nodes_when_coloring_subtree_cbmi, getOptions().isColorAllFoundNodesWhenColoringSubtree() ); \r
customizeCheckBoxMenuItem( _graphics_export_visible_only_cbmi, getOptions().isGraphicsExportVisibleOnly() );\r
customizeCheckBoxMenuItem( _print_using_actual_size_cbmi, getOptions().isPrintUsingActualSize() );\r
customizeCheckBoxMenuItem( _graphics_export_using_actual_size_cbmi, getOptions()\r
exit();\r
}\r
\r
- void executeLineageInference() {\r
- if ( ( _mainpanel.getCurrentPhylogeny() == null ) || ( _mainpanel.getCurrentPhylogeny().isEmpty() ) ) {\r
- return;\r
- }\r
- if ( !_mainpanel.getCurrentPhylogeny().isRooted() ) {\r
- JOptionPane.showMessageDialog( this,\r
- "Phylogeny is not rooted.",\r
- "Cannot infer ancestral taxonomies",\r
- JOptionPane.ERROR_MESSAGE );\r
- return;\r
- }\r
- final AncestralTaxonomyInferrer inferrer = new AncestralTaxonomyInferrer( this,\r
- _mainpanel.getCurrentTreePanel(),\r
- _mainpanel.getCurrentPhylogeny()\r
- .copy() );\r
- new Thread( inferrer ).start();\r
- }\r
-\r
void exit() {\r
removeAllTextFrames();\r
_mainpanel.terminate();\r