Project

General

Profile

« Previous | Next » 

Revision fd7d64e9

Added by Patrick Plitzner over 6 years ago

ref #6932 Refactor merge and delete handler

View differences:

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