boolean offscreenRender = false;
- /**
- * DOCUMENT ME!
- *
- * @param g
- * DOCUMENT ME!
- * @param seq
- * DOCUMENT ME!
- * @param sg
- * DOCUMENT ME!
- * @param start
- * DOCUMENT ME!
- * @param end
- * DOCUMENT ME!
- * @param x1
- * DOCUMENT ME!
- * @param y1
- * DOCUMENT ME!
- * @param width
- * DOCUMENT ME!
- * @param height
- * DOCUMENT ME!
- */
protected SequenceI lastSeq;
char s;
return initialCol;
}
- final SequenceI aseq = (seq.getDatasetSequence() != null) ? seq
- .getDatasetSequence() : seq;
+ SequenceFeature[] sequenceFeatures = seq.getSequenceFeatures();
if (seq != lastSeq)
{
lastSeq = seq;
- sequenceFeatures = aseq.getSequenceFeatures();
- if (sequenceFeatures != null)
+ lastSequenceFeatures = sequenceFeatures;
+ if (lastSequenceFeatures != null)
{
- sfSize = sequenceFeatures.length;
+ sfSize = lastSequenceFeatures.length;
}
}
else
{
- if (sequenceFeatures != aseq.getSequenceFeatures())
+ if (lastSequenceFeatures != sequenceFeatures)
{
- sequenceFeatures = aseq.getSequenceFeatures();
- if (sequenceFeatures != null)
+ lastSequenceFeatures = sequenceFeatures;
+ if (lastSequenceFeatures != null)
{
- sfSize = sequenceFeatures.length;
+ sfSize = lastSequenceFeatures.length;
}
}
}
- if (sequenceFeatures == null || sfSize == 0)
+ if (lastSequenceFeatures == null || sfSize == 0)
{
return initialCol;
}
}
- private volatile SequenceFeature[] sequenceFeatures;
+ private volatile SequenceFeature[] lastSequenceFeatures;
int sfSize;
public synchronized void drawSequence(Graphics g, final SequenceI seq,
int start, int end, int y1)
{
- final SequenceI aseq = (seq.getDatasetSequence() != null) ? seq
- .getDatasetSequence() : seq;
- if (aseq.getSequenceFeatures() == null
- || aseq.getSequenceFeatures().length == 0)
+ SequenceFeature[] sequenceFeatures = seq.getSequenceFeatures();
+ if (sequenceFeatures == null || sequenceFeatures.length == 0)
{
return;
}
updateFeatures();
if (lastSeq == null || seq != lastSeq
- || aseq.getSequenceFeatures() != sequenceFeatures)
+ || sequenceFeatures != lastSequenceFeatures)
{
lastSeq = seq;
- sequenceFeatures = aseq.getSequenceFeatures();
+ lastSequenceFeatures = sequenceFeatures;
}
if (transparency != 1 && g != null)
epos = lastSeq.findPosition(end);
}
- sfSize = sequenceFeatures.length;
+ sfSize = lastSequenceFeatures.length;
String type;
for (int renderIndex = 0; renderIndex < renderOrder.length; renderIndex++)
{
// current feature to render
for (sfindex = 0; sfindex < sfSize; sfindex++)
{
- if (!sequenceFeatures[sfindex].type.equals(type))
+ if (!lastSequenceFeatures[sfindex].type.equals(type))
{
continue;
}
if (featureGroups != null
- && sequenceFeatures[sfindex].featureGroup != null
- && sequenceFeatures[sfindex].featureGroup.length() != 0
+ && lastSequenceFeatures[sfindex].featureGroup != null
+ && lastSequenceFeatures[sfindex].featureGroup.length() != 0
&& featureGroups
- .containsKey(sequenceFeatures[sfindex].featureGroup)
+ .containsKey(lastSequenceFeatures[sfindex].featureGroup)
&& !featureGroups
- .get(sequenceFeatures[sfindex].featureGroup)
+.get(
+ lastSequenceFeatures[sfindex].featureGroup)
.booleanValue())
{
continue;
}
if (!offscreenRender
- && (sequenceFeatures[sfindex].getBegin() > epos || sequenceFeatures[sfindex]
+ && (lastSequenceFeatures[sfindex].getBegin() > epos || lastSequenceFeatures[sfindex]
.getEnd() < spos))
{
continue;
if (offscreenRender && offscreenImage == null)
{
- if (sequenceFeatures[sfindex].begin <= start
- && sequenceFeatures[sfindex].end >= start)
+ if (lastSequenceFeatures[sfindex].begin <= start
+ && lastSequenceFeatures[sfindex].end >= start)
{
// this is passed out to the overview and other sequence renderers
// (e.g. molecule viewer) to get displayed colour for rendered
// sequence
currentColour = new Integer(
- getColour(sequenceFeatures[sfindex]).getRGB());
+getColour(
+ lastSequenceFeatures[sfindex]).getRGB());
// used to be retreived from av.featuresDisplayed
// currentColour = av.featuresDisplayed
// .get(sequenceFeatures[sfindex].type);
}
}
- else if (sequenceFeatures[sfindex].type.equals("disulfide bond"))
+ else if (lastSequenceFeatures[sfindex].type
+ .equals("disulfide bond"))
{
renderFeature(g, seq,
- seq.findIndex(sequenceFeatures[sfindex].begin) - 1,
- seq.findIndex(sequenceFeatures[sfindex].begin) - 1,
- getColour(sequenceFeatures[sfindex])
+ seq.findIndex(lastSequenceFeatures[sfindex].begin) - 1,
+ seq.findIndex(lastSequenceFeatures[sfindex].begin) - 1,
+ getColour(lastSequenceFeatures[sfindex])
// new Color(((Integer) av.featuresDisplayed
// .get(sequenceFeatures[sfindex].type)).intValue())
, start, end, y1);
renderFeature(g, seq,
- seq.findIndex(sequenceFeatures[sfindex].end) - 1,
- seq.findIndex(sequenceFeatures[sfindex].end) - 1,
- getColour(sequenceFeatures[sfindex])
+ seq.findIndex(lastSequenceFeatures[sfindex].end) - 1,
+ seq.findIndex(lastSequenceFeatures[sfindex].end) - 1,
+ getColour(lastSequenceFeatures[sfindex])
// new Color(((Integer) av.featuresDisplayed
// .get(sequenceFeatures[sfindex].type)).intValue())
, start, end, y1);
}
- else if (showFeature(sequenceFeatures[sfindex]))
+ else if (showFeature(lastSequenceFeatures[sfindex]))
{
if (av_isShowSeqFeatureHeight
- && sequenceFeatures[sfindex].score != Float.NaN)
+ && lastSequenceFeatures[sfindex].score != Float.NaN)
{
renderScoreFeature(g, seq,
- seq.findIndex(sequenceFeatures[sfindex].begin) - 1,
- seq.findIndex(sequenceFeatures[sfindex].end) - 1,
- getColour(sequenceFeatures[sfindex]), start, end, y1,
- normaliseScore(sequenceFeatures[sfindex]));
+ seq.findIndex(lastSequenceFeatures[sfindex].begin) - 1,
+ seq.findIndex(lastSequenceFeatures[sfindex].end) - 1,
+ getColour(lastSequenceFeatures[sfindex]), start, end,
+ y1, normaliseScore(lastSequenceFeatures[sfindex]));
}
else
{
renderFeature(g, seq,
- seq.findIndex(sequenceFeatures[sfindex].begin) - 1,
- seq.findIndex(sequenceFeatures[sfindex].end) - 1,
- getColour(sequenceFeatures[sfindex]), start, end, y1);
+ seq.findIndex(lastSequenceFeatures[sfindex].begin) - 1,
+ seq.findIndex(lastSequenceFeatures[sfindex].end) - 1,
+ getColour(lastSequenceFeatures[sfindex]), start, end,
+ y1);
}
}