Project

General

Profile

« Previous | Next » 

Revision 80a0c0dc

Added by Patrick Plitzner about 6 years ago

ref #7086 Fix potential multiple representation exception

View differences:

eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/workingSet/TaxonNodeDropAdapter.java
8 8
*/
9 9
package eu.etaxonomy.taxeditor.editor.workingSet;
10 10

  
11
import java.util.Set;
12

  
13 11
import org.eclipse.jface.util.LocalSelectionTransfer;
14 12
import org.eclipse.jface.viewers.ISelection;
15 13
import org.eclipse.jface.viewers.IStructuredSelection;
......
17 15
import org.eclipse.jface.viewers.ViewerDropAdapter;
18 16
import org.eclipse.swt.dnd.TransferData;
19 17

  
20
import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
21
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
22 18
import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
23
import eu.etaxonomy.taxeditor.editor.l10n.Messages;
24
import eu.etaxonomy.taxeditor.model.MessagingUtils;
25
import eu.etaxonomy.taxeditor.store.CdmStore;
26 19

  
27 20
/**
28 21
 * @author pplitzner
......
44 37
    @Override
45 38
    public boolean performDrop(Object data) {
46 39
        TaxonNodeDto taxonNodeDto = (TaxonNodeDto) ((ITreeSelection) data).getFirstElement();
47
        TaxonNode taxonNode = CdmStore.getService(ITaxonNodeService.class).load(taxonNodeDto.getUuid());
48
        //check if node belongs to same classification
49
        Set<TaxonNode> taxonSubtreeFilter = workingSetEditor.getWorkingSet().getTaxonSubtreeFilter();
50
        if(taxonSubtreeFilter!=null && !taxonSubtreeFilter.isEmpty()){
51
            if(!taxonSubtreeFilter.iterator().next().getClassification().equals(taxonNode.getClassification())){
52
                MessagingUtils.warningDialog(Messages.TaxonNodeDropAdapter_CLASSIFICATIONS_NO_MATCH, this.getClass(),
53
                        Messages.TaxonNodeDropAdapter_CLASSIFICATIONS_NO_MATCH_MESSAGE);
54
                return false;
55
            }
56

  
57
        }
58
        workingSetEditor.addTaxonNode(taxonNode);
40
        workingSetEditor.addTaxonNode(taxonNodeDto);
59 41
        return true;
60 42
    }
61 43

  
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/workingSet/WorkingSetEditor.java
47 47

  
48 48
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
49 49
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
50
import eu.etaxonomy.cdm.api.service.ITaxonNodeService;
50 51
import eu.etaxonomy.cdm.api.service.ITermService;
51 52
import eu.etaxonomy.cdm.api.service.IWorkingSetService;
52 53
import eu.etaxonomy.cdm.model.common.DefinedTermBase;
......
56 57
import eu.etaxonomy.cdm.model.name.Rank;
57 58
import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode;
58 59
import eu.etaxonomy.cdm.model.taxon.TaxonNode;
60
import eu.etaxonomy.cdm.persistence.dto.TaxonNodeDto;
59 61
import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
60 62
import eu.etaxonomy.taxeditor.editor.l10n.Messages;
61 63
import eu.etaxonomy.taxeditor.model.IDirtyMarkable;
......
198 200
        composite.getTxt_label().addModifyListener(labelModifyListener);
199 201
    }
200 202

  
201
    public void addTaxonNode(TaxonNode taxonNode){
202
        //load into WS editor session
203
        taxonNode = getCdmEntitySession().load(taxonNode, false);
203
    public void addTaxonNode(TaxonNodeDto taxonNodeDto){
204
        TaxonNode taxonNode = CdmStore.getService(ITaxonNodeService.class).load(taxonNodeDto.getUuid());
205
        //check if node belongs to same classification
206
        Set<TaxonNode> taxonSubtreeFilter = workingSet.getTaxonSubtreeFilter();
207
        if(taxonSubtreeFilter!=null && !taxonSubtreeFilter.isEmpty()){
208
            if(!taxonSubtreeFilter.iterator().next().getClassification().equals(taxonNode.getClassification())){
209
                MessagingUtils.warningDialog(Messages.TaxonNodeDropAdapter_CLASSIFICATIONS_NO_MATCH, this.getClass(),
210
                        Messages.TaxonNodeDropAdapter_CLASSIFICATIONS_NO_MATCH_MESSAGE);
211
            }
212

  
213
        }
204 214
        Viewer taxonTreeViewer = getTaxonTreeViewer();
205 215
        Object input = taxonTreeViewer.getInput();
206 216
        Collection<TaxonNode> treeNodes;

Also available in: Unified diff