| import org.eclipse.swt.SWT; |
| import org.eclipse.swt.dnd.*; |
| import org.eclipse.swt.layout.FillLayout; |
| import org.eclipse.swt.widgets.*; |
| |
| public class DNDExample { |
| |
| public static void main(String[] args) { |
| Shell shell = new Shell(); |
| shell.setLayout(new FillLayout()); |
| |
| // Create the tree and some tree items |
| final Tree tree = new Tree(shell, SWT.NONE); |
| TreeItem item1 = new TreeItem(tree, SWT.NONE); |
| item1.setText("Item 1"); |
| TreeItem item2 = new TreeItem(tree, SWT.NONE); |
| item2.setText("Item 2"); |
| TreeItem item3 = new TreeItem(tree, SWT.NONE); |
| item3.setText("Item 3"); |
| TreeItem item4 = new TreeItem(tree, SWT.NONE); |
| item4.setText("Item 4"); |
| |
| // Create the drag source on the tree |
| DragSource ds = new DragSource(tree, DND.DROP_MOVE); |
| ds.setTransfer(new Transfer[] {TextTransfer.getInstance()}); |
| ds.addDragListener(new DragSourceAdapter() { |
| public void dragSetData(DragSourceEvent event) { |
| // Set the data to be the first selected item's text |
| event.data = tree.getSelection()[0].getText(); |
| } |
| }); |
| |
| // Create the button |
| final Button button = new Button(shell, SWT.FLAT); |
| button.setText("Button"); |
| button.setAlignment(SWT.CENTER); |
| |
| // Create the drop target on the button |
| DropTarget dt = new DropTarget(button, DND.DROP_MOVE); |
| dt.setTransfer(new Transfer[] {TextTransfer.getInstance()}); |
| dt.addDropListener(new DropTargetAdapter() { |
| public void drop(DropTargetEvent event) { |
| // Set the buttons text to be the text being dropped |
| button.setText((String)event.data); |
| } |
| }); |
| |
| shell.pack(); |
| shell.open(); |
| Display display = Display.getDefault(); |
| while (!shell.isDisposed()) |
| if (!display.readAndDispatch()) |
| display.sleep(); |
| display.dispose(); |
| } |
| |
| } |