* Lookup for sequence and annotation mapped to each RNA in the viewer. Using
* a linked hashmap means that order is preserved when saved to the project.
*/
- private Map<RNA, RnaModel> models = new LinkedHashMap<RNA, RnaModel>();
+ private Map<RNA, RnaModel> models = new LinkedHashMap<>();
- private Map<RNA, ShiftList> offsets = new Hashtable<RNA, ShiftList>();
+ private Map<RNA, ShiftList> offsets = new Hashtable<>();
- private Map<RNA, ShiftList> offsetsInv = new Hashtable<RNA, ShiftList>();
+ private Map<RNA, ShiftList> offsetsInv = new Hashtable<>();
private JSplitPane split;
{
return;
}
- if (seqsel != null && seqsel.getSize() > 0)
+
+ RnaModel rnaModel = models.get(rna);
+
+ if (seqsel != null && seqsel.getSize() > 0
+ && seqsel.contains(rnaModel.seq))
{
int start = seqsel.getStartRes(), end = seqsel.getEndRes();
- ShiftList shift = offsets.get(rna);
- if (shift != null)
+ if (rnaModel.gapped)
+ {
+ ShiftList shift = offsets.get(rna);
+ if (shift != null)
+ {
+ start = shift.shift(start);
+ end = shift.shift(end);
+ }
+ }
+ else
{
- start = shift.shift(start);
- end = shift.shift(end);
+ start = rnaModel.seq.findPosition(start) - rnaModel.seq.getStart();
+ end = rnaModel.seq.findPosition(end) - rnaModel.seq.getStart();
}
+
selectionHighlighter.highlightRegion(rna, start, end);
selectionHighlighter.getLastHighlight()
.setOutlineColor(seqsel.getOutlineColour());