From af7a78d94ac6d9907bb9d38b2c32a9a124b69964 Mon Sep 17 00:00:00 2001
From: tjc <tjc@ee4ac58c-ac51-4696-9907-e4b3aa274f04>
Date: Tue, 26 Apr 2011 08:59:18 +0000
Subject: [PATCH] changes for the "Create introns" function to transfer sys_id
 and allow for 3'UTR and 5'UTR

git-svn-id: svn+ssh://svn.internal.sanger.ac.uk/repos/svn/pathsoft/artemis/trunk@15998 ee4ac58c-ac51-4696-9907-e4b3aa274f04
---
 uk/ac/sanger/artemis/components/AddMenu.java | 18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)

diff --git a/uk/ac/sanger/artemis/components/AddMenu.java b/uk/ac/sanger/artemis/components/AddMenu.java
index 6cf182217..68705b8ad 100644
--- a/uk/ac/sanger/artemis/components/AddMenu.java
+++ b/uk/ac/sanger/artemis/components/AddMenu.java
@@ -40,6 +40,7 @@ import uk.ac.sanger.artemis.components.genebuilder.GeneUtils;
 import uk.ac.sanger.artemis.io.ChadoCanonicalGene;
 import uk.ac.sanger.artemis.io.DatabaseDocumentEntry;
 import uk.ac.sanger.artemis.io.GFFStreamFeature;
+import uk.ac.sanger.artemis.io.InvalidRelationException;
 import uk.ac.sanger.artemis.io.Key;
 import uk.ac.sanger.artemis.io.Range;
 import uk.ac.sanger.artemis.io.RangeVector;
@@ -750,7 +751,9 @@ public class AddMenu extends SelectionMenu
         final Feature selection_feature =
           selected_features.elementAt (feature_index);
 
-        if (!selection_feature.isProteinFeature ()) {
+        if (!(selection_feature.isProteinFeature () ||
+              selection_feature.getKey().equals("5'UTR") ||
+              selection_feature.getKey().equals("3'UTR"))) {
           continue;
         }
 
@@ -814,6 +817,19 @@ public class AddMenu extends SelectionMenu
             new Location (intron_ranges, cds_location.isComplement ());
           final QualifierVector qualifiers = new QualifierVector ();
 
+          try {
+            StringVector sysNames = Options.getOptions().getSystematicQualifierNames();
+            for(int i=0; i<sysNames.size(); i++) {
+              Qualifier qual = selection_feature.getQualifierByName((String) sysNames.get(i));
+              if(qual != null && qual.getValues() != null && qual.getValues().size() > 0) {
+                qualifiers.addQualifierValues(qual);
+                break;
+              }
+            }
+          } catch (InvalidRelationException e) {
+            throw new Error ("internal error - unexpected exception: " + e);
+          }
+          
           try {
             selection_feature.getEntry ().createFeature (intron_key,
                                                          intron_location,
-- 
GitLab