Revision ec25be77
Added by Cherian Mathew about 9 years ago
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/MoveTaxonOperation.java | ||
---|---|---|
10 | 10 |
package eu.etaxonomy.taxeditor.navigation.navigator.operation; |
11 | 11 |
|
12 | 12 |
import java.util.HashMap; |
13 |
import java.util.HashSet; |
|
13 | 14 |
import java.util.Map; |
14 | 15 |
import java.util.Set; |
15 | 16 |
|
... | ... | |
22 | 23 |
|
23 | 24 |
import eu.etaxonomy.cdm.api.conversation.IConversationEnabled; |
24 | 25 |
import eu.etaxonomy.cdm.api.service.ITaxonNodeService; |
26 |
import eu.etaxonomy.cdm.model.common.CdmBase; |
|
25 | 27 |
import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode; |
26 | 28 |
import eu.etaxonomy.cdm.model.taxon.IllegalAncestryException; |
27 | 29 |
import eu.etaxonomy.cdm.model.taxon.TaxonNode; |
28 |
import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeEvent.EventType; |
|
29 | 30 |
import eu.etaxonomy.taxeditor.model.MessagingUtils; |
30 | 31 |
import eu.etaxonomy.taxeditor.operation.AbstractPersistentPostOperation; |
31 | 32 |
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled; |
... | ... | |
52 | 53 |
|
53 | 54 |
private final Set<TaxonNode> taxonNodes; |
54 | 55 |
|
56 |
private final ICdmEntitySessionEnabled cdmEntitySessionEnabled; |
|
55 | 57 |
/** |
56 | 58 |
* <p>Constructor for MoveTaxonOperation.</p> |
57 | 59 |
* |
... | ... | |
80 | 82 |
for(TaxonNode taxonNode : taxonNodes){ |
81 | 83 |
this.oldParentTreeNodes.put(taxonNode, taxonNode.getParent()); |
82 | 84 |
} |
85 |
|
|
86 |
this.cdmEntitySessionEnabled = cdmEntitySessionEnabled; |
|
83 | 87 |
} |
84 | 88 |
|
85 | 89 |
/* (non-Javadoc) |
... | ... | |
92 | 96 |
bind(); |
93 | 97 |
monitor.worked(20); |
94 | 98 |
|
99 |
Set<CdmBase> affectedObjects = new HashSet<CdmBase>(); |
|
95 | 100 |
try { |
96 | 101 |
for (TaxonNode taxonNode : taxonNodes){ |
97 |
TaxonNode newTaxonNode = newParentTreeNode.addChildNode(taxonNode, |
|
98 |
newParentTreeNode.getReference(), newParentTreeNode.getMicroReference()); |
|
99 |
taxonNodes.add(newTaxonNode); |
|
100 |
|
|
102 |
TaxonNode newTaxonNode = CdmStore.getService( ITaxonNodeService.class).moveTaxonNode(taxonNode.getUuid(), newParentTreeNode.getUuid()); |
|
103 |
affectedObjects.add(newTaxonNode.getParent()); |
|
104 |
//FIXME:Remoting testing until UpdateResult is ready |
|
105 |
affectedObjects.add(newTaxonNode.getParent().getParent()); |
|
106 |
cdmEntitySessionEnabled.getCdmEntitySession().update(newTaxonNode, affectedObjects); |
|
101 | 107 |
monitor.worked(2); |
102 | 108 |
} |
103 |
CdmStore.getService( ITaxonNodeService.class).merge((TaxonNode)newParentTreeNode); |
|
104 |
CdmStore.getCurrentSessionManager().getActiveSession().addEvent(newParentTreeNode, EventType.UPDATE); |
|
109 |
|
|
110 |
|
|
111 |
|
|
105 | 112 |
} catch(IllegalAncestryException e) { |
106 | 113 |
MessagingUtils.warningDialog("Illegal ancestry", this, e.getMessage()); |
107 | 114 |
} |
Also available in: Unified diff
CdmTransientEntityCacher : overriding cache field only in the case of initialised cdm entity
CdmEntitySession, ICdmEntitySession, MockCdmEntitySession : added update + delete methods
DeleteSynonymOperation, MoveFactualDataHandler : changed service call to uuid one
ChangeAcceptedTaxonToSynonymOperation, DeleteOperation, MoveTaxonOperation : calling newly added session update , insert delete methods