JAL - 3690 AlignCalc rebuilt - FutureTask-based manager
[jalview.git] / src / jalview / workers / StrucConsensusThread.java
index 02d584a..3cb6114 100644 (file)
@@ -21,7 +21,6 @@
 package jalview.workers;
 
 import jalview.analysis.StructureFrequency;
-import jalview.api.AlignCalcWorkerI;
 import jalview.api.AlignViewportI;
 import jalview.api.AlignmentViewPanel;
 import jalview.datamodel.AlignmentAnnotation;
@@ -31,8 +30,7 @@ import jalview.datamodel.SequenceI;
 
 import java.util.Hashtable;
 
-public class StrucConsensusThread extends AlignCalcWorker implements
-        AlignCalcWorkerI
+public class StrucConsensusThread extends AlignCalcWorker
 {
   public StrucConsensusThread(AlignViewportI alignViewport,
           AlignmentViewPanel alignPanel)
@@ -49,28 +47,6 @@ public class StrucConsensusThread extends AlignCalcWorker implements
   @Override
   public void run()
   {
-    try
-    {
-      if (calcMan.isPending(this))
-      {
-        return;
-      }
-      calcMan.notifyStart(this);
-      while (!calcMan.notifyWorking(this))
-      {
-        try
-        {
-          if (ap != null)
-          {
-            // ap.paintAlignment(false);
-          }
-
-          Thread.sleep(200);
-        } catch (Exception ex)
-        {
-          ex.printStackTrace();
-        }
-      }
       if (alignViewport.isClosed())
       {
         abortAndDestroy();
@@ -82,7 +58,6 @@ public class StrucConsensusThread extends AlignCalcWorker implements
 
       if (alignment == null || (aWidth = alignment.getWidth()) < 0)
       {
-        calcMan.workerComplete(this);
         return;
       }
       strucConsensus = alignViewport.getAlignmentStrucConsensusAnnotation();
@@ -96,19 +71,21 @@ public class StrucConsensusThread extends AlignCalcWorker implements
               .getAlignmentAnnotation();
       AlignmentAnnotation rnaStruc = null;
       // select rna struct to use for calculation
-      for (int i = 0; i < aa.length; i++)
+      if (aa != null)
       {
-        if (aa[i].getRNAStruc() != null && aa[i].isValidStruc())
+        for (int i = 0; i < aa.length; i++)
         {
-          rnaStruc = aa[i];
-          break;
+          if (aa[i].visible && aa[i].isRNA() && aa[i].isValidStruc())
+          {
+            rnaStruc = aa[i];
+            break;
+          }
         }
       }
       // check to see if its valid
 
       if (rnaStruc == null || !rnaStruc.isValidStruc())
       {
-        calcMan.workerComplete(this);
         return;
       }
 
@@ -120,32 +97,11 @@ public class StrucConsensusThread extends AlignCalcWorker implements
                 alignment.getWidth(), hStrucConsensus, true, rnaStruc);
       } catch (ArrayIndexOutOfBoundsException x)
       {
-        calcMan.workerComplete(this);
         return;
       }
       alignViewport.setRnaStructureConsensusHash(hStrucConsensus);
       // TODO AlignmentAnnotation rnaStruc!!!
       updateResultAnnotation(true);
-      if (alignViewport.getGlobalColourScheme() != null)
-      {
-        alignViewport.getGlobalColourScheme().setConsensus(hStrucConsensus);
-      }
-
-    } catch (OutOfMemoryError error)
-    {
-      calcMan.workerCannotRun(this);
-
-      // consensus = null;
-      // hconsensus = null;
-      ap.raiseOOMWarning("calculating RNA structure consensus", error);
-    } finally
-    {
-      calcMan.workerComplete(this);
-      if (ap != null)
-      {
-        ap.paintAlignment(true);
-      }
-    }
 
   }
 
@@ -166,7 +122,7 @@ public class StrucConsensusThread extends AlignCalcWorker implements
     {
       StructureFrequency.completeConsensus(strucConsensus, hStrucConsensus,
               0, hStrucConsensus.length,
-              alignViewport.getIgnoreGapsConsensus(),
+              alignViewport.isIgnoreGapsConsensus(),
               alignViewport.isShowSequenceLogo(), nseq);
     }
   }