diff options
Diffstat (limited to 'plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/ui/dnd/DNDDropAdapter.java')
-rw-r--r-- | plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/ui/dnd/DNDDropAdapter.java | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/ui/dnd/DNDDropAdapter.java b/plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/ui/dnd/DNDDropAdapter.java index 7d79125ef3..5d67bff36f 100644 --- a/plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/ui/dnd/DNDDropAdapter.java +++ b/plugins/org.eclipse.net4j.util.ui/src/org/eclipse/net4j/util/ui/dnd/DNDDropAdapter.java @@ -12,6 +12,7 @@ package org.eclipse.net4j.util.ui.dnd; import org.eclipse.jface.viewers.StructuredViewer; import org.eclipse.jface.viewers.ViewerDropAdapter; +import org.eclipse.swt.dnd.DropTargetEvent; import org.eclipse.swt.dnd.Transfer; import org.eclipse.swt.dnd.TransferData; @@ -22,6 +23,8 @@ public abstract class DNDDropAdapter<TYPE> extends ViewerDropAdapter { private Transfer transfer; + private boolean dropBetweenEnabled; + protected DNDDropAdapter(Transfer transfer, StructuredViewer viewer) { super(viewer); @@ -39,6 +42,31 @@ public abstract class DNDDropAdapter<TYPE> extends ViewerDropAdapter return (StructuredViewer)super.getViewer(); } + public boolean isDropBetweenEnabled() + { + return dropBetweenEnabled; + } + + public void setDropBetweenEnabled(boolean dropBetweenEnabled) + { + this.dropBetweenEnabled = dropBetweenEnabled; + } + + @Override + protected int determineLocation(DropTargetEvent event) + { + int location = super.determineLocation(event); + if (location == LOCATION_BEFORE || location == LOCATION_AFTER) + { + if (!dropBetweenEnabled) + { + location = LOCATION_ON; + } + } + + return location; + } + @Override public boolean performDrop(Object data) { |