X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fworkers%2FColumnCounterSetWorker.java;fp=src%2Fjalview%2Fworkers%2FColumnCounterSetWorker.java;h=085852752008bfaee35f9fb82aaa000db9b1246c;hb=3459a8a691cb22508d7067f240b7254e588e77d3;hp=74695fe2bd494f63ce4d866f3f16b02ee2a8691d;hpb=5b27f1062b2203c4c31702e205f4c78e1992063e;p=jalview.git
diff --git a/src/jalview/workers/ColumnCounterSetWorker.java b/src/jalview/workers/ColumnCounterSetWorker.java
index 74695fe..0858527 100644
--- a/src/jalview/workers/ColumnCounterSetWorker.java
+++ b/src/jalview/workers/ColumnCounterSetWorker.java
@@ -20,21 +20,22 @@
*/
package jalview.workers;
+import java.awt.Color;
+import java.util.ArrayList;
+import java.util.List;
+
import jalview.api.AlignViewportI;
import jalview.api.AlignmentViewPanel;
import jalview.datamodel.AlignmentAnnotation;
import jalview.datamodel.AlignmentI;
import jalview.datamodel.Annotation;
+import jalview.datamodel.MappedFeatures;
import jalview.datamodel.SequenceFeature;
import jalview.datamodel.SequenceI;
import jalview.renderer.seqfeatures.FeatureRenderer;
import jalview.util.ColorUtils;
import jalview.util.Comparison;
-import java.awt.Color;
-import java.util.ArrayList;
-import java.util.List;
-
/**
* A class to compute alignment annotations with column counts for a set of
* properties of interest on positions in an alignment.
@@ -147,11 +148,6 @@ class ColumnCounterSetWorker extends AlignCalcWorker
max[crow] = 0;
}
- int[] minC = counter.getMinColour();
- int[] maxC = counter.getMaxColour();
- Color minColour = new Color(minC[0], minC[1], minC[2]);
- Color maxColour = new Color(maxC[0], maxC[1], maxC[2]);
-
for (int col = 0; col < width; col++)
{
int[] count = counts[col];
@@ -181,6 +177,11 @@ class ColumnCounterSetWorker extends AlignCalcWorker
for (int anrow = 0; anrow < rows; anrow++)
{
+ int[] minC = counter.getMinColour(anrow);
+ int[] maxC = counter.getMaxColour(anrow);
+ Color minColour = new Color(minC[0], minC[1], minC[2]);
+ Color maxColour = new Color(maxC[0], maxC[1], maxC[2]);
+
Annotation[] anns = new Annotation[width];
long rmax = 0;
/*
@@ -223,6 +224,26 @@ class ColumnCounterSetWorker extends AlignCalcWorker
return annotationAdded;
}
+ void removeOldAnnotations(String[] annotDescs)
+ {
+ // TODO use the commented out code once JAL-2075 is fixed
+ // to get adequate performance on genomic length sequence
+ AlignmentI alignment = alignViewport.getAlignment();
+ ArrayList toRemove = new ArrayList();
+ for (String toRemoveDesc : annotDescs)
+ {
+ for (AlignmentAnnotation aa : ourAnnots)
+ {
+ if (toRemoveDesc.equals(aa.getCalcId()))
+ toRemove.add(aa);
+ }
+ }
+ for (AlignmentAnnotation deleted : toRemove)
+ {
+ alignment.deleteAnnotation(deleted);
+ }
+ }
+
/**
* Returns a count of any feature types present at the specified position of
* the alignment
@@ -256,6 +277,12 @@ class ColumnCounterSetWorker extends AlignCalcWorker
*/
// see JAL-2075
List features = fr.findFeaturesAtColumn(seq, col + 1);
+ if (fr.hasRenderOrder())
+ {
+ MappedFeatures mappedFeatres = fr.findComplementFeaturesAtResidue(seq,
+ seq.findPosition(col));
+ features.addAll(mappedFeatres.features);
+ }
int[] count = this.counter.count(String.valueOf(res), features);
return count;
}