From 7cb50f58f1b4103fc97974e4c1960847801ac552 Mon Sep 17 00:00:00 2001
From: Patrick Plitzner
Date: Wed, 24 Jun 2015 20:58:19 +0200
Subject: [PATCH] Avoid duplication of edited team member (#4997)
---
.../ui/section/agent/TeamMemberElement.java | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/TeamMemberElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/TeamMemberElement.java
index 0600c843f..8e8e1e644 100644
--- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/TeamMemberElement.java
+++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/agent/TeamMemberElement.java
@@ -13,6 +13,7 @@ package eu.etaxonomy.taxeditor.ui.section.agent;
import org.eclipse.swt.events.SelectionListener;
import eu.etaxonomy.cdm.model.agent.Person;
+import eu.etaxonomy.cdm.model.agent.Team;
import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
@@ -58,7 +59,19 @@ public class TeamMemberElement extends AbstractEntityCollectionElement {
if (eventSource == selection_person) {
if (getParentElement() instanceof TeamMemberSection) {
TeamMemberSection teamMemberSection = (TeamMemberSection) getParentElement();
- teamMemberSection.getEntity().addTeamMember(selection_person.getEntity());
+ Team team = teamMemberSection.getEntity();
+
+ int index = team.getTeamMembers().indexOf(getEntity());
+
+ if(index==-1){
+ team.addTeamMember(selection_person.getEntity());
+ }
+ else{
+ //first remove the edited team member and then add it again
+ //because the model allows the same person multiple time in on team
+ team.removeTeamMember(getEntity());
+ team.addTeamMember(selection_person.getEntity(), index);
+ }
firePropertyChangeEvent(new CdmPropertyChangeEvent(teamMemberSection, eventSource));
}
entity = selection_person.getEntity();
--
2.30.2