List<SequenceFeature> result = getFeatures().findFeatures(startPos,
endPos, types);
- if (datasetSequence != null)
- {
- result = datasetSequence.getFeatures().findFeatures(startPos, endPos,
- types);
- }
- else
- {
- result = sequenceFeatureStore.findFeatures(startPos, endPos, types);
- }
+ // if (datasetSequence != null)
+ // {
+ // result = datasetSequence.getFeatures().findFeatures(startPos, endPos,
+ // types);
+ // }
+ // else
+ // {
+ // result = sequenceFeatureStore.findFeatures(startPos, endPos, types);
+ // }
/*
* if end column is gapped, endPos may be to the right,
@Override
public void sequenceChanged()
{
+ argb = null;
changeCount++;
}
// otherwise, sequence was completely hidden
return 0;
}
+
+ private int[] argb;
+
+ @Override
+ public int getColor(int i)
+ {
+ return argb == null ? 0 : argb[i];
+ }
+
+ @Override
+ public int setColor(int i, int rgb)
+ {
+ if (argb == null)
+ {
+ argb = new int[this.sequence.length];
+ }
+ return (argb[i] = rgb);
+ }
+
+ @Override
+ public void resetColors()
+ {
+ argb = null;
+ }
+
+ /**
+ * @author Bob Hanson 2019.07.30
+ *
+ * allows passing the result ArrayList as a parameter to avoid
+ * unnecessary construction
+ * @return result (JavaScript) or new ArrayList (Java -- see FeatureRender)
+ *
+ */
+ @Override
+ public List<SequenceFeature> findFeatures(int column, String type,
+ List<SequenceFeature> result)
+ {
+ return getFeatures().findFeatures(findPosition(column - 1), type,
+ result);
+ }
+
+ /**
+ * allows early intervention for renderer if this returns false
+ */
+ @Override
+ public boolean hasFeatures(String type)
+ {
+ return getFeatures().hasFeatures(type);
+ }
+
}