- AlignViewport av;\r
- FontMetrics fm;\r
- boolean renderGaps = true;\r
- SequenceGroup currentSequenceGroup = null;\r
- SequenceGroup[] allGroups = null;\r
- Color resBoxColour;\r
- Graphics graphics;\r
- boolean monospacedFont;\r
- boolean forOverview = false;\r
-\r
- /**\r
- * Creates a new SequenceRenderer object.\r
- *\r
- * @param av DOCUMENT ME!\r
- */\r
- public SequenceRenderer(AlignViewport av)\r
+ AlignViewport av;\r
+ FontMetrics fm;\r
+ boolean renderGaps = true;\r
+ SequenceGroup currentSequenceGroup = null;\r
+ SequenceGroup[] allGroups = null;\r
+ Color resBoxColour;\r
+ Graphics graphics;\r
+ boolean monospacedFont;\r
+ boolean forOverview = false;\r
+\r
+ /**\r
+ * Creates a new SequenceRenderer object.\r
+ *\r
+ * @param av DOCUMENT ME!\r
+ */\r
+ public SequenceRenderer(AlignViewport av)\r
+ {\r
+ this.av = av;\r
+ }\r
+\r
+ /**\r
+ * DOCUMENT ME!\r
+ *\r
+ * @param b DOCUMENT ME!\r
+ */\r
+ public void prepare(Graphics g, boolean renderGaps)\r
+ {\r
+ graphics = g;\r
+ fm = g.getFontMetrics();\r
+\r
+ // If EPS graphics, stringWidth will be a double, not an int\r
+ double dwidth = fm.getStringBounds("M", g).getWidth();\r
+\r
+ monospacedFont =\r
+ (dwidth == fm.getStringBounds("|", g).getWidth()\r
+ && (float) av.charWidth == dwidth);\r
+\r
+ this.renderGaps = renderGaps;\r
+ }\r
+\r
+ public Color getResidueBoxColour(SequenceI seq, int i)\r
+ {\r
+ allGroups = av.alignment.findAllGroups(seq);\r
+\r
+ if (inCurrentSequenceGroup(i))\r
+ {\r
+ if (currentSequenceGroup.getDisplayBoxes())\r
+ {\r
+ getBoxColour(currentSequenceGroup.cs, seq, i);\r
+ }\r
+ }\r
+ else if (av.getShowBoxes())\r