Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
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.java28
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)
{

Back to the top