*/
package eu.etaxonomy.taxeditor.editor.view.derivate.operation;
+import java.util.UUID;
+
import org.eclipse.core.commands.ExecutionException;
import org.eclipse.core.commands.operations.IUndoContext;
import org.eclipse.core.runtime.IAdaptable;
fromNode = draggedNode.getParent();
if(moveTreeNode(draggedNode, fromNode, targetNode)){
+ //special case if derivative with no parent was moved
+ if(fromNode==null && draggedNode!=null && draggedNode.getValue()!=null){
+ derivateView.remove(draggedNode.getValue());
+ }
//update DerivateView
derivateView.getConversationHolder().commit();
LocalSelectionTransfer.getTransfer().setSelection(null);
DerivedUnit draggedSpecimen = (DerivedUnit) draggedNodeValue;
SpecimenOrObservationBase<?> targetSpecimen = (SpecimenOrObservationBase<?>) targetNodeValue;
//check if type is a sub derivate type
- if(fromParentSpecimen instanceof SpecimenOrObservationBase<?>
- && fromNode!=null
- && !fromNode.equals(targetNode)){//don't drag on direct parent node)
- return occurrenceService.moveDerivate(((SpecimenOrObservationBase<?>)fromParentSpecimen).getUuid(),
+ if(fromNode==null || !fromNode.equals(targetNode)){//don't drag on direct parent node)
+ UUID fromUuid = null;
+ if(fromParentSpecimen!=null){
+ fromUuid = ((SpecimenOrObservationBase<?>)fromParentSpecimen).getUuid();
+ }
+ return occurrenceService.moveDerivate(fromUuid,
targetSpecimen.getUuid(),
draggedSpecimen.getUuid()).isOk();
}