X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FFeatureRenderer.java;h=fcd952b0bebe9d898d0048a2cc2f649078c6ff32;hb=5aeb9ce3b99be8cbe7ca47c04a31dca3e3bbc282;hp=829bafb0d4ecf3c781003fcefe5cf9499aec7f5d;hpb=7daa352541756250e798b0d7479b2bc7f807de0b;p=jalview.git diff --git a/src/jalview/gui/FeatureRenderer.java b/src/jalview/gui/FeatureRenderer.java index 829bafb..fcd952b 100755 --- a/src/jalview/gui/FeatureRenderer.java +++ b/src/jalview/gui/FeatureRenderer.java @@ -24,6 +24,8 @@ import java.awt.*; import java.util.*; +import java.awt.image.*; + /** * DOCUMENT ME! @@ -41,6 +43,7 @@ public class FeatureRenderer float transparency = 1.0f; FontMetrics fm; int charOffset; + boolean drawText = true; // The following vector holds the features which are // to be added, in the correct order or rendering @@ -58,6 +61,29 @@ public class FeatureRenderer } /** + * This is used by the Molecule Viewer to get the accurate colour + * of the rendered sequence + */ + BufferedImage bi; + public Color findFeatureColour(Color initialCol, SequenceI seq, int i) + { + if(!av.showSequenceFeatures) + return initialCol; + + if(bi==null) + bi = new BufferedImage(1,1,BufferedImage.TYPE_INT_RGB); + + drawText = false; + bi.getGraphics().setColor(initialCol); + bi.getGraphics().fillRect(0, 0, 1, 1); + drawSequence(bi.getGraphics(), seq, i, i, 0, 0, 1, 1); + drawText = true; + + return new Color(bi.getRGB(0, 0)); + } + + + /** * DOCUMENT ME! * * @param g DOCUMENT ME! @@ -74,7 +100,8 @@ public class FeatureRenderer int start, int end, int x1, int y1, int width, int height) { - if (seq.getDatasetSequence().getSequenceFeatures() == null) + if (seq.getDatasetSequence().getSequenceFeatures() == null + || seq.getDatasetSequence().getSequenceFeatures().size()==0) return; fm = g.getFontMetrics(); @@ -89,7 +116,7 @@ public class FeatureRenderer String type; SequenceFeature sf; - if (featuresDisplayed == null || featuresDisplayed.size()==0) + if (featuresDisplayed == null) findAllFeatures(); Enumeration e = featuresDisplayed.elements(), e2; @@ -171,12 +198,14 @@ public class FeatureRenderer g.fillRect( (i - start) * width, y1, width, height); - g.setColor(Color.white); - - charOffset = (width - fm.charWidth(s)) / 2; - g.drawString(String.valueOf(s), - charOffset + x1 + (width * (i - start)), - (y1 + height) - height/5);//pady = height / 5; + if(drawText) + { + g.setColor(Color.white); + charOffset = (width - fm.charWidth(s)) / 2; + g.drawString(String.valueOf(s), + charOffset + x1 + (width * (i - start)), + (y1 + height) - height / 5); //pady = height / 5; + } } } }