Merge branch 'develop' into features/JAL-2068groovyAnnotationWorker
[jalview.git] / src / jalview / appletgui / FeatureRenderer.java
index dd2b873..d774131 100644 (file)
@@ -1,6 +1,6 @@
 /*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2)
- * Copyright (C) 2014 The Jalview Authors
+ * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
+ * Copyright (C) $$Year-Rel$$ The Jalview Authors
  * 
  * This file is part of Jalview.
  * 
  */
 package jalview.appletgui;
 
-import java.util.*;
-import java.awt.*;
-import java.awt.event.*;
-
-import jalview.datamodel.*;
+import jalview.datamodel.SearchResults;
+import jalview.datamodel.SequenceFeature;
+import jalview.datamodel.SequenceI;
 import jalview.schemes.AnnotationColourGradient;
 import jalview.schemes.GraduatedColor;
 import jalview.util.MessageManager;
-import jalview.viewmodel.seqfeatures.FeaturesDisplayed;
+import jalview.viewmodel.AlignmentViewport;
+
+import java.awt.BorderLayout;
+import java.awt.Button;
+import java.awt.Choice;
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.Font;
+import java.awt.Graphics;
+import java.awt.GridLayout;
+import java.awt.Label;
+import java.awt.Panel;
+import java.awt.ScrollPane;
+import java.awt.TextArea;
+import java.awt.TextField;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
 
 /**
  * DOCUMENT ME!
@@ -36,25 +50,19 @@ import jalview.viewmodel.seqfeatures.FeaturesDisplayed;
  * @author $author$
  * @version $Revision$
  */
-public class FeatureRenderer extends jalview.renderer.seqfeatures.FeatureRenderer
+public class FeatureRenderer extends
+        jalview.renderer.seqfeatures.FeatureRenderer
 {
-
-  // Holds web links for feature groups and feature types
-  // in the form label|link
-  Hashtable featureLinks = null;
-
   /**
    * Creates a new FeatureRenderer object.
    * 
    * @param av
    *          DOCUMENT ME!
    */
-  public FeatureRenderer(AlignViewport av)
+  public FeatureRenderer(AlignmentViewport av)
   {
-    super();
-    this.av = av;
+    super(av);
 
-    setTransparencyAvailable(!System.getProperty("java.version").startsWith("1.1"));
   }
 
   static String lastFeatureAdded;
@@ -100,7 +108,9 @@ public class FeatureRenderer extends jalview.renderer.seqfeatures.FeatureRendere
       }
       else
       {
-        throw new Error(MessageManager.getString("error.invalid_colour_for_mycheckbox"));
+        throw new Error(
+                MessageManager
+                        .getString("error.invalid_colour_for_mycheckbox"));
       }
       if (col != null)
       {
@@ -135,6 +145,7 @@ public class FeatureRenderer extends jalview.renderer.seqfeatures.FeatureRendere
       super(null);
     }
 
+    @Override
     public void paint(Graphics g)
     {
       Dimension d = getSize();
@@ -197,7 +208,9 @@ public class FeatureRenderer extends jalview.renderer.seqfeatures.FeatureRendere
                 + "-" + features[i].getEnd();
 
         if (features[i].getFeatureGroup() != null)
+        {
           item += " (" + features[i].getFeatureGroup() + ")";
+        }
 
         overlaps.addItem(item);
       }
@@ -206,6 +219,7 @@ public class FeatureRenderer extends jalview.renderer.seqfeatures.FeatureRendere
 
       overlaps.addItemListener(new java.awt.event.ItemListener()
       {
+        @Override
         public void itemStateChanged(java.awt.event.ItemEvent e)
         {
           int index = overlaps.getSelectedIndex();
@@ -302,8 +316,10 @@ public class FeatureRenderer extends jalview.renderer.seqfeatures.FeatureRendere
       }
     }
 
-    String title = newFeatures ? MessageManager.getString("label.create_new_sequence_features")
-            : MessageManager.formatMessage("label.amend_delete_features", new String[]{sequences[0].getName()});
+    String title = newFeatures ? MessageManager
+            .getString("label.create_new_sequence_features")
+            : MessageManager.formatMessage("label.amend_delete_features",
+                    new String[] { sequences[0].getName() });
 
     final JVDialog dialog = new JVDialog(ap.alignFrame, title, true, 385,
             240);
@@ -321,6 +337,7 @@ public class FeatureRenderer extends jalview.renderer.seqfeatures.FeatureRendere
       dialog.buttonPanel.add(deleteButton, 1);
       deleteButton.addActionListener(new ActionListener()
       {
+        @Override
         public void actionPerformed(ActionEvent evt)
         {
           deleteFeature = true;
@@ -334,12 +351,6 @@ public class FeatureRenderer extends jalview.renderer.seqfeatures.FeatureRendere
     start.setText(features[0].getBegin() + "");
     end.setText(features[0].getEnd() + "");
     description.setText(features[0].getDescription());
-    Color col = getColour(name.getText());
-    if (col == null)
-    {
-      col = new jalview.schemes.UserColourScheme()
-              .createColourFromName(name.getText());
-    }
     Object fcol = getFeatureStyle(name.getText());
     // simply display the feature color in a box
     colourPanel.updateColor(fcol);
@@ -347,6 +358,7 @@ public class FeatureRenderer extends jalview.renderer.seqfeatures.FeatureRendere
     // TODO: render the graduated color in the box.
     colourPanel.addMouseListener(new java.awt.event.MouseAdapter()
     {
+      @Override
       public void mousePressed(java.awt.event.MouseEvent evt)
       {
         if (!colourPanel.isGcol)
@@ -376,7 +388,9 @@ public class FeatureRenderer extends jalview.renderer.seqfeatures.FeatureRendere
     }
 
     if (lastFeatureGroupAdded != null && lastFeatureGroupAdded.length() < 1)
+    {
       lastFeatureGroupAdded = null;
+    }
 
     if (!newFeatures)
     {
@@ -401,7 +415,8 @@ public class FeatureRenderer extends jalview.renderer.seqfeatures.FeatureRendere
         }
 
         ffile.parseDescriptionHTML(sf, false);
-        setVisible(lastFeatureAdded); // if user edited name then make sure new type is visible
+        setVisible(lastFeatureAdded); // if user edited name then make sure new
+                                      // type is visible
       }
       if (deleteFeature)
       {
@@ -422,16 +437,16 @@ public class FeatureRenderer extends jalview.renderer.seqfeatures.FeatureRendere
           ffile.parseDescriptionHTML(features[i], false);
         }
 
-        col = colourPanel.getBackground();
+        Color newColour = colourPanel.getBackground();
         // setColour(lastFeatureAdded, fcol);
 
         if (lastFeatureGroupAdded != null)
         {
           setGroupVisibility(lastFeatureGroupAdded, true);
         }
-        setColour(lastFeatureAdded, fcol);
+        setColour(lastFeatureAdded, newColour); // was fcol
         setVisible(lastFeatureAdded);
-        findAllFeatures(false); // different to original applet behaviour ? 
+        findAllFeatures(false); // different to original applet behaviour ?
         // findAllFeatures();
       }
       else