Project

General

Profile

« Previous | Next » 

Revision 08a36bdf

Added by Katja Luther almost 4 years ago

ref #8754: adapt deleteHandling to configuration

View differences:

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