Tooltips for features, links for features added
[jalview.git] / src / jalview / appletgui / FeatureRenderer.java
index 900de83..aa3f830 100755 (executable)
@@ -40,6 +40,11 @@ public class FeatureRenderer
     // particular type\r
     Hashtable featureGroups = null;\r
 \r
+    // Holds web links for feature groups and feature types\r
+    // in the form label|link\r
+    Hashtable featureLinks = null;\r
+\r
+\r
     // This is actually an Integer held in the hashtable,\r
     // Retrieved using the key feature type\r
     Object currentColour;\r
@@ -49,6 +54,10 @@ public class FeatureRenderer
     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
@@ -58,6 +67,17 @@ public class FeatureRenderer
     {\r
         this.av = av;\r
         initColours();\r
+\r
+        if(!System.getProperty("java.version").startsWith("1.1"))\r
+             transparencySetter = new TransparencySetter();\r
+    }\r
+\r
+    public void addFeatureLink(String feature, String link)\r
+    {\r
+      if(featureLinks == null)\r
+        featureLinks = new Hashtable();\r
+\r
+       featureLinks.put(feature, link);\r
     }\r
 \r
 \r
@@ -160,6 +180,10 @@ public class FeatureRenderer
           || seq.getSequenceFeatures().length==0)\r
         return;\r
 \r
+      if(transparencySetter!=null && g!=null)\r
+      {\r
+        transparencySetter.setTransparency(g, transparency);\r
+      }\r
 \r
       if (av.featuresDisplayed == null || renderOrder==null)\r
        {\r
@@ -248,6 +272,11 @@ public class FeatureRenderer
 \r
         }\r
       }\r
+\r
+      if(transparencySetter!=null && g!=null)\r
+      {\r
+        transparencySetter.setTransparency(g, 1.0f);\r
+      }\r
     }\r
 \r
 \r
@@ -417,8 +446,19 @@ public class FeatureRenderer
       featureColours.put("unsure residue", new Color(0, 75, 245));\r
       featureColours.put("zinc finger region", new Color(0, 65, 255));\r
     }\r
-\r
 }\r
 \r
+  class TransparencySetter\r
+  {\r
+    void setTransparency(Graphics g, float value)\r
+    {\r
+      Graphics2D g2 = (Graphics2D) g;\r
+      g2.setComposite(\r
+          AlphaComposite.getInstance(\r
+              AlphaComposite.SRC_OVER, value));\r
+    }\r
+  }\r
+\r
+\r
 \r
 \r