- if (fstart < start)\r
- { // fix for if the feature we have starts before the sequence start,\r
- fstart = start; // but the feature end is still valid!!\r
- }\r
-\r
- if (fend >= end)\r
- {\r
- fend = end;\r
- }\r
-\r
- if (fstart == fend)\r
- {\r
- currentColour = getColour(type);\r
- g.setColor(currentColour);\r
- g.fillRoundRect((fstart - start) * width, y1, width,\r
- height, 4, 4);\r
- g.setColor(Color.white);\r
-\r
- char s = seq.getSequence().charAt(fstart);\r
- FontMetrics fm = g.getFontMetrics();\r
- int charOffset = (width - fm.charWidth(s)) / 2;\r
- int pady = height / 5;\r
- g.drawString(String.valueOf(s),\r
- charOffset + x1 + (width * (fstart - start)),\r
- (y1 + height) - pady);\r
- }\r
- else\r
- {\r
- for (int i = fstart; i <= fend; i++)\r
- {\r
- char s = seq.getSequence().charAt(i);\r
-\r
- if (jalview.util.Comparison.isGap(s))\r
- {\r
- continue;\r
- }\r
- currentColour = getColour(type);\r
- g.setColor(currentColour);\r
-\r
- g.fillRect((i - start) * width, y1, width, height);\r
-\r
- g.setColor(Color.white);\r
-\r
- FontMetrics fm = g.getFontMetrics();\r
- int charOffset = (width - fm.charWidth(s)) / 2;\r
- int pady = height / 5;\r
- g.drawString(String.valueOf(s),\r
- charOffset + x1 + (width * (i - start)),\r
- (y1 + height) - pady);\r
- }\r
- }\r
+\r
+ renderFeature(g, seq,\r
+ seq.findIndex(sf.getBegin()) - 1,\r
+ seq.findIndex(sf.getBegin()) - 1,\r
+ type, start, end, x1, y1, width, height);\r
+ renderFeature(g, seq,\r
+ seq.findIndex(sf.getEnd()) - 1,\r
+ seq.findIndex(sf.getEnd()) - 1,\r
+ type, start, end, x1, y1, width, height);\r
+\r