Revision ec25be77
Added by Cherian Mathew about 9 years ago
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/operation/DeleteOperation.java | ||
---|---|---|
31 | 31 |
import eu.etaxonomy.cdm.model.taxon.Classification; |
32 | 32 |
import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode; |
33 | 33 |
import eu.etaxonomy.cdm.model.taxon.TaxonNode; |
34 |
import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeEvent.EventType; |
|
35 | 34 |
import eu.etaxonomy.taxeditor.operation.AbstractPersistentPostOperation; |
36 | 35 |
import eu.etaxonomy.taxeditor.operation.IPostOperationEnabled; |
37 | 36 |
import eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled; |
... | ... | |
103 | 102 |
monitor.worked(20); |
104 | 103 |
ICdmApplicationConfiguration controller = CdmStore.getCurrentApplicationConfiguration(); |
105 | 104 |
ITaxonNodeService service = controller.getTaxonNodeService(); |
105 |
Set<CdmBase> affectedObjects = new HashSet<CdmBase>(); |
|
106 | 106 |
|
107 | 107 |
if(taxonNode != null && taxonNode instanceof TaxonNode){ |
108 | 108 |
//((TaxonNode) treeNode).delete(); |
... | ... | |
113 | 113 |
if (result.isError()){ |
114 | 114 |
//TODO:Error message! |
115 | 115 |
MessageDialog.openError(null, "Delete failed", result.getExceptions().get(0).getMessage()); |
116 |
} else { |
|
117 |
affectedObjects.add(((TaxonNode)taxonNode).getParent()); |
|
118 |
cdmEntitySessionEnabled.getCdmEntitySession().delete(taxonNode, affectedObjects); |
|
116 | 119 |
} |
117 |
cdmEntitySessionEnabled.getCdmEntitySession().addEvent(taxonNode, EventType.DELETE); |
|
118 | 120 |
|
119 | 121 |
}else if(taxonNode != null && taxonNode instanceof Classification){ |
120 | 122 |
Classification taxonomicTree = (Classification) taxonNode; |
... | ... | |
128 | 130 |
if (result.isError()){ |
129 | 131 |
//TODO:Error message! |
130 | 132 |
MessageDialog.openError(null, "Delete failed", result.getExceptions().get(0).getMessage()); |
133 |
} else { |
|
134 |
affectedObjects.add(((TaxonNode)taxonNode).getParent()); |
|
135 |
cdmEntitySessionEnabled.getCdmEntitySession().delete(taxonomicTree, affectedObjects); |
|
131 | 136 |
} |
132 |
|
|
133 |
/*}else{ |
|
134 |
try{ |
|
135 |
CdmStore.getService(IClassificationService.class).delete(taxonomicTree); |
|
136 |
}catch(ReferencedObjectUndeletableException e){ |
|
137 |
throw new ExecutionException(e.getMessage()); |
|
138 |
} |
|
139 |
}*/ |
|
140 |
cdmEntitySessionEnabled.getCdmEntitySession().addEvent(taxonomicTree, EventType.DELETE); |
|
141 | 137 |
} else { |
142 | 138 |
Set<UUID> treeNodeUuids = new HashSet<UUID>(); |
143 | 139 |
for(ITaxonTreeNode treeNode : treeNodes) { |
... | ... | |
148 | 144 |
//TODO:Error message! |
149 | 145 |
MessageDialog.openError(null, "Delete failed", result.getExceptions().get(0).getMessage()); |
150 | 146 |
} |
151 |
cdmEntitySessionEnabled.getCdmEntitySession().addEvent(treeNodes, EventType.DELETE); |
|
147 |
|
|
148 |
for(ITaxonTreeNode treeNode : treeNodes) { |
|
149 |
affectedObjects.add(((TaxonNode)treeNode).getParent()); |
|
150 |
} |
|
151 |
cdmEntitySessionEnabled.getCdmEntitySession().delete(treeNodes, affectedObjects); |
|
152 | 152 |
} |
153 | 153 |
|
154 | 154 |
monitor.worked(40); |
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