List of usage examples for org.eclipse.swt.widgets Tree getItem
public TreeItem getItem(Point point)
From source file:DNDExample.java
private void createDropTarget() { if (dropTarget != null) dropTarget.dispose();// ww w . j a v a2 s .c om dropTarget = new DropTarget(dropControl, dropOperation); dropTarget.setTransfer(dropTypes); dropTarget.addDropListener(new DropTargetListener() { public void dragEnter(DropTargetEvent event) { dropConsole.append(">>dragEnter\n"); printEvent(event); if (event.detail == DND.DROP_DEFAULT) { event.detail = dropDefaultOperation; } event.feedback = dropFeedback; } public void dragLeave(DropTargetEvent event) { dropConsole.append(">>dragLeave\n"); printEvent(event); } public void dragOperationChanged(DropTargetEvent event) { dropConsole.append(">>dragOperationChanged\n"); printEvent(event); if (event.detail == DND.DROP_DEFAULT) { event.detail = dropDefaultOperation; } event.feedback = dropFeedback; } public void dragOver(DropTargetEvent event) { dropConsole.append(">>dragOver\n"); printEvent(event); event.feedback = dropFeedback; } public void drop(DropTargetEvent event) { dropConsole.append(">>drop\n"); printEvent(event); String[] strings = null; if (TextTransfer.getInstance().isSupportedType(event.currentDataType) || RTFTransfer.getInstance().isSupportedType(event.currentDataType) || HTMLTransfer.getInstance().isSupportedType(event.currentDataType)) { strings = new String[] { (String) event.data }; } if (FileTransfer.getInstance().isSupportedType(event.currentDataType)) { strings = (String[]) event.data; } if (strings == null || strings.length == 0) { dropConsole.append("!!Invalid data dropped"); return; } if (strings.length == 1 && (dropControlType == TABLE || dropControlType == TREE || dropControlType == LIST)) { // convert string separated by "\n" into an array of strings String string = strings[0]; int count = 0; int offset = string.indexOf("\n", 0); while (offset > 0) { count++; offset = string.indexOf("\n", offset + 1); } if (count > 0) { strings = new String[count + 1]; int start = 0; int end = string.indexOf("\n"); int index = 0; while (start < end) { strings[index++] = string.substring(start, end); start = end + 1; end = string.indexOf("\n", start); if (end == -1) end = string.length(); } } } switch (dropControlType) { case BUTTON_CHECK: case BUTTON_TOGGLE: case BUTTON_RADIO: { Button b = (Button) dropControl; b.setText(strings[0]); break; } case TABLE: { Table table = (Table) dropControl; Point p = event.display.map(null, table, event.x, event.y); TableItem dropItem = table.getItem(p); int index = dropItem == null ? table.getItemCount() : table.indexOf(dropItem); for (int i = 0; i < strings.length; i++) { TableItem item = new TableItem(table, SWT.NONE, index); item.setText(0, strings[i]); item.setText(1, "dropped item"); } TableColumn[] columns = table.getColumns(); for (int i = 0; i < columns.length; i++) { columns[i].pack(); } break; } case TEXT: { Text text = (Text) dropControl; for (int i = 0; i < strings.length; i++) { text.append(strings[i] + "\n"); } break; } case TREE: { Tree tree = (Tree) dropControl; Point p = event.display.map(null, tree, event.x, event.y); TreeItem parentItem = tree.getItem(p); for (int i = 0; i < strings.length; i++) { TreeItem item = parentItem != null ? new TreeItem(parentItem, SWT.NONE) : new TreeItem(tree, SWT.NONE); item.setText(strings[i]); } break; } case CANVAS: { dropControl.setData("STRINGS", strings); dropControl.redraw(); break; } case LABEL: { Label label = (Label) dropControl; label.setText(strings[0]); break; } case LIST: { List list = (List) dropControl; for (int i = 0; i < strings.length; i++) { list.add(strings[i]); } break; } default: throw new SWTError(SWT.ERROR_NOT_IMPLEMENTED); } } public void dropAccept(DropTargetEvent event) { dropConsole.append(">>dropAccept\n"); printEvent(event); } }); }
From source file:org.eclipse.swt.examples.dnd.DNDExample.java
private void createDropTarget() { if (dropTarget != null) dropTarget.dispose();/*from w w w. j a v a2 s .c o m*/ dropTarget = new DropTarget(dropControl, dropOperation); dropTarget.setTransfer(dropTypes); dropTarget.addDropListener(new DropTargetListener() { @Override public void dragEnter(DropTargetEvent event) { dropConsole.append(">>dragEnter\n"); printEvent(event); if (event.detail == DND.DROP_DEFAULT) { event.detail = dropDefaultOperation; } event.feedback = dropFeedback; } @Override public void dragLeave(DropTargetEvent event) { dropConsole.append(">>dragLeave\n"); printEvent(event); } @Override public void dragOperationChanged(DropTargetEvent event) { dropConsole.append(">>dragOperationChanged\n"); printEvent(event); if (event.detail == DND.DROP_DEFAULT) { event.detail = dropDefaultOperation; } event.feedback = dropFeedback; } @Override public void dragOver(DropTargetEvent event) { dropConsole.append(">>dragOver\n"); printEvent(event); event.feedback = dropFeedback; } @Override public void drop(DropTargetEvent event) { dropConsole.append(">>drop\n"); printEvent(event); String[] strings = null; if (TextTransfer.getInstance().isSupportedType(event.currentDataType) || RTFTransfer.getInstance().isSupportedType(event.currentDataType) || HTMLTransfer.getInstance().isSupportedType(event.currentDataType) || URLTransfer.getInstance().isSupportedType(event.currentDataType)) { strings = new String[] { (String) event.data }; } if (FileTransfer.getInstance().isSupportedType(event.currentDataType)) { strings = (String[]) event.data; } if (strings == null || strings.length == 0) { dropConsole.append("!!Invalid data dropped"); return; } if (strings.length == 1 && (dropControlType == TABLE || dropControlType == TREE || dropControlType == LIST)) { // convert string separated by "\n" into an array of strings String string = strings[0]; int count = 0; int offset = string.indexOf("\n", 0); while (offset > 0) { count++; offset = string.indexOf("\n", offset + 1); } if (count > 0) { strings = new String[count + 1]; int start = 0; int end = string.indexOf("\n"); int index = 0; while (start < end) { strings[index++] = string.substring(start, end); start = end + 1; end = string.indexOf("\n", start); if (end == -1) end = string.length(); } } } switch (dropControlType) { case BUTTON_CHECK: case BUTTON_TOGGLE: case BUTTON_RADIO: { Button b = (Button) dropControl; b.setText(strings[0]); break; } case STYLED_TEXT: { StyledText text = (StyledText) dropControl; for (String string : strings) { text.insert(string); } break; } case TABLE: { Table table = (Table) dropControl; Point p = event.display.map(null, table, event.x, event.y); TableItem dropItem = table.getItem(p); int index = dropItem == null ? table.getItemCount() : table.indexOf(dropItem); for (String string : strings) { TableItem item = new TableItem(table, SWT.NONE, index); item.setText(0, string); item.setText(1, "dropped item"); } TableColumn[] columns = table.getColumns(); for (TableColumn column : columns) { column.pack(); } break; } case TEXT: { Text text = (Text) dropControl; for (String string : strings) { text.append(string + "\n"); } break; } case TREE: { Tree tree = (Tree) dropControl; Point p = event.display.map(null, tree, event.x, event.y); TreeItem parentItem = tree.getItem(p); for (String string : strings) { TreeItem item = parentItem != null ? new TreeItem(parentItem, SWT.NONE) : new TreeItem(tree, SWT.NONE); item.setText(string); } break; } case CANVAS: { dropControl.setData("STRINGS", strings); dropControl.redraw(); break; } case LABEL: { Label label = (Label) dropControl; label.setText(strings[0]); break; } case LIST: { List list = (List) dropControl; for (String string : strings) { list.add(string); } break; } case COMBO: { Combo combo = (Combo) dropControl; combo.setText(strings[0]); break; } default: throw new SWTError(SWT.ERROR_NOT_IMPLEMENTED); } } @Override public void dropAccept(DropTargetEvent event) { dropConsole.append(">>dropAccept\n"); printEvent(event); } }); }
From source file:org.eclipse.swt.examples.fileviewer.FileViewer.java
/** * Creates the Drag & Drop DropTarget for items being dropped onto the tree. * * @return the DropTarget for the tree//from ww w . j a v a2 s . com */ private DropTarget createTreeDropTarget(final Tree tree) { DropTarget dropTarget = new DropTarget(tree, DND.DROP_MOVE | DND.DROP_COPY); dropTarget.setTransfer(FileTransfer.getInstance()); dropTarget.addDropListener(new DropTargetAdapter() { @Override public void dragEnter(DropTargetEvent event) { isDropping = true; } @Override public void dragLeave(DropTargetEvent event) { isDropping = false; handleDeferredRefresh(); } @Override public void dragOver(DropTargetEvent event) { dropTargetValidate(event, getTargetFile(event)); event.feedback |= DND.FEEDBACK_EXPAND | DND.FEEDBACK_SCROLL; } @Override public void drop(DropTargetEvent event) { File targetFile = getTargetFile(event); if (dropTargetValidate(event, targetFile)) dropTargetHandleDrop(event, targetFile); } private File getTargetFile(DropTargetEvent event) { // Determine the target File for the drop TreeItem item = tree.getItem(tree.toControl(new Point(event.x, event.y))); File targetFile = null; if (item != null) { // We are over a particular item in the tree, use the item's file targetFile = (File) item.getData(TREEITEMDATA_FILE); } return targetFile; } }); return dropTarget; }
From source file:SWTFileViewerDemo.java
/** * Creates the Drag & Drop DropTarget for items being dropped onto the tree. * /* ww w. j av a2s.co m*/ * @return the DropTarget for the tree */ private DropTarget createTreeDropTarget(final Tree tree) { DropTarget dropTarget = new DropTarget(tree, DND.DROP_MOVE | DND.DROP_COPY); dropTarget.setTransfer(new Transfer[] { FileTransfer.getInstance() }); dropTarget.addDropListener(new DropTargetAdapter() { public void dragEnter(DropTargetEvent event) { isDropping = true; } public void dragLeave(DropTargetEvent event) { isDropping = false; handleDeferredRefresh(); } public void dragOver(DropTargetEvent event) { dropTargetValidate(event, getTargetFile(event)); event.feedback |= DND.FEEDBACK_EXPAND | DND.FEEDBACK_SCROLL; } public void drop(DropTargetEvent event) { File targetFile = getTargetFile(event); if (dropTargetValidate(event, targetFile)) dropTargetHandleDrop(event, targetFile); } private File getTargetFile(DropTargetEvent event) { // Determine the target File for the drop TreeItem item = tree.getItem(tree.toControl(new Point(event.x, event.y))); File targetFile = null; if (item != null) { // We are over a particular item in the tree, use the item's // file targetFile = (File) item.getData(TREEITEMDATA_FILE); } return targetFile; } }); return dropTarget; }