From dfae4fde20fff72665ad0f249de11b15f70d1320 Mon Sep 17 00:00:00 2001
From: tjc <tjc@ee4ac58c-ac51-4696-9907-e4b3aa274f04>
Date: Tue, 5 Oct 2010 10:55:40 +0000
Subject: [PATCH] fix for duplicate values when new values are added more than
 once

git-svn-id: svn+ssh://svn.internal.sanger.ac.uk/repos/svn/pathsoft/artemis/trunk@14815 ee4ac58c-ac51-4696-9907-e4b3aa274f04
---
 .../artemis/components/genebuilder/cv/HistoryBox.java | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/uk/ac/sanger/artemis/components/genebuilder/cv/HistoryBox.java b/uk/ac/sanger/artemis/components/genebuilder/cv/HistoryBox.java
index 52338e5ce..2cecf326e 100644
--- a/uk/ac/sanger/artemis/components/genebuilder/cv/HistoryBox.java
+++ b/uk/ac/sanger/artemis/components/genebuilder/cv/HistoryBox.java
@@ -181,7 +181,7 @@ class HistoryBox extends AbstractCvBox
       if(newTerm.equals(term))
         values_index.add(new Integer(i));
     }
-  
+    
     if(values_index.size() > 0)
     { 
       String oldValue = (String) oldValues.get(value_index);
@@ -190,7 +190,7 @@ class HistoryBox extends AbstractCvBox
       if(!term.equals(oldTermId))
       {
         if(values_index.size() == 1)
-        value_index = ((Integer)values_index.get(0)).intValue();
+          value_index = ((Integer)values_index.get(0)).intValue();
         else
         {
           final String with = getField("with=", origQualifierString);
@@ -240,7 +240,6 @@ class HistoryBox extends AbstractCvBox
   private String updateQualifierString()
   {
     String newQualifierString = origQualifierString;
-    
     String old = getField("term=", origQualifierString);
     if(!old.equals(dateField.getText()))
     {
@@ -265,11 +264,13 @@ class HistoryBox extends AbstractCvBox
     old = getFieldIgnoreSeparator("qualifier", origQualifierString);
     if(!old.equals(qualfTextField.getText()))
     {
+      newQualifierString = newQualifierString.replaceAll(old, "");
       newQualifierString = newQualifierString.replaceAll("qualifier=[^;]+", "");
-      newQualifierString = newQualifierString.replaceAll("[;]+", ";");
+      newQualifierString = newQualifierString.replaceAll("qualifier=", "");
+      newQualifierString = newQualifierString.replaceAll("[;]{2,}", ";");
       newQualifierString += ";qualifier="+qualfTextField.getText().trim();
     }
-    
+
     return newQualifierString;
   }
   
-- 
GitLab