Example usage for org.eclipse.swt.widgets Tree getSelection

List of usage examples for org.eclipse.swt.widgets Tree getSelection

Introduction

In this page you can find the example usage for org.eclipse.swt.widgets Tree getSelection.

Prototype

public TreeItem[] getSelection() 

Source Link

Document

Returns an array of TreeItems that are currently selected in the receiver.

Usage

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;
}