List of usage examples for org.eclipse.swt.widgets Tree getSelection
public TreeItem[] getSelection()
TreeItem
s that are currently selected in the receiver. From source file:DNDExample.java
private void createDragSource() { if (dragSource != null) dragSource.dispose();/*from w ww . ja va 2 s .c om*/ dragSource = new DragSource(dragControl, dragOperation); dragSource.setTransfer(dragTypes); dragSource.addDragListener(new DragSourceListener() { public void dragFinished(org.eclipse.swt.dnd.DragSourceEvent event) { dragConsole.append(">>dragFinished\n"); printEvent(event); dragDataText = dragDataRTF = dragDataHTML = null; dragDataFiles = null; if (event.detail == DND.DROP_MOVE) { switch (dragControlType) { case BUTTON_CHECK: case BUTTON_TOGGLE: case BUTTON_RADIO: { Button b = (Button) dragControl; b.setText(""); break; } case TABLE: { Table table = (Table) dragControl; TableItem[] items = table.getSelection(); for (int i = 0; i < items.length; i++) { items[i].dispose(); } break; } case TEXT: { Text text = (Text) dragControl; text.clearSelection(); break; } case TREE: { Tree tree = (Tree) dragControl; TreeItem[] items = tree.getSelection(); for (int i = 0; i < items.length; i++) { items[i].dispose(); } break; } case CANVAS: { dragControl.setData("STRINGS", null); dragControl.redraw(); break; } case LABEL: { Label label = (Label) dragControl; label.setText(""); break; } case LIST: { List list = (List) dragControl; int[] indices = list.getSelectionIndices(); list.remove(indices); break; } } } } public void dragSetData(org.eclipse.swt.dnd.DragSourceEvent event) { dragConsole.append(">>dragSetData\n"); printEvent(event); if (TextTransfer.getInstance().isSupportedType(event.dataType)) { event.data = dragDataText; } if (RTFTransfer.getInstance().isSupportedType(event.dataType)) { event.data = dragDataRTF; } if (HTMLTransfer.getInstance().isSupportedType(event.dataType)) { event.data = dragDataHTML; } if (FileTransfer.getInstance().isSupportedType(event.dataType)) { event.data = dragDataFiles; } } public void dragStart(org.eclipse.swt.dnd.DragSourceEvent event) { dragConsole.append(">>dragStart\n"); printEvent(event); dragDataFiles = fileList.getItems(); switch (dragControlType) { case BUTTON_CHECK: case BUTTON_TOGGLE: case BUTTON_RADIO: { Button b = (Button) dragControl; dragDataText = b.getSelection() ? "true" : "false"; break; } case TABLE: { Table table = (Table) dragControl; TableItem[] items = table.getSelection(); if (items.length == 0) { event.doit = false; } else { StringBuffer buffer = new StringBuffer(); for (int i = 0; i < items.length; i++) { buffer.append(items[i].getText()); if (items.length > 1 && i < items.length - 1) { buffer.append("\n"); } } dragDataText = buffer.toString(); } break; } case TEXT: { Text text = (Text) dragControl; String s = text.getSelectionText(); if (s.length() == 0) { event.doit = false; } else { dragDataText = s; } break; } case TREE: { Tree tree = (Tree) dragControl; TreeItem[] items = tree.getSelection(); if (items.length == 0) { event.doit = false; } else { StringBuffer buffer = new StringBuffer(); for (int i = 0; i < items.length; i++) { buffer.append(items[i].getText()); if (items.length > 1 && i < items.length - 1) { buffer.append("\n"); } } dragDataText = buffer.toString(); } break; } case CANVAS: { String[] strings = (String[]) dragControl.getData("STRINGS"); if (strings == null || strings.length == 0) { event.doit = false; } else { StringBuffer buffer = new StringBuffer(); for (int i = 0; i < strings.length; i++) { buffer.append(strings[i]); if (strings.length > 1 && i < strings.length - 1) { buffer.append("\n"); } } dragDataText = buffer.toString(); } break; } case LABEL: { Label label = (Label) dragControl; String string = label.getText(); if (string.length() == 0) { event.doit = false; } else { dragDataText = string; } break; } case LIST: { List list = (List) dragControl; String[] selection = list.getSelection(); if (selection.length == 0) { event.doit = false; } else { StringBuffer buffer = new StringBuffer(); for (int i = 0; i < selection.length; i++) { buffer.append(selection[i]); if (selection.length > 1 && i < selection.length - 1) { buffer.append("\n"); } } dragDataText = buffer.toString(); } break; } default: throw new SWTError(SWT.ERROR_NOT_IMPLEMENTED); } if (dragDataText != null) { dragDataRTF = "{\\rtf1{\\colortbl;\\red255\\green0\\blue0;}\\cf1\\b " + dragDataText + "}"; dragDataHTML = "<b>" + dragDataText + "</b>"; } for (int i = 0; i < dragTypes.length; i++) { if (dragTypes[i] instanceof TextTransfer && dragDataText == null) { event.doit = false; } if (dragTypes[i] instanceof RTFTransfer && dragDataRTF == null) { event.doit = false; } if (dragTypes[i] instanceof HTMLTransfer && dragDataHTML == null) { event.doit = false; } if (dragTypes[i] instanceof FileTransfer && (dragDataFiles == null || dragDataFiles.length == 0)) { event.doit = false; } } } }); }
From source file:org.eclipse.swt.examples.dnd.DNDExample.java
private void createDragSource() { if (dragSource != null) dragSource.dispose();//from w ww. ja v a2s .com dragSource = new DragSource(dragControl, dragOperation); dragSource.setTransfer(dragTypes); dragSource.addDragListener(new DragSourceListener() { @Override public void dragFinished(org.eclipse.swt.dnd.DragSourceEvent event) { dragConsole.append(">>dragFinished\n"); printEvent(event); dragDataText = dragDataRTF = dragDataHTML = dragDataURL = null; dragDataFiles = null; if (event.detail == DND.DROP_MOVE) { switch (dragControlType) { case BUTTON_CHECK: case BUTTON_TOGGLE: case BUTTON_RADIO: { Button b = (Button) dragControl; b.setText(""); break; } case STYLED_TEXT: { StyledText text = (StyledText) dragControl; text.insert(""); break; } case TABLE: { Table table = (Table) dragControl; TableItem[] items = table.getSelection(); for (TableItem item : items) { item.dispose(); } break; } case TEXT: { Text text = (Text) dragControl; text.insert(""); break; } case TREE: { Tree tree = (Tree) dragControl; TreeItem[] items = tree.getSelection(); for (TreeItem item : items) { item.dispose(); } break; } case CANVAS: { dragControl.setData("STRINGS", null); dragControl.redraw(); break; } case LABEL: { Label label = (Label) dragControl; label.setText(""); break; } case LIST: { List list = (List) dragControl; int[] indices = list.getSelectionIndices(); list.remove(indices); break; } case COMBO: { Combo combo = (Combo) dragControl; combo.setText(""); break; } } } } @Override public void dragSetData(org.eclipse.swt.dnd.DragSourceEvent event) { dragConsole.append(">>dragSetData\n"); printEvent(event); if (TextTransfer.getInstance().isSupportedType(event.dataType)) { event.data = dragDataText; } if (RTFTransfer.getInstance().isSupportedType(event.dataType)) { event.data = dragDataRTF; } if (HTMLTransfer.getInstance().isSupportedType(event.dataType)) { event.data = dragDataHTML; } if (URLTransfer.getInstance().isSupportedType(event.dataType)) { event.data = dragDataURL; } if (FileTransfer.getInstance().isSupportedType(event.dataType)) { event.data = dragDataFiles; } } @Override public void dragStart(org.eclipse.swt.dnd.DragSourceEvent event) { dragConsole.append(">>dragStart\n"); printEvent(event); dragDataFiles = fileList.getItems(); switch (dragControlType) { case BUTTON_CHECK: case BUTTON_TOGGLE: case BUTTON_RADIO: { Button b = (Button) dragControl; dragDataText = b.getSelection() ? "true" : "false"; break; } case STYLED_TEXT: { StyledText text = (StyledText) dragControl; String s = text.getSelectionText(); if (s.length() == 0) { event.doit = false; } else { dragDataText = s; } break; } case TABLE: { Table table = (Table) dragControl; TableItem[] items = table.getSelection(); if (items.length == 0) { event.doit = false; } else { StringBuilder buffer = new StringBuilder(); for (int i = 0; i < items.length; i++) { buffer.append(items[i].getText()); if (items.length > 1 && i < items.length - 1) { buffer.append("\n"); } } dragDataText = buffer.toString(); } break; } case TEXT: { Text text = (Text) dragControl; String s = text.getSelectionText(); if (s.length() == 0) { event.doit = false; } else { dragDataText = s; } break; } case TREE: { Tree tree = (Tree) dragControl; TreeItem[] items = tree.getSelection(); if (items.length == 0) { event.doit = false; } else { StringBuilder buffer = new StringBuilder(); for (int i = 0; i < items.length; i++) { buffer.append(items[i].getText()); if (items.length > 1 && i < items.length - 1) { buffer.append("\n"); } } dragDataText = buffer.toString(); } break; } case CANVAS: { String[] strings = (String[]) dragControl.getData("STRINGS"); if (strings == null || strings.length == 0) { event.doit = false; } else { StringBuilder buffer = new StringBuilder(); for (int i = 0; i < strings.length; i++) { buffer.append(strings[i]); if (strings.length > 1 && i < strings.length - 1) { buffer.append("\n"); } } dragDataText = buffer.toString(); } break; } case LABEL: { Label label = (Label) dragControl; String string = label.getText(); if (string.length() == 0) { event.doit = false; } else { dragDataText = string; } break; } case LIST: { List list = (List) dragControl; String[] selection = list.getSelection(); if (selection.length == 0) { event.doit = false; } else { StringBuilder buffer = new StringBuilder(); for (int i = 0; i < selection.length; i++) { buffer.append(selection[i]); if (selection.length > 1 && i < selection.length - 1) { buffer.append("\n"); } } dragDataText = buffer.toString(); } break; } case COMBO: { Combo combo = (Combo) dragControl; String string = combo.getText(); Point selection = combo.getSelection(); if (selection.x == selection.y) { event.doit = false; } else { dragDataText = string.substring(selection.x, selection.y); } break; } default: throw new SWTError(SWT.ERROR_NOT_IMPLEMENTED); } if (dragDataText != null) { dragDataRTF = "{\\rtf1{\\colortbl;\\red255\\green0\\blue0;}\\cf1\\b " + dragDataText + "}"; dragDataHTML = "<b>" + dragDataText + "</b>"; dragDataURL = "http://" + dragDataText.replace(' ', '.'); try { new URL(dragDataURL); } catch (MalformedURLException e) { dragDataURL = null; } } for (Transfer dragType : dragTypes) { if (dragType instanceof TextTransfer && dragDataText == null) { event.doit = false; } if (dragType instanceof RTFTransfer && dragDataRTF == null) { event.doit = false; } if (dragType instanceof HTMLTransfer && dragDataHTML == null) { event.doit = false; } if (dragType instanceof URLTransfer && dragDataURL == null) { event.doit = false; } if (dragType instanceof FileTransfer && (dragDataFiles == null || dragDataFiles.length == 0)) { event.doit = false; } } } }); }
From source file:org.eclipse.swt.examples.fileviewer.FileViewer.java
/** * Creates the Drag & Drop DragSource for items being dragged from the tree. * * @return the DragSource for the tree//w w w .j ava 2 s . c o m */ private DragSource createTreeDragSource(final Tree tree) { DragSource dragSource = new DragSource(tree, DND.DROP_MOVE | DND.DROP_COPY); dragSource.setTransfer(FileTransfer.getInstance()); dragSource.addDragListener(new DragSourceListener() { TreeItem[] dndSelection = null; String[] sourceNames = null; @Override public void dragStart(DragSourceEvent event) { dndSelection = tree.getSelection(); sourceNames = null; event.doit = dndSelection.length > 0; isDragging = true; processedDropFiles = null; } @Override public void dragFinished(DragSourceEvent event) { dragSourceHandleDragFinished(event, sourceNames); dndSelection = null; sourceNames = null; isDragging = false; processedDropFiles = null; handleDeferredRefresh(); } @Override public void dragSetData(DragSourceEvent event) { if (dndSelection == null || dndSelection.length == 0) return; if (!FileTransfer.getInstance().isSupportedType(event.dataType)) return; sourceNames = new String[dndSelection.length]; for (int i = 0; i < dndSelection.length; i++) { File file = (File) dndSelection[i].getData(TREEITEMDATA_FILE); sourceNames[i] = file.getAbsolutePath(); } event.data = sourceNames; } }); return dragSource; }
From source file:SWTFileViewerDemo.java
/** * Creates the Drag & Drop DragSource for items being dragged from the tree. * //ww w . java 2 s .com * @return the DragSource for the tree */ private DragSource createTreeDragSource(final Tree tree) { DragSource dragSource = new DragSource(tree, DND.DROP_MOVE | DND.DROP_COPY); dragSource.setTransfer(new Transfer[] { FileTransfer.getInstance() }); dragSource.addDragListener(new DragSourceListener() { TreeItem[] dndSelection = null; String[] sourceNames = null; public void dragStart(DragSourceEvent event) { dndSelection = tree.getSelection(); sourceNames = null; event.doit = dndSelection.length > 0; isDragging = true; processedDropFiles = null; } public void dragFinished(DragSourceEvent event) { dragSourceHandleDragFinished(event, sourceNames); dndSelection = null; sourceNames = null; isDragging = false; processedDropFiles = null; handleDeferredRefresh(); } public void dragSetData(DragSourceEvent event) { if (dndSelection == null || dndSelection.length == 0) return; if (!FileTransfer.getInstance().isSupportedType(event.dataType)) return; sourceNames = new String[dndSelection.length]; for (int i = 0; i < dndSelection.length; i++) { File file = (File) dndSelection[i].getData(TREEITEMDATA_FILE); sourceNames[i] = file.getAbsolutePath(); } event.data = sourceNames; } }); return dragSource; }