ref #6694 Fix session handling when moving feature nodes
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / featuretree / e4 / FeatureNodeDropAdapter.java
index 1c6e8da4e98b9855bf228a2b2cff68ae643df296..7d8607040faf21119dcf19fd3f38d42ebc59c16f 100644 (file)
@@ -13,16 +13,14 @@ import org.eclipse.jface.viewers.Viewer;
 import org.eclipse.jface.viewers.ViewerDropAdapter;
 import org.eclipse.swt.dnd.TransferData;
 
+import eu.etaxonomy.cdm.api.service.IFeatureNodeService;
 import eu.etaxonomy.cdm.model.description.FeatureNode;
 import eu.etaxonomy.cdm.model.description.FeatureTree;
 import eu.etaxonomy.taxeditor.featuretree.FeatureNodeTransfer;
-import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.store.CdmStore;
 
 class FeatureNodeDropAdapter extends ViewerDropAdapter {
 
-       /**
-     *
-     */
     private final FeatureTreeEditor featureTreeEditor;
 
     protected FeatureNodeDropAdapter(FeatureTreeEditor featureTreeEditor, Viewer viewer) {
@@ -60,33 +58,23 @@ class FeatureNodeDropAdapter extends ViewerDropAdapter {
 
                // cannot drop a feature node onto itself
                for (Object droppedObject : droppedObjects) {
-                       if (droppedObject == null) {
-                               MessagingUtils.warningDialog(
-                                                               "Operation not supported yet",
-                                                               this,
-                                                               "We are currently unable to change the order of freshly created "
-                                                                               + "feature trees nodes. Please close and reopen the dialog to change the order of features.");
-                               return false;
-                       }
                        if (droppedObject.equals(target)) {
                                return false;
                        }
                }
                for (Object droppedObject : droppedObjects) {
                        FeatureNode droppedNode = (FeatureNode) droppedObject;
-                       target.addChild(droppedNode, position);
-                       viewer.add(target, droppedNode);
-                       viewer.reveal(droppedNode);
+                       CdmStore.getService(IFeatureNodeService.class).moveFeatureNode(droppedNode.getUuid(), target.getUuid(), position);
+                       viewer.refresh();
+//                     viewer.reveal(droppedNode);
                }
         this.featureTreeEditor.setDirty(true);
                return true;
        }
 
-       @Override
-       public boolean validateDrop(Object target, int operation,
-                       TransferData transferData) {
-               return FeatureNodeTransfer.getInstance().isSupportedType(
-                               transferData);
-       }
+    @Override
+    public boolean validateDrop(Object target, int operation, TransferData transferData) {
+        return FeatureNodeTransfer.getInstance().isSupportedType(transferData);
+    }
 
 }
\ No newline at end of file