public class TextTransferDragDrop {
private static Image image = null;
private Tree tree;
private Table table;
public static void main(String[] args){
new TextTransferDragDrop().showMainPane();
}
private void showMainPane(){
Display display = new Display();
image = new Image(display,"icons/browser.gif");
Shell shell = new Shell(display,SWT.SHELL_TRIM);
shell.setText("Test DND");
shell.setSize(400,300);
shell.setImage(image);
/*
* when drag finished
* this used to do something,such as delete the select item
* dispose some system resource
* (non-Javadoc)
* @see org.eclipse.swt.dnd.DragSourceListener#dragFinished(org.eclipse.swt.dnd.DragSourceEvent)
*/
public void dragFinished(DragSourceEvent arg0) {
System.out.println("drag finished");
}
/*
* this used to set drag data
* (non-Javadoc)
* @see org.eclipse.swt.dnd.DragSourceListener#dragSetData(org.eclipse.swt.dnd.DragSourceEvent)
*/
public void dragSetData(DragSourceEvent arg0) {
arg0.data = tree.getSelection()[0].getText();
}
/*
* this used to execute before drag
* such as make the drag no effect
* (non-Javadoc)
* @see org.eclipse.swt.dnd.DragSourceListener#dragStart(org.eclipse.swt.dnd.DragSourceEvent)
*/
public void dragStart(DragSourceEvent arg0) {
System.out.println("start drag");
}
/*
* when drag enter,execute this method
* this method can be used to set event type use event.detail
* the type used to set the target's receive type
* (non-Javadoc)
* @see org.eclipse.swt.dnd.DropTargetListener#dragEnter(org.eclipse.swt.dnd.DropTargetEvent)
*/
public void dragEnter(DropTargetEvent event) {
event.detail = DND.DROP_COPY;
}
/*
* when drag leave ,execute this method
* (non-Javadoc)
* @see org.eclipse.swt.dnd.DropTargetListener#dragLeave(org.eclipse.swt.dnd.DropTargetEvent)
*/
public void dragLeave(DropTargetEvent arg0) {
System.out.println("leave");
}
public void dragOperationChanged(DropTargetEvent arg0) {
}
public void dragOver(DropTargetEvent arg0) {
}
public void drop(DropTargetEvent arg0) {
TableItem item2 = new TableItem(table,SWT.NONE);
item2.setText(arg0.data.toString());
table.layout();
}