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

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

Introduction

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

Prototype

public TreeItem getItem(Point point) 

Source Link

Document

Returns the item at the given point in the receiver or null if no such item exists.

Usage

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