From 08598b6cbefd6e268c20f7e5ca9785dd5e243a08 Mon Sep 17 00:00:00 2001 From: jprocter Date: Fri, 24 Jul 2009 15:22:31 +0000 Subject: [PATCH] conservation thread refactored from AlignViewport --- src/jalview/gui/ConservationThread.java | 84 +++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 src/jalview/gui/ConservationThread.java diff --git a/src/jalview/gui/ConservationThread.java b/src/jalview/gui/ConservationThread.java new file mode 100644 index 0000000..4fc1103 --- /dev/null +++ b/src/jalview/gui/ConservationThread.java @@ -0,0 +1,84 @@ +/** + * + */ +package jalview.gui; + +import jalview.analysis.Conservation; +import jalview.datamodel.Annotation; + +import java.awt.Color; + +class ConservationThread extends Thread +{ + /** + * + */ + private AlignViewport alignViewport; + AlignmentPanel ap; + + public ConservationThread(AlignViewport alignViewport, AlignmentPanel ap) + { + this.alignViewport = alignViewport; + this.ap = ap; + } + + public void run() + { + try + { + this.alignViewport.updatingConservation = true; + + while (AlignViewport.UPDATING_CONSERVATION) + { + try + { + if (ap != null) + { + ap.paintAlignment(false); + } + Thread.sleep(200); + } catch (Exception ex) + { + ex.printStackTrace(); + } + } + + AlignViewport.UPDATING_CONSERVATION = true; + + int alWidth = this.alignViewport.alignment.getWidth(); + if (alWidth < 0) + { + return; + } + + Conservation cons = new jalview.analysis.Conservation("All", + jalview.schemes.ResidueProperties.propHash, 3, this.alignViewport.alignment + .getSequences(), 0, alWidth - 1); + + cons.calculate(); + cons.verdict(false, this.alignViewport.ConsPercGaps); + + if (this.alignViewport.quality != null) + { + cons.findQuality(); + } + cons.completeAnnotations(alignViewport.conservation,alignViewport.quality, alWidth); + } catch (OutOfMemoryError error) + { + new OOMWarning("calculating conservation", error); + + this.alignViewport.conservation = null; + this.alignViewport.quality = null; + + } + + AlignViewport.UPDATING_CONSERVATION = false; + this.alignViewport.updatingConservation = false; + + if (ap != null) + { + ap.paintAlignment(true); + } + + } +} \ No newline at end of file -- 1.7.10.2