From 2d4eba01f8f482222767d7aef08d5b95a00372a1 Mon Sep 17 00:00:00 2001
From: tjc <tjc@ee4ac58c-ac51-4696-9907-e4b3aa274f04>
Date: Fri, 26 Feb 2010 11:31:04 +0000
Subject: [PATCH] fix for propagating id

git-svn-id: svn+ssh://svn.internal.sanger.ac.uk/repos/svn/pathsoft/artemis/trunk@13348 ee4ac58c-ac51-4696-9907-e4b3aa274f04
---
 .../artemis/chado/ChadoTransactionManager.java    | 15 ++++++++++++---
 .../artemis/components/genebuilder/GeneUtils.java |  4 ++--
 2 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/uk/ac/sanger/artemis/chado/ChadoTransactionManager.java b/uk/ac/sanger/artemis/chado/ChadoTransactionManager.java
index 752797341..8c8888e8a 100644
--- a/uk/ac/sanger/artemis/chado/ChadoTransactionManager.java
+++ b/uk/ac/sanger/artemis/chado/ChadoTransactionManager.java
@@ -65,6 +65,8 @@ import java.util.Vector;
 import java.util.Hashtable;
 import java.util.List;
 import java.util.Enumeration;
+import java.util.regex.Pattern;
+
 import javax.swing.JOptionPane;
 
 import org.gmod.schema.sequence.FeatureCvTermProp;
@@ -2012,9 +2014,16 @@ public class ChadoTransactionManager
       if(children != null && children.size()>0)
       {
         final String prefix;
-
-        if(uniqueName[0].indexOf(".") > -1)
-          prefix = uniqueName[0].split("\\.")[0];
+        int index;
+        if((index = uniqueName[0].lastIndexOf(".") )> -1)
+        {
+          boolean numbered = Pattern.matches("\\S+\\.\\d+$", uniqueName[0]);
+          //prefix = uniqueName[0].split("\\.")[0];         
+          if(numbered)
+            prefix = uniqueName[0].substring(0, index);
+          else
+            prefix = uniqueName[0];
+        }
         else
           prefix = uniqueName[0].split(":")[0];
         int val = JOptionPane.showConfirmDialog(null, 
diff --git a/uk/ac/sanger/artemis/components/genebuilder/GeneUtils.java b/uk/ac/sanger/artemis/components/genebuilder/GeneUtils.java
index c46c196a4..c771f0b9c 100644
--- a/uk/ac/sanger/artemis/components/genebuilder/GeneUtils.java
+++ b/uk/ac/sanger/artemis/components/genebuilder/GeneUtils.java
@@ -1236,7 +1236,7 @@ public class GeneUtils
       final String oldId = getUniqueName(child);
       
       final Set childrenOfChild = gene.getChildren(child);
-      int index = oldId.indexOf('.');
+      int index = oldId.lastIndexOf('.');
       
       if(index == -1)
         index = oldId.indexOf(':');
@@ -1255,7 +1255,7 @@ public class GeneUtils
           while(itKeys.hasNext())
           {
             String oldKey = (String)itKeys.next();
-            index = oldKey.indexOf('.');
+            index = oldKey.lastIndexOf('.');
             if(index == -1)
               index = oldKey.indexOf(':');
             final String newKey = newName + oldKey.substring(index);
-- 
GitLab