diff --git a/uk/ac/sanger/artemis/chado/ChadoTransactionManager.java b/uk/ac/sanger/artemis/chado/ChadoTransactionManager.java index 7527973412844075aa2e5ac3bf1b94ed012a12f1..8c8888e8a44c5efc46dbb7bb8eeed3466d9c9224 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 c46c196a48b975329b78702b0d49c1ed6e1fe7ee..c771f0b9cac0e79649392034441095d32a7d7e27 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);