- public void drawSequence(Graphics g,SequenceI seq,SequenceGroup [] sg, int start, int end, int x1, int y1, int width, int height)\r
- {\r
- Vector features = seq.getSequenceFeatures();\r
- Enumeration e = features.elements();\r
- while( e.hasMoreElements() )\r
+\r
+ // This is actually an Integer held in the hashtable,\r
+ // Retrieved using the key feature type\r
+ Object currentColour;\r
+\r
+ String [] renderOrder;\r
+\r
+ FontMetrics fm;\r
+ int charOffset;\r
+\r
+ float transparency = 1f;\r
+\r
+ TransparencySetter transparencySetter = null;\r
+\r
+ /**\r
+ * Creates a new FeatureRenderer object.\r
+ *\r
+ * @param av DOCUMENT ME!\r
+ */\r
+ public FeatureRenderer(AlignViewport av)\r
+ {\r
+ this.av = av;\r
+\r
+ if(!System.getProperty("java.version").startsWith("1.1"))\r
+ transparencySetter = new TransparencySetter();\r
+ }\r
+\r
+\r
+ public void transferSettings(FeatureRenderer fr)\r
+ {\r
+ renderOrder = fr.renderOrder;\r
+ featureGroups = fr.featureGroups;\r
+ featureColours = fr.featureColours;\r
+ }\r
+\r
+\r
+ public Color findFeatureColour(Color initialCol, SequenceI seq, int i)\r
+ {\r
+ overview = true;\r
+ if(!av.showSequenceFeatures)\r
+ return initialCol;\r
+\r
+ lastSequence = seq;\r
+ sequenceFeatures = lastSequence.getSequenceFeatures();\r
+ if(sequenceFeatures==null)\r
+ return initialCol;\r
+\r
+ sfSize = sequenceFeatures.length;\r
+\r
+ if(jalview.util.Comparison.isGap(lastSequence.getCharAt(i)))\r
+ return Color.white;\r
+\r
+ currentColour = null;\r
+\r
+ drawSequence(null, lastSequence, lastSequence.findPosition(i), -1,-1, -1, -1);\r
+\r
+ if(currentColour==null)\r
+ return initialCol;\r
+\r
+ return new Color( ((Integer)currentColour).intValue() );\r
+ }\r
+\r
+ /**\r
+ * This is used by the Molecule Viewer to get the accurate colour\r
+ * of the rendered sequence\r
+ */\r
+ boolean overview = false;\r
+\r
+ int white = Color.white.getRGB();\r
+ public int findFeatureColour(int initialCol, int seqIndex, int column)\r