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

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

Introduction

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

Prototype

public Point toControl(Point point) 

Source Link

Document

Returns a point which is the result of converting the argument, which is specified in display relative coordinates, to coordinates relative to the receiver.

Usage

From source file:org.eclipse.swt.examples.controlexample.TreeTab.java

@Override
protected void specialPopupMenuItems(Menu menu, Event event) {
    MenuItem item = new MenuItem(menu, SWT.PUSH);
    item.setText("getItem(Point) on mouse coordinates");
    final Tree t = (Tree) event.widget;
    menuMouseCoords = t.toControl(new Point(event.x, event.y));
    item.addSelectionListener(widgetSelectedAdapter(e -> {
        eventConsole.append("getItem(Point(" + menuMouseCoords + ")) returned: " + t.getItem(menuMouseCoords));
        eventConsole.append("\n");
    }));//www.java2s . c  o m
}

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   w  ww  .java2  s  . c  o m
 */
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 a  va  2 s .  c  om
 * @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;
}