Revision 08a36bdf
Added by Katja Luther almost 4 years ago
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/descriptiveDataSet/DescriptiveDataSetEditor.java | ||
---|---|---|
62 | 62 |
import eu.etaxonomy.cdm.model.description.Feature; |
63 | 63 |
import eu.etaxonomy.cdm.model.location.NamedArea; |
64 | 64 |
import eu.etaxonomy.cdm.model.name.Rank; |
65 |
import eu.etaxonomy.cdm.model.taxon.ITaxonTreeNode; |
|
66 | 65 |
import eu.etaxonomy.cdm.model.taxon.TaxonNode; |
67 | 66 |
import eu.etaxonomy.cdm.model.term.DefinedTermBase; |
68 | 67 |
import eu.etaxonomy.cdm.model.term.TermTree; |
... | ... | |
252 | 251 |
} |
253 | 252 |
Viewer taxonTreeViewer = getTaxonTreeViewer(); |
254 | 253 |
Object input = taxonTreeViewer.getInput(); |
255 |
Collection<TaxonNode> treeNodes; |
|
254 |
Collection<TaxonNodeDto> treeNodes;
|
|
256 | 255 |
if(input==null){ |
257 | 256 |
treeNodes = new ArrayList<>(); |
258 | 257 |
} |
259 | 258 |
else{ |
260 |
treeNodes = (Collection<TaxonNode>) input; |
|
259 |
treeNodes = (Collection<TaxonNodeDto>) input;
|
|
261 | 260 |
} |
262 |
treeNodes.add(taxonNode); |
|
261 |
treeNodes.add(taxonNodeDto);
|
|
263 | 262 |
taxonTreeViewer.setInput(treeNodes); |
264 | 263 |
dirty.setDirty(true); |
265 | 264 |
} |
266 | 265 |
|
267 | 266 |
public void removeSelectedTaxonNodes(){ |
268 | 267 |
IStructuredSelection selection = (IStructuredSelection) composite.getTaxonNodeTree().getSelection(); |
269 |
if(selection.toList().stream().anyMatch(object->!(object instanceof TaxonNode))){ |
|
268 |
if(selection.toList().stream().anyMatch(object->!(object instanceof TaxonNodeDto))){
|
|
270 | 269 |
MessagingUtils.warningDialog(Messages.DescriptiveDataSetEditor_DELETE_FAIL_TITLE, this.getClass(), Messages.DescriptiveDataSetEditor_DELETE_FAIL_MESSAGE); |
271 | 270 |
return; |
272 | 271 |
} |
273 | 272 |
Iterator<Object> iterator = selection.iterator(); |
274 | 273 |
Viewer taxonTreeViewer = getTaxonTreeViewer(); |
275 |
Collection<TaxonNode> input = (Collection<TaxonNode>) taxonTreeViewer.getInput();
|
|
274 |
Collection<TaxonNodeDto> input = (Collection<TaxonNodeDto>) taxonTreeViewer.getInput();
|
|
276 | 275 |
while(iterator.hasNext()){ |
277 | 276 |
Object next = iterator.next(); |
278 |
TaxonNode taxonNode = (TaxonNode) next;
|
|
277 |
TaxonNodeDto taxonNode = (TaxonNodeDto) next;
|
|
279 | 278 |
input.remove(taxonNode); |
280 |
descriptiveDataSet.removeTaxonSubtree(taxonNode); |
|
279 |
TaxonNode node = CdmStore.getService(ITaxonNodeService.class).load(taxonNode.getUuid()); |
|
280 |
descriptiveDataSet.removeTaxonSubtree(node); |
|
281 | 281 |
} |
282 | 282 |
taxonTreeViewer.setInput(input); |
283 | 283 |
dirty.setDirty(true); |
... | ... | |
286 | 286 |
@Persist |
287 | 287 |
@Override |
288 | 288 |
public void save(IProgressMonitor monitor) { |
289 |
|
|
290 |
if (!conversation.isBound()) { |
|
291 |
conversation.bind(); |
|
292 |
|
|
293 |
} |
|
294 |
conversation.commit(true); |
|
289 | 295 |
Collection<TermDto> areas = composite.getAreas(); |
290 | 296 |
Object input = composite.getTaxonNodeTree().getInput(); |
291 | 297 |
if(input!=null){ |
292 | 298 |
descriptiveDataSet.setTaxonSubtreeFilter(new HashSet<>());//clear existing filter |
293 |
Collection<ITaxonTreeNode> taxonNodes = (Collection<ITaxonTreeNode>) input; |
|
294 |
for (ITaxonTreeNode taxonTreeNode : taxonNodes) { |
|
295 |
if(taxonTreeNode instanceof TaxonNode){ |
|
296 |
TaxonNode taxonNode = (TaxonNode)taxonTreeNode; |
|
297 |
descriptiveDataSet.addTaxonSubtree(taxonNode); |
|
298 |
} |
|
299 |
Collection<TaxonNodeDto> taxonNodes = (Collection<TaxonNodeDto>) input; |
|
300 |
for (TaxonNodeDto taxonTreeNode : taxonNodes) { |
|
301 |
TaxonNode taxonNode = CdmStore.getService(ITaxonNodeService.class).load(taxonTreeNode.getUuid()); |
|
302 |
descriptiveDataSet.addTaxonSubtree(taxonNode); |
|
299 | 303 |
} |
300 | 304 |
} |
301 | 305 |
TermTree<Feature> characters = composite.getCharacters(); |
... | ... | |
325 | 329 |
terms.forEach(term->areaTerms.add((NamedArea) term)); |
326 | 330 |
descriptiveDataSet.setGeoFilter(areaTerms); |
327 | 331 |
|
328 |
conversation.commit(); |
|
332 |
// conversation.commit();
|
|
329 | 333 |
CdmStore.getService(IDescriptiveDataSetService.class).merge(descriptiveDataSet, true); |
330 |
//event for updatin matrix |
|
334 |
//event for updating matrix
|
|
331 | 335 |
EventUtility.postEvent(WorkbenchEventConstants.REFRESH_DESCRIPTIVE_DATASET, descriptiveDataSet.getUuid()); |
332 | 336 |
dirty.setDirty(false); |
333 | 337 |
} |
Also available in: Unified diff
ref #8754: adapt deleteHandling to configuration