in progress
[jalview.git] / forester / java / src / org / forester / archaeopteryx / Archaeopteryx.java
index 8bd8df5..e1a8a47 100644 (file)
@@ -21,7 +21,7 @@
 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
 //
 // Contact: phylosoft @ gmail . com
-// WWW: www.phylosoft.org/forester
+// WWW: https://sites.google.com/site/cmzmasek/home/software/forester
 
 package org.forester.archaeopteryx;
 
@@ -31,15 +31,11 @@ import org.forester.io.parsers.PhylogenyParser;
 import org.forester.io.parsers.nexus.NexusPhylogeniesParser;
 import org.forester.io.parsers.nhx.NHXParser;
 import org.forester.io.parsers.phyloxml.PhyloXmlParser;
+import org.forester.io.parsers.util.ParserUtils;
 import org.forester.phylogeny.Phylogeny;
+import org.forester.phylogeny.PhylogenyMethods;
 import org.forester.util.ForesterUtil;
 
-//
-// java -javaagent:shiftone-jrat.jar -cp
-// $HOME/SOFTWARE_DEV/ECLIPSE_WORKSPACE/forester-atv/java/forester.jar:.
-// org.forester.archaeopteryx.Archaeopteryx
-// -c $HOME/SOFTWARE_DEV/ECLIPSE_WORKSPACE/forester-atv/_aptx_configuration_file
-//
 public final class Archaeopteryx {
 
     public static MainFrame createApplication( final Phylogeny phylogeny ) {
@@ -48,6 +44,12 @@ public final class Archaeopteryx {
         return createApplication( phylogenies, "", "" );
     }
 
+    public static MainFrame createApplication( final Phylogeny phylogeny, final Configuration config, final String title ) {
+        final Phylogeny[] phylogenies = new Phylogeny[ 1 ];
+        phylogenies[ 0 ] = phylogeny;
+        return MainFrameApplication.createInstance( phylogenies, config, title );
+    }
+
     public static MainFrame createApplication( final Phylogeny[] phylogenies ) {
         return createApplication( phylogenies, "", "" );
     }
@@ -66,7 +68,7 @@ public final class Archaeopteryx {
         try {
             int filename_index = 0;
             if ( args.length == 0 ) {
-                conf = new Configuration( null, false, false );
+                conf = new Configuration( null, false, false, true );
             }
             else if ( args.length > 0 ) {
                 // check for a config file
@@ -77,7 +79,7 @@ public final class Archaeopteryx {
                 if ( args[ 0 ].startsWith( "-open" ) ) {
                     filename_index += 1;
                 }
-                conf = new Configuration( config_filename, false, false );
+                conf = new Configuration( config_filename, false, false, true );
                 if ( args.length > filename_index ) {
                     f = new File( args[ filename_index ] );
                     final String err = ForesterUtil.isReadableFile( f );
@@ -85,18 +87,14 @@ public final class Archaeopteryx {
                         ForesterUtil.fatalError( Constants.PRG_NAME, err );
                     }
                     boolean nhx_or_nexus = false;
-                    final PhylogenyParser p = ForesterUtil.createParserDependingOnFileType( f, conf
-                            .isValidatePhyloXmlAgainstSchema() );
+                    final PhylogenyParser p = ParserUtils.createParserDependingOnFileType( f, conf
+                                                                                           .isValidatePhyloXmlAgainstSchema() );
                     if ( p instanceof NHXParser ) {
                         nhx_or_nexus = true;
                         final NHXParser nhx = ( NHXParser ) p;
                         nhx.setReplaceUnderscores( conf.isReplaceUnderscoresInNhParsing() );
                         nhx.setIgnoreQuotes( false );
-                        ForesterUtil.TAXONOMY_EXTRACTION te = ForesterUtil.TAXONOMY_EXTRACTION.NO;
-                        if ( conf.isExtractPfamTaxonomyCodesInNhParsing() ) {
-                            te = ForesterUtil.TAXONOMY_EXTRACTION.PFAM_STYLE_ONLY;
-                        }
-                        nhx.setTaxonomyExtraction( te );
+                        nhx.setTaxonomyExtraction( conf.getTaxonomyExtraction() );
                     }
                     else if ( p instanceof NexusPhylogeniesParser ) {
                         nhx_or_nexus = true;
@@ -107,10 +105,10 @@ public final class Archaeopteryx {
                     else if ( p instanceof PhyloXmlParser ) {
                         MainFrameApplication.warnIfNotPhyloXmlValidation( conf );
                     }
-                    phylogenies = ForesterUtil.readPhylogenies( p, f );
+                    phylogenies = PhylogenyMethods.readPhylogenies( p, f );
                     if ( nhx_or_nexus && conf.isInternalNumberAreConfidenceForNhParsing() ) {
                         for( final Phylogeny phy : phylogenies ) {
-                            ForesterUtil.transferInternalNodeNamesToConfidence( phy );
+                            PhylogenyMethods.transferInternalNodeNamesToConfidence( phy, "" );
                         }
                     }
                 }
@@ -123,14 +121,21 @@ public final class Archaeopteryx {
         if ( f != null ) {
             title = f.getName();
         }
+        File current_dir = null;
+        if ( ( phylogenies != null ) && ( phylogenies.length > 0 ) ) {
+            current_dir = new File( "." );
+        }
         try {
-            MainFrameApplication.createInstance( phylogenies, conf, title );
+            MainFrameApplication.createInstance( phylogenies, conf, title, current_dir );
         }
-        catch ( final Exception ex ) {
-            Util.unexpectedException( ex );
+        catch ( final OutOfMemoryError e ) {
+            AptxUtil.outOfMemoryError( e );
+        }
+        catch ( final Exception e ) {
+            AptxUtil.unexpectedException( e );
         }
-        catch ( final Error err ) {
-            Util.unexpectedError( err );
+        catch ( final Error e ) {
+            AptxUtil.unexpectedError( e );
         }
     }
 }
\ No newline at end of file