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