Revision 18f20e1c
Added by Andreas Kohlbecker almost 6 years ago
src/main/java/eu/etaxonomy/cdm/vaadin/model/name/TaxonNameDTO.java | ||
---|---|---|
8 | 8 |
*/ |
9 | 9 |
package eu.etaxonomy.cdm.vaadin.model.name; |
10 | 10 |
|
11 |
import java.util.HashMap; |
|
12 | 11 |
import java.util.HashSet; |
13 | 12 |
import java.util.List; |
14 |
import java.util.Map; |
|
15 | 13 |
import java.util.Set; |
16 | 14 |
|
17 | 15 |
import org.joda.time.DateTime; |
... | ... | |
90 | 88 |
* @param direction |
91 | 89 |
*/ |
92 | 90 |
protected void setRelatedTaxa(Direction direction, NameRelationshipType relType, Set<TaxonName> basionyms) { |
93 |
Map<Integer, TaxonName> currentBasionymUuids = new HashMap<>();
|
|
94 |
Set<Integer> basionymsSeen = new HashSet<>();
|
|
91 |
Set<TaxonName> currentBasionyms = new HashSet<>();
|
|
92 |
Set<TaxonName> basionymsSeen = new HashSet<>();
|
|
95 | 93 |
|
96 | 94 |
for(TaxonName tn : name.getRelatedNames(direction, relType)){ |
97 |
currentBasionymUuids.put(tn.getId(), tn);
|
|
95 |
currentBasionyms.add(tn);
|
|
98 | 96 |
} |
99 | 97 |
for(TaxonName tn : basionyms){ |
100 |
if(!currentBasionymUuids.containsKey(tn.getId())){
|
|
98 |
if(!currentBasionyms.contains(tn)){
|
|
101 | 99 |
name.addBasionym(tn); |
102 |
} else { |
|
103 |
basionymsSeen.add(tn.getId()); |
|
104 | 100 |
} |
101 |
basionymsSeen.add(tn); |
|
105 | 102 |
} |
106 |
for(TaxonName tn : basionyms){
|
|
107 |
if(!basionymsSeen.contains(tn.getId())){
|
|
103 |
for(TaxonName tn : currentBasionyms){
|
|
104 |
if(!basionymsSeen.contains(tn)){ |
|
108 | 105 |
name.removeRelationWithTaxonName(tn, direction, relType); |
109 | 106 |
} |
110 | 107 |
} |
src/main/java/eu/etaxonomy/cdm/vaadin/view/name/TaxonNameEditorPresenter.java | ||
---|---|---|
10 | 10 |
|
11 | 11 |
import java.util.Arrays; |
12 | 12 |
import java.util.EnumSet; |
13 |
import java.util.HashSet; |
|
14 | 13 |
import java.util.List; |
15 |
import java.util.Set; |
|
16 | 14 |
import java.util.UUID; |
17 | 15 |
|
18 | 16 |
import org.apache.log4j.Logger; |
... | ... | |
28 | 26 |
import eu.etaxonomy.cdm.model.agent.Person; |
29 | 27 |
import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase; |
30 | 28 |
import eu.etaxonomy.cdm.model.common.TermType; |
31 |
import eu.etaxonomy.cdm.model.name.NameRelationship; |
|
32 | 29 |
import eu.etaxonomy.cdm.model.name.Rank; |
33 | 30 |
import eu.etaxonomy.cdm.model.name.TaxonName; |
34 | 31 |
import eu.etaxonomy.cdm.model.name.TaxonNameFactory; |
... | ... | |
239 | 236 |
@Override |
240 | 237 |
protected TaxonNameDTO handleTransientProperties(TaxonNameDTO dto) { |
241 | 238 |
|
242 |
TaxonName bean = cdmEntity(dto); |
|
243 | 239 |
|
244 | 240 |
logger.trace(this._toString() + ".onEditorSaveEvent - handling transient properties"); |
245 | 241 |
|
242 |
/* |
|
243 |
dto.updateTargetEntity(); |
|
246 | 244 |
|
245 |
TaxonName bean = cdmEntity(dto); |
|
247 | 246 |
List<TaxonName> newBasionymNames = getView().getBasionymComboboxSelect().getValueFromNestedFields(); |
248 | 247 |
Set<TaxonName> oldBasionyms = bean.getBasionyms(); |
249 | 248 |
Set<TaxonName> updateBasionyms = new HashSet<>(); |
... | ... | |
277 | 276 |
bean.addBasionym(addBasionymName); |
278 | 277 |
} |
279 | 278 |
} |
279 |
*/ |
|
280 | 280 |
return dto; |
281 | 281 |
} |
282 | 282 |
|
src/main/java/eu/etaxonomy/vaadin/component/ToManyRelatedEntitiesListSelect.java | ||
---|---|---|
549 | 549 |
} |
550 | 550 |
} |
551 | 551 |
// |
552 |
*/ |
|
552 | 553 |
// calling super.commit() is useless if operating on a transient property!! |
553 | 554 |
super.commit(); |
554 |
if(getValue().isEmpty() && valueInitiallyWasNull){ |
|
555 |
setPropertyDataSource(null); |
|
556 |
} |
|
557 |
*/ |
|
555 |
// if(getValue().isEmpty() && valueInitiallyWasNull){ |
|
556 |
// setPropertyDataSource(null); |
|
557 |
// } |
|
558 | 558 |
} |
559 | 559 |
|
560 | 560 |
/** |
Also available in: Unified diff
ref #7386 adding missing setBasionyms() method to taxonNameDTO - 2