fix #7544: do not allow d&d for misapplied names
authorKatja Luther <k.luther@bgbm.org>
Tue, 31 Jul 2018 11:41:20 +0000 (13:41 +0200)
committerKatja Luther <k.luther@bgbm.org>
Tue, 31 Jul 2018 11:42:33 +0000 (13:42 +0200)
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/dnd/NameEditorDragListenerE4.java
eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/name/e4/dnd/NameEditorDropTargetListenerE4.java

index 965ba317bf759d44cef2a83b6c119484583ff34f..913378f743650df9ae48075b47f0d2c246e815df 100644 (file)
@@ -11,6 +11,7 @@ import org.eclipse.ui.forms.ManagedForm;
 import eu.etaxonomy.cdm.model.common.ICdmBase;
 import eu.etaxonomy.taxeditor.editor.CdmDataTransfer;
 import eu.etaxonomy.taxeditor.editor.name.e4.container.AbstractGroupedContainerE4;
+import eu.etaxonomy.taxeditor.editor.name.e4.container.ConceptContainerE4;
 
 /**
  *
@@ -45,13 +46,13 @@ public class NameEditorDragListenerE4 extends DragSourceAdapter {
        public void dragSetData(DragSourceEvent event) {
                ICdmBase[] cdmBaseObjects = new ICdmBase[]{container.getData()};
                if(CdmDataTransfer.getInstance().isSupportedType(event.dataType)){
-                       event.data = cdmBaseObjects;
-               }
+                   event.data = cdmBaseObjects;
+        }
        }
 
        /** {@inheritDoc} */
        @Override
        public void dragStart(DragSourceEvent event) {
-               event.doit = container.getData() != null;
+               event.doit = (container.getData() != null) && !(container instanceof ConceptContainerE4);
        }
 }
index e1e33b72f9137f4ece36c8a7dc06530f3de37603..8a1d58bae664eba94461ffa53bde218eaf848f1c 100644 (file)
@@ -56,6 +56,7 @@ public class NameEditorDropTargetListenerE4 extends DropTargetAdapter {
                target.dragLeft();
        }
 
+
        /** {@inheritDoc} */
        @Override
     public void drop(DropTargetEvent dropTargetEvent) {
@@ -70,6 +71,11 @@ public class NameEditorDropTargetListenerE4 extends DropTargetAdapter {
                        return;
                }
 
+               if (target instanceof MisappliedGroupE4){
+                  dropTargetEvent.detail = DND.DROP_NONE;
+              return;
+               }
+
                // Execute operations at end of drag event
                AbstractPostOperation operation = createOperation(taxonBase);