Project

General

Profile

« Previous | Next » 

Revision b43b1993

Added by Patrick Plitzner about 8 years ago

Allow null as parent when moving derivatives

View differences:

eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/derivate/operation/MoveDerivateOperation.java
9 9
*/
10 10
package eu.etaxonomy.taxeditor.editor.view.derivate.operation;
11 11

  
12
import java.util.UUID;
13

  
12 14
import org.eclipse.core.commands.ExecutionException;
13 15
import org.eclipse.core.commands.operations.IUndoContext;
14 16
import org.eclipse.core.runtime.IAdaptable;
......
71 73

  
72 74
        fromNode = draggedNode.getParent();
73 75
        if(moveTreeNode(draggedNode, fromNode, targetNode)){
76
            //special case if derivative with no parent was moved
77
            if(fromNode==null && draggedNode!=null && draggedNode.getValue()!=null){
78
                derivateView.remove(draggedNode.getValue());
79
            }
74 80
            //update DerivateView
75 81
            derivateView.getConversationHolder().commit();
76 82
            LocalSelectionTransfer.getTransfer().setSelection(null);
......
96 102
            DerivedUnit draggedSpecimen = (DerivedUnit) draggedNodeValue;
97 103
            SpecimenOrObservationBase<?> targetSpecimen = (SpecimenOrObservationBase<?>) targetNodeValue;
98 104
            //check if type is a sub derivate type
99
            if(fromParentSpecimen instanceof SpecimenOrObservationBase<?>
100
            && fromNode!=null
101
            && !fromNode.equals(targetNode)){//don't drag on direct parent node)
102
                return occurrenceService.moveDerivate(((SpecimenOrObservationBase<?>)fromParentSpecimen).getUuid(),
105
            if(fromNode==null || !fromNode.equals(targetNode)){//don't drag on direct parent node)
106
                UUID fromUuid = null;
107
                if(fromParentSpecimen!=null){
108
                    fromUuid = ((SpecimenOrObservationBase<?>)fromParentSpecimen).getUuid();
109
                }
110
                return occurrenceService.moveDerivate(fromUuid,
103 111
                        targetSpecimen.getUuid(),
104 112
                        draggedSpecimen.getUuid()).isOk();
105 113
            }

Also available in: Unified diff