X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fworkers%2FColumnCounterWorker.java;h=dd56aaf78c070fd68801536b57aa9d4453bad4dc;hb=refs%2Fheads%2Ffeatures%2FJAL-653_JAL-1766_htslib_refseqsupport;hp=69f4265d3b6b4685767645297b6f60d9cc5e061c;hpb=25551bf7f81cd62e7b427f5787f2879eab2afed7;p=jalview.git diff --git a/src/jalview/workers/ColumnCounterWorker.java b/src/jalview/workers/ColumnCounterWorker.java index 69f4265..dd56aaf 100644 --- a/src/jalview/workers/ColumnCounterWorker.java +++ b/src/jalview/workers/ColumnCounterWorker.java @@ -20,14 +20,14 @@ */ package jalview.workers; +import jalview.api.AlignViewportI; +import jalview.api.AlignmentViewPanel; import jalview.datamodel.AlignmentAnnotation; import jalview.datamodel.AlignmentI; import jalview.datamodel.Annotation; import jalview.datamodel.SequenceFeature; import jalview.datamodel.SequenceI; -import jalview.gui.AlignFrame; -import jalview.gui.AlignmentPanel; -import jalview.gui.FeatureRenderer; +import jalview.renderer.seqfeatures.FeatureRenderer; import jalview.util.ColorUtils; import jalview.util.Comparison; @@ -53,9 +53,10 @@ class ColumnCounterWorker extends AlignCalcWorker * @param af * @param counter */ - public ColumnCounterWorker(AlignFrame af, FeatureCounterI counter) + public ColumnCounterWorker(AlignViewportI viewport, + AlignmentViewPanel panel, FeatureCounterI counter) { - super(af.getViewport(), af.alignPanel); + super(viewport, panel); ourAnnots = new ArrayList(); this.counter = counter; calcMan.registerWorker(this); @@ -88,7 +89,6 @@ class ColumnCounterWorker extends AlignCalcWorker return; } - removeAnnotation(); if (alignViewport.getAlignment() != null) { try @@ -123,7 +123,7 @@ class ColumnCounterWorker extends AlignCalcWorker */ void computeAnnotations() { - FeatureRenderer fr = new FeatureRenderer((AlignmentPanel) ap); + FeatureRenderer fr = new FeatureRenderer(alignViewport); // TODO use the commented out code once JAL-2075 is fixed // to get adequate performance on genomic length sequence AlignmentI alignment = alignViewport.getAlignment(); @@ -158,20 +158,28 @@ class ColumnCounterWorker extends AlignCalcWorker { Color color = ColorUtils.getGraduatedColour(count, 0, Color.cyan, max, Color.blue); - anns[i] = new Annotation(String.valueOf(count), - String.valueOf(count), '0', count, color); + String str = String.valueOf(count); + anns[i] = new Annotation(str, str, '0', count, color); } } /* - * construct the annotation, save it and add it to the displayed alignment + * construct or update the annotation */ - AlignmentAnnotation ann = new AlignmentAnnotation(counter.getName(), - counter.getDescription(), anns); + AlignmentAnnotation ann = alignViewport.getAlignment() + .findOrCreateAnnotation(counter.getName(), + counter.getDescription(), false, null, null); + ann.description = counter.getDescription(); ann.showAllColLabels = true; + ann.scaleColLabel = true; ann.graph = AlignmentAnnotation.BAR_GRAPH; - ourAnnots.add(ann); - alignViewport.getAlignment().addAnnotation(ann); + ann.annotations = anns; + setGraphMinMax(ann, anns); + ann.validateRangeAndDisplay(); + if (!ourAnnots.contains(ann)) + { + ourAnnots.add(ann); + } } /**