Revision fd7d64e9
Added by Patrick Plitzner over 6 years ago
eu.etaxonomy.taxeditor.bulkeditor/src/main/java/eu/etaxonomy/taxeditor/bulkeditor/input/AbstractBulkEditorInput.java | ||
---|---|---|
11 | 11 |
import java.util.ArrayList; |
12 | 12 |
import java.util.Collections; |
13 | 13 |
import java.util.Comparator; |
14 |
import java.util.HashMap; |
|
14 | 15 |
import java.util.List; |
15 | 16 |
import java.util.Map; |
17 |
import java.util.Map.Entry; |
|
16 | 18 |
import java.util.UUID; |
17 | 19 |
|
18 | 20 |
import org.eclipse.jface.resource.ImageDescriptor; |
... | ... | |
20 | 22 |
import org.eclipse.ui.IPersistableElement; |
21 | 23 |
|
22 | 24 |
import eu.etaxonomy.cdm.api.conversation.ConversationHolder; |
25 |
import eu.etaxonomy.cdm.api.service.config.DeleteConfiguratorBase; |
|
23 | 26 |
import eu.etaxonomy.cdm.api.service.config.IIdentifiableEntityServiceConfigurator; |
27 |
import eu.etaxonomy.cdm.api.service.exception.ReferencedObjectUndeletableException; |
|
24 | 28 |
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper; |
25 | 29 |
import eu.etaxonomy.cdm.model.common.CdmBase; |
26 | 30 |
import eu.etaxonomy.cdm.model.common.IdentifiableEntity; |
... | ... | |
51 | 55 |
|
52 | 56 |
private List<T> model = new ArrayList<>(); |
53 | 57 |
|
58 |
private Map<T, DeleteConfiguratorBase> toDelete = new HashMap<>(); |
|
59 |
|
|
54 | 60 |
private List<T> mergeCandidates = new ArrayList<>(); |
55 | 61 |
private T mergeTarget = null; |
56 | 62 |
|
... | ... | |
106 | 112 |
mergeCandidates.remove(t); |
107 | 113 |
} |
108 | 114 |
|
109 |
public void removeMergeCandidates() {
|
|
110 |
mergeCandidates = new ArrayList<>();
|
|
115 |
public void addToDelete(T t, DeleteConfiguratorBase config) {
|
|
116 |
toDelete.put(t, config);
|
|
111 | 117 |
} |
112 | 118 |
|
113 | 119 |
private void setEntityUuid(UUID entityUuid){ |
... | ... | |
198 | 204 |
return true; |
199 | 205 |
} |
200 | 206 |
|
207 |
public void saveModel(){ |
|
208 |
//delete entities |
|
209 |
for(Entry<T, DeleteConfiguratorBase> entry:toDelete.entrySet()){ |
|
210 |
try { |
|
211 |
delete(entry.getKey(), entry.getValue()); |
|
212 |
} catch (ReferencedObjectUndeletableException e) { |
|
213 |
e.printStackTrace(); |
|
214 |
} |
|
215 |
} |
|
216 |
toDelete.clear(); |
|
217 |
//merge entities |
|
218 |
for(T mergeCandidate:mergeCandidates){ |
|
219 |
merge(mergeCandidate, mergeTarget); |
|
220 |
} |
|
221 |
mergeCandidates.clear(); |
|
222 |
mergeTarget = null; |
|
223 |
} |
|
224 |
|
|
201 | 225 |
|
202 | 226 |
/** {@inheritDoc} */ |
203 | 227 |
@Override |
Also available in: Unified diff
ref #6932 Refactor merge and delete handler