package jalview.renderer.seqfeatures;
import jalview.api.AlignViewportI;
+import jalview.datamodel.Range;
import jalview.datamodel.SequenceFeature;
import jalview.datamodel.SequenceI;
import jalview.util.Comparison;
return null;
}
- SequenceFeature[] sequenceFeatures = seq.getSequenceFeatures();
-
- if (sequenceFeatures == null || sequenceFeatures.length == 0)
- {
- return null;
- }
-
if (Comparison.isGap(seq.getCharAt(column)))
{
return Color.white;
final SequenceI seq, int start, int end, int y1,
boolean colourOnly)
{
- SequenceFeature[] sequenceFeatures = seq.getSequenceFeatures();
- if (sequenceFeatures == null || sequenceFeatures.length == 0)
+ if (!seq.getFeatures().hasFeatures())
{
return null;
}
transparency));
}
- int startPos = seq.findPosition(start);
- int endPos = seq.findPosition(end);
+ /*
+ * get range of sequence positions within column range
+ */
+ Range seqRange = seq.findPositions(start, end);
+ if (seqRange == null)
+ {
+ return null;
+ }
Color drawnColour = null;
continue;
}
- List<SequenceFeature> overlaps = seq.findFeatures(startPos, endPos,
- type);
+ List<SequenceFeature> overlaps = seq.findFeatures(seqRange.start,
+ seqRange.end, type);
for (SequenceFeature sequenceFeature : overlaps)
{
/*
Color featureColour = getColour(sequenceFeature);
boolean isContactFeature = sequenceFeature.isContactFeature();
+ // todo overload findIndex using Location data
+ int featureStartCol = seq.findIndex(sequenceFeature.begin);
+ int featureEndCol = seq.findIndex(sequenceFeature.end);
if (isContactFeature)
{
boolean drawn = renderFeature(g, seq,
- seq.findIndex(sequenceFeature.begin) - 1,
- seq.findIndex(sequenceFeature.begin) - 1, featureColour,
+ featureStartCol - 1,
+ featureStartCol - 1, featureColour,
start, end, y1, colourOnly);
drawn |= renderFeature(g, seq,
- seq.findIndex(sequenceFeature.end) - 1,
- seq.findIndex(sequenceFeature.end) - 1, featureColour,
+ featureEndCol - 1,
+ featureEndCol - 1, featureColour,
start, end, y1, colourOnly);
if (drawn)
{
{
*/
boolean drawn = renderFeature(g, seq,
- seq.findIndex(sequenceFeature.begin) - 1,
- seq.findIndex(sequenceFeature.end) - 1, featureColour,
+ featureStartCol - 1,
+ featureEndCol - 1, featureColour,
start, end, y1, colourOnly);
if (drawn)
{