in progress
[jalview.git] / forester / java / src / org / forester / archaeopteryx / tools / AncestralTaxonomyInferrer.java
index 8445246..7475d1d 100644 (file)
@@ -36,7 +36,7 @@ import org.forester.archaeopteryx.TreePanel;
 import org.forester.phylogeny.Phylogeny;
 import org.forester.ws.uniprot.UniProtWsTools;
 
-public class AncestralTaxonomyInferrer implements Runnable {
+public class AncestralTaxonomyInferrer extends RunnableProcess {
 
     private final Phylogeny            _phy;
     private final MainFrameApplication _mf;
@@ -53,12 +53,12 @@ public class AncestralTaxonomyInferrer implements Runnable {
     }
 
     private void inferTaxonomies() {
-        _mf.getMainPanel().getCurrentTreePanel().setWaitCursor();
+        start( _mf, "ancestral taxonomy" );
         try {
             AncestralTaxonomyInference.inferTaxonomyFromDescendents( _phy );
         }
         catch ( final AncestralTaxonomyInferenceException e ) {
-            _mf.getMainPanel().getCurrentTreePanel().setArrowCursor();
+            end( _mf );
             JOptionPane.showMessageDialog( _mf,
                                            e.getMessage(),
                                            "Error during ancestral taxonomy inference",
@@ -66,7 +66,7 @@ public class AncestralTaxonomyInferrer implements Runnable {
             return;
         }
         catch ( final UnknownHostException e ) {
-            _mf.getMainPanel().getCurrentTreePanel().setArrowCursor();
+            end( _mf );
             JOptionPane.showMessageDialog( _mf,
                                            "Could not connect to \"" + getBaseUrl() + "\"",
                                            "Network error during ancestral taxonomy inference",
@@ -74,19 +74,27 @@ public class AncestralTaxonomyInferrer implements Runnable {
             return;
         }
         catch ( final Exception e ) {
-            _mf.getMainPanel().getCurrentTreePanel().setArrowCursor();
+            end( _mf );
             e.printStackTrace();
             JOptionPane.showMessageDialog( _mf,
                                            e.toString(),
+                                           "Unexpected exception during ancestral taxonomy inference",
+                                           JOptionPane.ERROR_MESSAGE );
+            return;
+        }
+        catch ( final Error e ) {
+            end( _mf );
+            JOptionPane.showMessageDialog( _mf,
+                                           e.toString(),
                                            "Unexpected error during ancestral taxonomy inference",
                                            JOptionPane.ERROR_MESSAGE );
             return;
         }
-        _mf.getMainPanel().getCurrentTreePanel().setArrowCursor();
         _phy.setRerootable( false );
         _treepanel.setTree( _phy );
         _mf.showWhole();
         _treepanel.setEdited( true );
+        end( _mf );
         try {
             JOptionPane.showMessageDialog( _mf,
                                            "Ancestral taxonomy inference successfully completed",