*/
package jalview.workers;
+import java.util.ArrayList;
+import java.util.List;
+
import jalview.analysis.Conservation;
import jalview.api.AlignCalcWorkerI;
import jalview.api.AlignmentViewPanel;
super(alignViewport, alignPanel);
ConsPercGaps = alignViewport.getConsPercGaps();
}
-
+
+ private Conservation cons;
+ AlignmentAnnotation conservation,quality;
+ int alWidth;
public void run()
{
try
if (alignViewport.isClosed()) {
abortAndDestroy();
}
-
+ List<AlignmentAnnotation>ourAnnot = new ArrayList<AlignmentAnnotation>();
AlignmentI alignment=alignViewport.getAlignment();
- AlignmentAnnotation conservation=alignViewport.getAlignmentConservationAnnotation();
- AlignmentAnnotation quality=alignViewport.getAlignmentQualityAnnot();
+ conservation=alignViewport.getAlignmentConservationAnnotation();
+ quality=alignViewport.getAlignmentQualityAnnot();
+ ourAnnot.add(conservation);
+ ourAnnot.add(quality);
+ ourAnnots = ourAnnot;
+
// AlignViewport.UPDATING_CONSERVATION = true;
-
- int alWidth;
if (alignment==null || (alWidth=alignment.getWidth())< 0)
{
return;
}
- Conservation cons = Conservation.calculateConservation("All",
+ cons = Conservation.calculateConservation("All",
jalview.schemes.ResidueProperties.propHash, 3,
alignment.getSequences(), 0, alWidth - 1, false, ConsPercGaps, quality!=null);
- cons.completeAnnotations(conservation,
- quality, 0, alWidth);
+ updateResultAnnotation(true);
} catch (OutOfMemoryError error)
{
ap.raiseOOMWarning("calculating conservation", error);
}
}
+
+ private void updateResultAnnotation(boolean b)
+ {
+ if (b || !calcMan.isWorking(this) && cons!=null && conservation!=null && quality!=null)
+ cons.completeAnnotations(conservation,
+ quality, 0, alWidth);
+ }
+ @Override
+ public void updateAnnotation()
+ {
+ updateResultAnnotation(false);
+
+ }
}