package org.bundlemaker.core.ui.artifact.tree; import org.eclipse.core.runtime.Assert; import org.eclipse.jface.util.LocalSelectionTransfer; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.swt.dnd.DragSourceEvent; import org.eclipse.swt.dnd.DragSourceListener; /** * <p> * </p> * * @author Gerd Wütherich (gerd@gerd-wuetherich.de) * @see org.eclipse.debug.internal.ui.views.variables.SelectionDragAdapter */ public class ArtifactTreeDragAdapter implements DragSourceListener { /** - */ private TreeViewer _treeViewer; /** * <p> * Creates a new instance of type {@link ArtifactTreeDragAdapter}. * </p> * * @param treeViewer */ public ArtifactTreeDragAdapter(TreeViewer treeViewer) { Assert.isNotNull(treeViewer); // _treeViewer = treeViewer; } @Override public void dragStart(DragSourceEvent event) { ISelection selection = _treeViewer.getSelection(); LocalSelectionTransfer.getTransfer().setSelection(selection); LocalSelectionTransfer.getTransfer().setSelectionSetTime(event.time & 0xFFFFFFFFL); event.doit = !selection.isEmpty(); } @Override public void dragSetData(DragSourceEvent event) { // For consistency set the data to the selection even though // the selection is provided by the LocalSelectionTransfer // to the drop target adapter. event.data = LocalSelectionTransfer.getTransfer().getSelection(); } @Override public void dragFinished(DragSourceEvent event) { LocalSelectionTransfer.getTransfer().setSelection(null); LocalSelectionTransfer.getTransfer().setSelectionSetTime(0); } }