JAL-2504 allow feature type to be specified for Create Features dialog
[jalview.git] / src / jalview / appletgui / FeatureRenderer.java
index b88a1dc..be027ec 100644 (file)
@@ -165,9 +165,20 @@ public class FeatureRenderer extends
 
   }
 
+  /**
+   * Shows a dialog allowing the user to create, or amend or delete, sequence
+   * features.
+   * 
+   * @param sequences
+   * @param features
+   * @param create
+   * @param ap
+   * @param featureType
+   * @return
+   */
   boolean amendFeatures(final SequenceI[] sequences,
-          final SequenceFeature[] features, boolean newFeatures,
-          final AlignmentPanel ap)
+          final SequenceFeature[] features, boolean create,
+          final AlignmentPanel ap, String featureType)
   {
     Panel bigPanel = new Panel(new BorderLayout());
     final TextField name = new TextField(16);
@@ -190,7 +201,7 @@ public class FeatureRenderer extends
 
     // /////////////////////////////////////
     // /MULTIPLE FEATURES AT SELECTED RESIDUE
-    if (!newFeatures && features.length > 1)
+    if (!create && features.length > 1)
     {
       panel = new Panel(new GridLayout(4, 1));
       tmp = new Panel();
@@ -272,7 +283,7 @@ public class FeatureRenderer extends
             Label.RIGHT));
     panel.add(new ScrollPane().add(description));
 
-    if (!newFeatures)
+    if (!create)
     {
       bigPanel.add(panel, BorderLayout.SOUTH);
 
@@ -290,15 +301,22 @@ public class FeatureRenderer extends
       bigPanel.add(panel, BorderLayout.CENTER);
     }
 
-    if (lastFeatureAdded == null)
+    if (featureType != null)
     {
-      if (features[0].type != null)
-      {
-        lastFeatureAdded = features[0].type;
-      }
-      else
+      lastFeatureAdded = featureType;
+    }
+    else
+    {
+      if (lastFeatureAdded == null)
       {
-        lastFeatureAdded = "feature_1";
+        if (features[0].type != null)
+        {
+          lastFeatureAdded = features[0].type;
+        }
+        else
+        {
+          lastFeatureAdded = "feature_1";
+        }
       }
     }
 
@@ -314,7 +332,7 @@ public class FeatureRenderer extends
       }
     }
 
-    String title = newFeatures ? MessageManager
+    String title = create ? MessageManager
             .getString("label.create_new_sequence_features")
             : MessageManager.formatMessage("label.amend_delete_features",
                     new String[] { sequences[0].getName() });
@@ -324,7 +342,7 @@ public class FeatureRenderer extends
 
     dialog.setMainPanel(bigPanel);
 
-    if (newFeatures)
+    if (create)
     {
       name.setText(lastFeatureAdded);
       source.setText(lastFeatureGroupAdded);
@@ -387,7 +405,7 @@ public class FeatureRenderer extends
       lastFeatureGroupAdded = null;
     }
 
-    if (!newFeatures)
+    if (!create)
     {
 
       SequenceFeature sf = features[featureIndex];