X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=forester%2Fjava%2Fsrc%2Forg%2Fforester%2Farchaeopteryx%2FUrlTreeReader.java;h=36c62651f07496f417b7f7e7606cf2c20bbef49e;hb=54d8e3a926c3cf3477199c8b85aca478230e223c;hp=ea4bca0f986bdf5abe4bb1e89fc500c1b0ee089e;hpb=656be28debec520e0e35a8b311114398a40ea366;p=jalview.git diff --git a/forester/java/src/org/forester/archaeopteryx/UrlTreeReader.java b/forester/java/src/org/forester/archaeopteryx/UrlTreeReader.java index ea4bca0..36c6265 100644 --- a/forester/java/src/org/forester/archaeopteryx/UrlTreeReader.java +++ b/forester/java/src/org/forester/archaeopteryx/UrlTreeReader.java @@ -59,6 +59,11 @@ public class UrlTreeReader implements Runnable { _webservice_client_index = webservice_client_index; } + @Override + public void run() { + readPhylogeniesFromWebservice(); + } + synchronized void readPhylogeniesFromWebservice() { final long start_time = new Date().getTime(); URL url = null; @@ -88,6 +93,7 @@ public class UrlTreeReader implements Runnable { } identifier = id + ""; } + boolean exception = false; try { String url_str = client.getUrl(); url_str = url_str.replaceFirst( PhylogeniesWebserviceClient.QUERY_PLACEHOLDER, identifier ); @@ -101,6 +107,16 @@ public class UrlTreeReader implements Runnable { parser = new NexusPhylogeniesParser(); ( ( NexusPhylogeniesParser ) parser ).setReplaceUnderscores( true ); break; + case TREEBASE_TREE: + parser = new NexusPhylogeniesParser(); + ( ( NexusPhylogeniesParser ) parser ).setReplaceUnderscores( true ); + ( ( NexusPhylogeniesParser ) parser ).setTaxonomyExtraction( NHXParser.TAXONOMY_EXTRACTION.NO ); + break; + case TREEBASE_STUDY: + parser = new NexusPhylogeniesParser(); + ( ( NexusPhylogeniesParser ) parser ).setReplaceUnderscores( true ); + ( ( NexusPhylogeniesParser ) parser ).setTaxonomyExtraction( NHXParser.TAXONOMY_EXTRACTION.NO ); + break; case NH: parser = new NHXParser(); ( ( NHXParser ) parser ).setTaxonomyExtraction( NHXParser.TAXONOMY_EXTRACTION.NO ); @@ -109,13 +125,14 @@ public class UrlTreeReader implements Runnable { break; case NH_EXTRACT_TAXONOMY: parser = new NHXParser(); - ( ( NHXParser ) parser ).setTaxonomyExtraction( NHXParser.TAXONOMY_EXTRACTION.PFAM_STYLE_ONLY ); + ( ( NHXParser ) parser ).setTaxonomyExtraction( NHXParser.TAXONOMY_EXTRACTION.AGGRESSIVE ); ( ( NHXParser ) parser ).setReplaceUnderscores( false ); ( ( NHXParser ) parser ).setGuessRootedness( true ); break; case PFAM: parser = new NHXParser(); - ( ( NHXParser ) parser ).setTaxonomyExtraction( NHXParser.TAXONOMY_EXTRACTION.PFAM_STYLE_ONLY ); + ( ( NHXParser ) parser ) + .setTaxonomyExtraction( NHXParser.TAXONOMY_EXTRACTION.PFAM_STYLE_STRICT ); ( ( NHXParser ) parser ).setReplaceUnderscores( false ); ( ( NHXParser ) parser ).setGuessRootedness( true ); break; @@ -126,7 +143,7 @@ public class UrlTreeReader implements Runnable { ( ( NHXParser ) parser ).setGuessRootedness( true ); break; case PHYLOXML: - parser = new PhyloXmlParser(); + parser = PhyloXmlParser.createPhyloXmlParserXsdValidating(); break; default: throw new IllegalArgumentException( "unknown format: " + client.getReturnFormat() ); @@ -141,24 +158,28 @@ public class UrlTreeReader implements Runnable { trees = factory.create( url.openStream(), parser ); } catch ( final MalformedURLException e ) { + exception = true; JOptionPane.showMessageDialog( _main_frame, "Malformed URL: " + url + "\n" + e.getLocalizedMessage(), "Malformed URL", JOptionPane.ERROR_MESSAGE ); } catch ( final IOException e ) { + exception = true; JOptionPane.showMessageDialog( _main_frame, "Could not read from " + url + "\n" + e.getLocalizedMessage(), "Failed to read tree from " + client.getName() + " for " + identifier, JOptionPane.ERROR_MESSAGE ); } catch ( final NumberFormatException e ) { + exception = true; JOptionPane.showMessageDialog( _main_frame, "Could not read from " + url + "\n" + e.getLocalizedMessage(), "Failed to read tree from " + client.getName() + " for " + identifier, JOptionPane.ERROR_MESSAGE ); } catch ( final Exception e ) { + exception = true; e.printStackTrace(); JOptionPane.showMessageDialog( _main_frame, e.getLocalizedMessage(), @@ -180,11 +201,6 @@ public class UrlTreeReader implements Runnable { phylogeny.setRerootable( false ); phylogeny.setRooted( true ); } - if ( client.getName().equals( WebserviceUtil.PFAM_NAME ) ) { - phylogeny.setRerootable( false ); - phylogeny.setRooted( true ); - PhylogenyMethods.transferInternalNodeNamesToConfidence( phylogeny ); - } if ( client.getProcessingInstructions() != null ) { try { WebserviceUtil.processInstructions( client, phylogeny ); @@ -229,19 +245,23 @@ public class UrlTreeReader implements Runnable { } _main_frame.getMainPanel().getCurrentTreePanel().setTreeFile( new File( my_name_for_file ) ); AptxUtil.lookAtSomeTreePropertiesForAptxControlSettings( phylogeny, _main_frame.getMainPanel() - .getControlPanel(), _main_frame.getConfiguration() ); + .getControlPanel(), _main_frame.getConfiguration() ); _main_frame.getMainPanel().getControlPanel().showWhole(); } } } + else if ( !exception ) { + JOptionPane.showMessageDialog( null, ForesterUtil.wordWrap( "Failed to read in tree(s) from [" + url + + "]", 80 ), "Error", JOptionPane.ERROR_MESSAGE ); + } _main_frame.getContentPane().repaint(); - if ( ( ( trees != null ) && ( trees.length > 0 ) ) && ( ( new Date().getTime() - start_time ) > 20000 ) ) { + if ( ( trees != null ) && ( trees.length > 0 ) ) { try { JOptionPane.showMessageDialog( null, ForesterUtil.wordWrap( "Successfully read in " + trees.length - + " evolutionry tree(s) from [" + url + "]", 80 ), - "Success", - JOptionPane.INFORMATION_MESSAGE ); + + " tree(s) from [" + url + "]", 80 ), + "Success", + JOptionPane.INFORMATION_MESSAGE ); } catch ( final Exception e ) { // Not important if this fails, do nothing. @@ -252,9 +272,4 @@ public class UrlTreeReader implements Runnable { _main_frame.activateSaveAllIfNeeded(); System.gc(); } - - @Override - public void run() { - readPhylogeniesFromWebservice(); - } }