Example usage for org.eclipse.swt.widgets Label setText

List of usage examples for org.eclipse.swt.widgets Label setText

Introduction

In this page you can find the example usage for org.eclipse.swt.widgets Label setText.

Prototype

public void setText(String text) 

Source Link

Document

Sets the receiver's text.

Usage

From source file:com.android.ddmuilib.HeapPanel.java

/**
 * Create our control(s).// w  ww.  ja va  2  s .  c o  m
 */
@Override
protected Control createControl(Composite parent) {
    mDisplay = parent.getDisplay();

    GridLayout gl;

    mTop = new Composite(parent, SWT.NONE);
    mTop.setLayout(new GridLayout(1, false));
    mTop.setLayoutData(new GridData(GridData.FILL_BOTH));

    mUpdateStatus = new Label(mTop, SWT.NONE);
    setUpdateStatus(NOT_SELECTED);

    Composite summarySection = new Composite(mTop, SWT.NONE);
    summarySection.setLayout(gl = new GridLayout(2, false));
    gl.marginHeight = gl.marginWidth = 0;

    mHeapSummary = createSummaryTable(summarySection);
    mGcButton = new Button(summarySection, SWT.PUSH);
    mGcButton.setText("Cause GC");
    mGcButton.setEnabled(false);
    mGcButton.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            Client client = getCurrentClient();
            if (client != null) {
                client.executeGarbageCollector();
            }
        }
    });

    Composite comboSection = new Composite(mTop, SWT.NONE);
    gl = new GridLayout(2, false);
    gl.marginHeight = gl.marginWidth = 0;
    comboSection.setLayout(gl);

    Label displayLabel = new Label(comboSection, SWT.NONE);
    displayLabel.setText("Display: ");

    mDisplayMode = new Combo(comboSection, SWT.READ_ONLY);
    mDisplayMode.setEnabled(false);
    mDisplayMode.add("Stats");
    if (DISPLAY_HEAP_BITMAP) {
        mDisplayMode.add("Linear");
        if (DISPLAY_HILBERT_BITMAP) {
            mDisplayMode.add("Hilbert");
        }
    }

    // the base of the displays.
    mDisplayBase = new Composite(mTop, SWT.NONE);
    mDisplayBase.setLayoutData(new GridData(GridData.FILL_BOTH));
    mDisplayStack = new StackLayout();
    mDisplayBase.setLayout(mDisplayStack);

    // create the statistics display
    mStatisticsBase = new Composite(mDisplayBase, SWT.NONE);
    //mStatisticsBase.setLayoutData(new GridData(GridData.FILL_BOTH));
    mStatisticsBase.setLayout(gl = new GridLayout(1, false));
    gl.marginHeight = gl.marginWidth = 0;
    mDisplayStack.topControl = mStatisticsBase;

    mStatisticsTable = createDetailedTable(mStatisticsBase);
    mStatisticsTable.setLayoutData(new GridData(GridData.FILL_BOTH));

    createChart();

    //create the linear composite
    mLinearBase = new Composite(mDisplayBase, SWT.NONE);
    //mLinearBase.setLayoutData(new GridData());
    gl = new GridLayout(1, false);
    gl.marginHeight = gl.marginWidth = 0;
    mLinearBase.setLayout(gl);

    {
        mLinearHeapImage = new Label(mLinearBase, SWT.NONE);
        mLinearHeapImage.setLayoutData(new GridData());
        mLinearHeapImage.setImage(ImageLoader.createPlaceHolderArt(mDisplay, PLACEHOLDER_LINEAR_H_SIZE,
                PLACEHOLDER_LINEAR_V_SIZE, mDisplay.getSystemColor(SWT.COLOR_BLUE)));

        // create a composite to contain the bottom part (legend)
        Composite bottomSection = new Composite(mLinearBase, SWT.NONE);
        gl = new GridLayout(1, false);
        gl.marginHeight = gl.marginWidth = 0;
        bottomSection.setLayout(gl);

        createLegend(bottomSection);
    }

    /*
            mScrolledComposite = new ScrolledComposite(mTop, SWT.H_SCROLL | SWT.V_SCROLL);
            mScrolledComposite.setLayoutData(new GridData(GridData.FILL_BOTH));
            mScrolledComposite.setExpandHorizontal(true);
            mScrolledComposite.setExpandVertical(true);
            mScrolledComposite.setContent(mDisplayBase);
    */

    // create the hilbert display.
    mHilbertBase = new Composite(mDisplayBase, SWT.NONE);
    //mHilbertBase.setLayoutData(new GridData());
    gl = new GridLayout(2, false);
    gl.marginHeight = gl.marginWidth = 0;
    mHilbertBase.setLayout(gl);

    if (DISPLAY_HILBERT_BITMAP) {
        mHilbertHeapImage = new Label(mHilbertBase, SWT.NONE);
        mHilbertHeapImage.setLayoutData(new GridData());
        mHilbertHeapImage.setImage(ImageLoader.createPlaceHolderArt(mDisplay, PLACEHOLDER_HILBERT_SIZE,
                PLACEHOLDER_HILBERT_SIZE, mDisplay.getSystemColor(SWT.COLOR_BLUE)));

        // create a composite to contain the right part (legend + zoom)
        Composite rightSection = new Composite(mHilbertBase, SWT.NONE);
        gl = new GridLayout(1, false);
        gl.marginHeight = gl.marginWidth = 0;
        rightSection.setLayout(gl);

        Composite zoomComposite = new Composite(rightSection, SWT.NONE);
        gl = new GridLayout(2, false);
        zoomComposite.setLayout(gl);

        Label l = new Label(zoomComposite, SWT.NONE);
        l.setText("Zoom:");
        mZoom = new Combo(zoomComposite, SWT.READ_ONLY);
        for (int z : ZOOMS) {
            mZoom.add(String.format("%1$d%%", z)); //$NON-NLS-1$
        }

        mZoom.select(0);
        mZoom.addSelectionListener(new SelectionAdapter() {
            @Override
            public void widgetSelected(SelectionEvent e) {
                setLegendText(mZoom.getSelectionIndex());
                Client client = getCurrentClient();
                if (client != null) {
                    renderHeapData(client.getClientData(), 1, true);
                    mTop.pack();
                }
            }
        });

        createLegend(rightSection);
    }
    mHilbertBase.pack();

    mLayout = new Composite[] { mStatisticsBase, mLinearBase, mHilbertBase };
    mDisplayMode.select(0);
    mDisplayMode.addSelectionListener(new SelectionAdapter() {
        @Override
        public void widgetSelected(SelectionEvent e) {
            int index = mDisplayMode.getSelectionIndex();
            Client client = getCurrentClient();

            if (client != null) {
                if (index == 0) {
                    fillDetailedTable(client, true /* forceRedraw */);
                } else {
                    renderHeapData(client.getClientData(), index - 1, true /* forceRedraw */);
                }
            }

            mDisplayStack.topControl = mLayout[index];
            //mScrolledComposite.setMinSize(mDisplayStack.topControl.computeSize(SWT.DEFAULT,
            //        SWT.DEFAULT));
            mDisplayBase.layout();
            //mScrolledComposite.redraw();
        }
    });

    //mScrolledComposite.setMinSize(mDisplayStack.topControl.computeSize(SWT.DEFAULT,
    //        SWT.DEFAULT));
    mDisplayBase.layout();
    //mScrolledComposite.redraw();

    return mTop;
}

From source file:DNDExample.java

private Control createWidget(int type, Composite parent, String prefix) {
    switch (type) {
    case BUTTON_CHECK: {
        Button button = new Button(parent, SWT.CHECK);
        button.setText(prefix + " Check box");
        return button;
    }/*from   ww  w. j a v  a  2 s  . c  om*/
    case BUTTON_TOGGLE: {
        Button button = new Button(parent, SWT.TOGGLE);
        button.setText(prefix + " Toggle button");
        return button;
    }
    case BUTTON_RADIO: {
        Button button = new Button(parent, SWT.RADIO);
        button.setText(prefix + " Radio button");
        return button;
    }
    case TABLE: {
        Table table = new Table(parent, SWT.BORDER | SWT.MULTI);
        TableColumn column1 = new TableColumn(table, SWT.NONE);
        TableColumn column2 = new TableColumn(table, SWT.NONE);
        for (int i = 0; i < 10; i++) {
            TableItem item = new TableItem(table, SWT.NONE);
            item.setText(0, prefix + " name " + i);
            item.setText(1, prefix + " value " + i);
        }
        column1.pack();
        column2.pack();
        return table;
    }
    case TEXT: {
        Text text = new Text(parent, SWT.BORDER | SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL);
        text.setText(prefix + " Text");
        return text;
    }
    case TREE: {
        Tree tree = new Tree(parent, SWT.BORDER);
        for (int i = 0; i < 3; i++) {
            TreeItem item = new TreeItem(tree, SWT.NONE);
            item.setText(prefix + " item " + i);
            for (int j = 0; j < 3; j++) {
                TreeItem subItem = new TreeItem(item, SWT.NONE);
                subItem.setText(prefix + " item " + j);
                for (int k = 0; k < 3; k++) {
                    TreeItem subsubItem = new TreeItem(subItem, SWT.NONE);
                    subsubItem.setText(prefix + " item " + k);
                }
            }
        }
        return tree;
    }
    case CANVAS: {
        Canvas canvas = new Canvas(parent, SWT.BORDER);
        canvas.setData("STRINGS", new String[] { prefix + " Canvas widget" });
        canvas.addPaintListener(new PaintListener() {
            public void paintControl(PaintEvent e) {
                Canvas c = (Canvas) e.widget;
                Image image = (Image) c.getData("IMAGE");
                if (image != null) {
                    e.gc.drawImage(image, 5, 5);
                } else {
                    String[] strings = (String[]) c.getData("STRINGS");
                    if (strings != null) {
                        FontMetrics metrics = e.gc.getFontMetrics();
                        int height = metrics.getHeight();
                        int y = 5;
                        for (int i = 0; i < strings.length; i++) {
                            e.gc.drawString(strings[i], 5, y);
                            y += height + 5;
                        }
                    }
                }
            }
        });
        return canvas;
    }
    case LABEL: {
        Label label = new Label(parent, SWT.BORDER);
        label.setText(prefix + " Label");
        return label;
    }
    case LIST: {
        List list = new List(parent, SWT.BORDER);
        list.setItems(new String[] { prefix + " Item a", prefix + " Item b", prefix + " Item c",
                prefix + " Item d" });
        return list;
    }
    default:
        throw new SWTError(SWT.ERROR_NOT_IMPLEMENTED);
    }
}

From source file:DNDExample.java

private void createDropTarget() {
    if (dropTarget != null)
        dropTarget.dispose();/* ww  w  .  j  a va 2 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:DNDExample.java

public void open(Display display) {
    Shell shell = new Shell(display);
    shell.setText("Drag and Drop Example");
    shell.setLayout(new FillLayout());

    ScrolledComposite sc = new ScrolledComposite(shell, SWT.H_SCROLL | SWT.V_SCROLL);
    Composite parent = new Composite(sc, SWT.NONE);
    sc.setContent(parent);//from   w  w  w.  ja  va 2s.co m
    parent.setLayout(new FormLayout());

    Label dragLabel = new Label(parent, SWT.LEFT);
    dragLabel.setText("Drag Source:");

    Group dragWidgetGroup = new Group(parent, SWT.NONE);
    dragWidgetGroup.setText("Widget");
    createDragWidget(dragWidgetGroup);

    Composite cLeft = new Composite(parent, SWT.NONE);
    cLeft.setLayout(new GridLayout(2, false));

    Group dragOperationsGroup = new Group(cLeft, SWT.NONE);
    dragOperationsGroup.setLayoutData(new GridData(SWT.LEFT, SWT.FILL, false, false, 1, 1));
    dragOperationsGroup.setText("Allowed Operation(s):");
    createDragOperations(dragOperationsGroup);

    Group dragTypesGroup = new Group(cLeft, SWT.NONE);
    dragTypesGroup.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false, 1, 1));
    dragTypesGroup.setText("Transfer Type(s):");
    createDragTypes(dragTypesGroup);

    dragConsole = new Text(cLeft, SWT.READ_ONLY | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL | SWT.MULTI);
    dragConsole.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));
    Menu menu = new Menu(shell, SWT.POP_UP);
    MenuItem item = new MenuItem(menu, SWT.PUSH);
    item.setText("Clear");
    item.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            dragConsole.setText("");
        }
    });
    item = new MenuItem(menu, SWT.CHECK);
    item.setText("Show Event detail");
    item.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            MenuItem item = (MenuItem) e.widget;
            dragEventDetail = item.getSelection();
        }
    });
    dragConsole.setMenu(menu);

    Label dropLabel = new Label(parent, SWT.LEFT);
    dropLabel.setText("Drop Target:");

    Group dropWidgetGroup = new Group(parent, SWT.NONE);
    dropWidgetGroup.setText("Widget");
    createDropWidget(dropWidgetGroup);

    Composite cRight = new Composite(parent, SWT.NONE);
    cRight.setLayout(new GridLayout(2, false));

    Group dropOperationsGroup = new Group(cRight, SWT.NONE);
    dropOperationsGroup.setLayoutData(new GridData(SWT.LEFT, SWT.FILL, false, false, 1, 2));
    dropOperationsGroup.setText("Allowed Operation(s):");
    createDropOperations(dropOperationsGroup);

    Group dropTypesGroup = new Group(cRight, SWT.NONE);
    dropTypesGroup.setText("Transfer Type(s):");
    createDropTypes(dropTypesGroup);

    Group feedbackTypesGroup = new Group(cRight, SWT.NONE);
    feedbackTypesGroup.setText("Feedback Type(s):");
    createFeedbackTypes(feedbackTypesGroup);

    dropConsole = new Text(cRight, SWT.READ_ONLY | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL | SWT.MULTI);
    dropConsole.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));
    menu = new Menu(shell, SWT.POP_UP);
    item = new MenuItem(menu, SWT.PUSH);
    item.setText("Clear");
    item.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            dropConsole.setText("");
        }
    });
    item = new MenuItem(menu, SWT.CHECK);
    item.setText("Show Event detail");
    item.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            MenuItem item = (MenuItem) e.widget;
            dropEventDetail = item.getSelection();
        }
    });
    dropConsole.setMenu(menu);

    int height = 200;
    FormData data = new FormData();
    data.top = new FormAttachment(0, 10);
    data.left = new FormAttachment(0, 10);
    dragLabel.setLayoutData(data);

    data = new FormData();
    data.top = new FormAttachment(dragLabel, 10);
    data.left = new FormAttachment(0, 10);
    data.right = new FormAttachment(50, -10);
    data.height = height;
    dragWidgetGroup.setLayoutData(data);

    data = new FormData();
    data.top = new FormAttachment(dragWidgetGroup, 10);
    data.left = new FormAttachment(0, 10);
    data.right = new FormAttachment(50, -10);
    data.bottom = new FormAttachment(100, -10);
    cLeft.setLayoutData(data);

    data = new FormData();
    data.top = new FormAttachment(0, 10);
    data.left = new FormAttachment(cLeft, 10);
    dropLabel.setLayoutData(data);

    data = new FormData();
    data.top = new FormAttachment(dropLabel, 10);
    data.left = new FormAttachment(cLeft, 10);
    data.right = new FormAttachment(100, -10);
    data.height = height;
    dropWidgetGroup.setLayoutData(data);

    data = new FormData();
    data.top = new FormAttachment(dropWidgetGroup, 10);
    data.left = new FormAttachment(cLeft, 10);
    data.right = new FormAttachment(100, -10);
    data.bottom = new FormAttachment(100, -10);
    cRight.setLayoutData(data);

    sc.setMinSize(parent.computeSize(SWT.DEFAULT, SWT.DEFAULT));
    sc.setExpandHorizontal(true);
    sc.setExpandVertical(true);

    Point size = shell.computeSize(SWT.DEFAULT, SWT.DEFAULT);
    Rectangle monitorArea = shell.getMonitor().getClientArea();
    shell.setSize(Math.min(size.x, monitorArea.width - 20), Math.min(size.y, monitorArea.height - 20));
    shell.open();

    while (!shell.isDisposed()) {
        if (!display.readAndDispatch())
            display.sleep();
    }
}

From source file:org.eclipse.swt.examples.dnd.DNDExample.java

private Control createWidget(int type, Composite parent, String prefix) {
    switch (type) {
    case BUTTON_CHECK: {
        Button button = new Button(parent, SWT.CHECK);
        button.setText(prefix + " Check box");
        return button;
    }//from  w  ww .  j  a  v a 2 s.  com
    case BUTTON_TOGGLE: {
        Button button = new Button(parent, SWT.TOGGLE);
        button.setText(prefix + " Toggle button");
        return button;
    }
    case BUTTON_RADIO: {
        Button button = new Button(parent, SWT.RADIO);
        button.setText(prefix + " Radio button");
        return button;
    }
    case STYLED_TEXT: {
        StyledText text = new StyledText(parent, SWT.BORDER | SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL);
        text.setText(prefix + " Styled Text");
        return text;
    }
    case TABLE: {
        Table table = new Table(parent, SWT.BORDER | SWT.MULTI);
        table.setHeaderVisible(true);
        TableColumn column0 = new TableColumn(table, SWT.LEFT);
        column0.setText("Name");
        TableColumn column1 = new TableColumn(table, SWT.RIGHT);
        column1.setText("Value");
        TableColumn column2 = new TableColumn(table, SWT.CENTER);
        column2.setText("Description");
        for (int i = 0; i < 10; i++) {
            TableItem item = new TableItem(table, SWT.NONE);
            item.setText(0, prefix + " name " + i);
            item.setText(1, prefix + " value " + i);
            item.setText(2, prefix + " description " + i);
            item.setImage(itemImage);
        }
        column0.pack();
        column1.pack();
        column2.pack();
        return table;
    }
    case TEXT: {
        Text text = new Text(parent, SWT.BORDER | SWT.MULTI | SWT.V_SCROLL | SWT.H_SCROLL);
        text.setText(prefix + " Text");
        return text;
    }
    case TREE: {
        Tree tree = new Tree(parent, SWT.BORDER | SWT.MULTI);
        tree.setHeaderVisible(true);
        TreeColumn column0 = new TreeColumn(tree, SWT.LEFT);
        column0.setText("Name");
        TreeColumn column1 = new TreeColumn(tree, SWT.RIGHT);
        column1.setText("Value");
        TreeColumn column2 = new TreeColumn(tree, SWT.CENTER);
        column2.setText("Description");
        for (int i = 0; i < 3; i++) {
            TreeItem item = new TreeItem(tree, SWT.NONE);
            item.setText(0, prefix + " name " + i);
            item.setText(1, prefix + " value " + i);
            item.setText(2, prefix + " description " + i);
            item.setImage(itemImage);
            for (int j = 0; j < 3; j++) {
                TreeItem subItem = new TreeItem(item, SWT.NONE);
                subItem.setText(0, prefix + " name " + i + " " + j);
                subItem.setText(1, prefix + " value " + i + " " + j);
                subItem.setText(2, prefix + " description " + i + " " + j);
                subItem.setImage(itemImage);
                for (int k = 0; k < 3; k++) {
                    TreeItem subsubItem = new TreeItem(subItem, SWT.NONE);
                    subsubItem.setText(0, prefix + " name " + i + " " + j + " " + k);
                    subsubItem.setText(1, prefix + " value " + i + " " + j + " " + k);
                    subsubItem.setText(2, prefix + " description " + i + " " + j + " " + k);
                    subsubItem.setImage(itemImage);
                }
            }
        }
        column0.pack();
        column1.pack();
        column2.pack();
        return tree;
    }
    case CANVAS: {
        Canvas canvas = new Canvas(parent, SWT.BORDER);
        canvas.setData("STRINGS", new String[] { prefix + " Canvas widget" });
        canvas.addPaintListener(e -> {
            Canvas c = (Canvas) e.widget;
            Image image = (Image) c.getData("IMAGE");
            if (image != null) {
                e.gc.drawImage(image, 5, 5);
            } else {
                String[] strings = (String[]) c.getData("STRINGS");
                if (strings != null) {
                    FontMetrics metrics = e.gc.getFontMetrics();
                    int height = metrics.getHeight();
                    int y = 5;
                    for (String string : strings) {
                        e.gc.drawString(string, 5, y);
                        y += height + 5;
                    }
                }
            }
        });
        return canvas;
    }
    case LABEL: {
        Label label = new Label(parent, SWT.BORDER);
        label.setText(prefix + " Label");
        return label;
    }
    case LIST: {
        List list = new List(parent, SWT.BORDER | SWT.MULTI);
        list.setItems(prefix + " Item a", prefix + " Item b", prefix + " Item c", prefix + " Item d");
        return list;
    }
    case COMBO: {
        Combo combo = new Combo(parent, SWT.BORDER);
        combo.setItems("Item a", "Item b", "Item c", "Item d");
        return combo;
    }
    default:
        throw new SWTError(SWT.ERROR_NOT_IMPLEMENTED);
    }
}

From source file:DNDExample.java

private void createDropOperations(Composite parent) {
    parent.setLayout(new RowLayout(SWT.VERTICAL));
    final Button moveButton = new Button(parent, SWT.CHECK);
    moveButton.setText("DND.DROP_MOVE");
    moveButton.setSelection(true);/*www.  j  a  va 2  s  .c om*/
    dropOperation = DND.DROP_MOVE;
    moveButton.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            Button b = (Button) e.widget;
            if (b.getSelection()) {
                dropOperation |= DND.DROP_MOVE;
            } else {
                dropOperation = dropOperation & ~DND.DROP_MOVE;
                if (dropOperation == 0 || (dropDefaultOperation & DND.DROP_MOVE) != 0) {
                    dropOperation |= DND.DROP_MOVE;
                    moveButton.setSelection(true);
                }
            }
            if (dropEnabled) {
                createDropTarget();
            }
        }
    });

    final Button copyButton = new Button(parent, SWT.CHECK);
    copyButton.setText("DND.DROP_COPY");
    copyButton.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            Button b = (Button) e.widget;
            if (b.getSelection()) {
                dropOperation |= DND.DROP_COPY;
            } else {
                dropOperation = dropOperation & ~DND.DROP_COPY;
                if (dropOperation == 0 || (dropDefaultOperation & DND.DROP_COPY) != 0) {
                    dropOperation = DND.DROP_COPY;
                    copyButton.setSelection(true);
                }
            }
            if (dropEnabled) {
                createDropTarget();
            }
        }
    });

    final Button linkButton = new Button(parent, SWT.CHECK);
    linkButton.setText("DND.DROP_LINK");
    linkButton.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            Button b = (Button) e.widget;
            if (b.getSelection()) {
                dropOperation |= DND.DROP_LINK;
            } else {
                dropOperation = dropOperation & ~DND.DROP_LINK;
                if (dropOperation == 0 || (dropDefaultOperation & DND.DROP_LINK) != 0) {
                    dropOperation = DND.DROP_LINK;
                    linkButton.setSelection(true);
                }
            }
            if (dropEnabled) {
                createDropTarget();
            }
        }
    });

    Button b = new Button(parent, SWT.CHECK);
    b.setText("DND.DROP_DEFAULT");
    defaultParent = new Composite(parent, SWT.NONE);
    b.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            Button b = (Button) e.widget;
            if (b.getSelection()) {
                dropOperation |= DND.DROP_DEFAULT;
                defaultParent.setVisible(true);
            } else {
                dropOperation = dropOperation & ~DND.DROP_DEFAULT;
                defaultParent.setVisible(false);
            }
            if (dropEnabled) {
                createDropTarget();
            }
        }
    });

    defaultParent.setVisible(false);
    GridLayout layout = new GridLayout();
    layout.marginWidth = 20;
    defaultParent.setLayout(layout);
    Label label = new Label(defaultParent, SWT.NONE);
    label.setText("Value for default operation is:");
    b = new Button(defaultParent, SWT.RADIO);
    b.setText("DND.DROP_MOVE");
    b.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            Button b = (Button) e.widget;
            if (b.getSelection()) {
                dropDefaultOperation = DND.DROP_MOVE;
                dropOperation |= DND.DROP_MOVE;
                moveButton.setSelection(true);
                if (dropEnabled) {
                    createDropTarget();
                }
            }
        }
    });

    b = new Button(defaultParent, SWT.RADIO);
    b.setText("DND.DROP_COPY");
    b.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            Button b = (Button) e.widget;
            if (b.getSelection()) {
                dropDefaultOperation = DND.DROP_COPY;
                dropOperation |= DND.DROP_COPY;
                copyButton.setSelection(true);
                if (dropEnabled) {
                    createDropTarget();
                }
            }
        }
    });

    b = new Button(defaultParent, SWT.RADIO);
    b.setText("DND.DROP_LINK");
    b.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            Button b = (Button) e.widget;
            if (b.getSelection()) {
                dropDefaultOperation = DND.DROP_LINK;
                dropOperation |= DND.DROP_LINK;
                linkButton.setSelection(true);
                if (dropEnabled) {
                    createDropTarget();
                }
            }
        }
    });

    b = new Button(defaultParent, SWT.RADIO);
    b.setText("DND.DROP_NONE");
    b.setSelection(true);
    b.addSelectionListener(new SelectionAdapter() {
        public void widgetSelected(SelectionEvent e) {
            Button b = (Button) e.widget;
            if (b.getSelection()) {
                dropDefaultOperation = DND.DROP_NONE;
                dropOperation &= ~DND.DROP_DEFAULT;
                if (dropEnabled) {
                    createDropTarget();
                }
            }
        }
    });
}

From source file:org.eclipse.swt.examples.dnd.DNDExample.java

public void open(Display display) {
    Shell shell = new Shell(display);
    shell.setText("Drag and Drop Example");
    shell.setLayout(new FillLayout());

    itemImage = new Image(display, DNDExample.class.getResourceAsStream("openFolder.gif"));

    ScrolledComposite sc = new ScrolledComposite(shell, SWT.H_SCROLL | SWT.V_SCROLL);
    Composite parent = new Composite(sc, SWT.NONE);
    sc.setContent(parent);/*www . ja v  a2s.c  om*/
    parent.setLayout(new FormLayout());

    Label dragLabel = new Label(parent, SWT.LEFT);
    dragLabel.setText("Drag Source:");

    Group dragWidgetGroup = new Group(parent, SWT.NONE);
    dragWidgetGroup.setText("Widget");
    createDragWidget(dragWidgetGroup);

    Composite cLeft = new Composite(parent, SWT.NONE);
    cLeft.setLayout(new GridLayout(2, false));

    Group dragOperationsGroup = new Group(cLeft, SWT.NONE);
    dragOperationsGroup.setLayoutData(new GridData(SWT.LEFT, SWT.FILL, false, false, 1, 1));
    dragOperationsGroup.setText("Allowed Operation(s):");
    createDragOperations(dragOperationsGroup);

    Group dragTypesGroup = new Group(cLeft, SWT.NONE);
    dragTypesGroup.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false, 1, 1));
    dragTypesGroup.setText("Transfer Type(s):");
    createDragTypes(dragTypesGroup);

    dragConsole = new Text(cLeft, SWT.READ_ONLY | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL | SWT.MULTI);
    dragConsole.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));
    Menu menu = new Menu(shell, SWT.POP_UP);
    MenuItem item = new MenuItem(menu, SWT.PUSH);
    item.setText("Clear");
    item.addSelectionListener(widgetSelectedAdapter(e -> dragConsole.setText("")));
    item = new MenuItem(menu, SWT.CHECK);
    item.setText("Show Event detail");
    item.addSelectionListener(widgetSelectedAdapter(e -> {
        MenuItem eItem = (MenuItem) e.widget;
        dragEventDetail = eItem.getSelection();
    }));
    dragConsole.setMenu(menu);

    Label dropLabel = new Label(parent, SWT.LEFT);
    dropLabel.setText("Drop Target:");

    Group dropWidgetGroup = new Group(parent, SWT.NONE);
    dropWidgetGroup.setText("Widget");
    createDropWidget(dropWidgetGroup);

    Composite cRight = new Composite(parent, SWT.NONE);
    cRight.setLayout(new GridLayout(2, false));

    Group dropOperationsGroup = new Group(cRight, SWT.NONE);
    dropOperationsGroup.setLayoutData(new GridData(SWT.LEFT, SWT.FILL, false, false, 1, 2));
    dropOperationsGroup.setText("Allowed Operation(s):");
    createDropOperations(dropOperationsGroup);

    Group dropTypesGroup = new Group(cRight, SWT.NONE);
    dropTypesGroup.setText("Transfer Type(s):");
    createDropTypes(dropTypesGroup);

    Group feedbackTypesGroup = new Group(cRight, SWT.NONE);
    feedbackTypesGroup.setText("Feedback Type(s):");
    createFeedbackTypes(feedbackTypesGroup);

    dropConsole = new Text(cRight, SWT.READ_ONLY | SWT.BORDER | SWT.V_SCROLL | SWT.H_SCROLL | SWT.MULTI);
    dropConsole.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 2, 1));
    menu = new Menu(shell, SWT.POP_UP);
    item = new MenuItem(menu, SWT.PUSH);
    item.setText("Clear");
    item.addSelectionListener(widgetSelectedAdapter(e -> dropConsole.setText("")));
    item = new MenuItem(menu, SWT.CHECK);
    item.setText("Show Event detail");
    item.addSelectionListener(widgetSelectedAdapter(e -> {
        MenuItem eItem = (MenuItem) e.widget;
        dropEventDetail = eItem.getSelection();
    }));
    dropConsole.setMenu(menu);

    if (dragEnabled)
        createDragSource();
    if (dropEnabled)
        createDropTarget();

    int height = 200;
    FormData data = new FormData();
    data.top = new FormAttachment(0, 10);
    data.left = new FormAttachment(0, 10);
    dragLabel.setLayoutData(data);

    data = new FormData();
    data.top = new FormAttachment(dragLabel, 10);
    data.left = new FormAttachment(0, 10);
    data.right = new FormAttachment(50, -10);
    data.height = height;
    dragWidgetGroup.setLayoutData(data);

    data = new FormData();
    data.top = new FormAttachment(dragWidgetGroup, 10);
    data.left = new FormAttachment(0, 10);
    data.right = new FormAttachment(50, -10);
    data.bottom = new FormAttachment(100, -10);
    cLeft.setLayoutData(data);

    data = new FormData();
    data.top = new FormAttachment(0, 10);
    data.left = new FormAttachment(cLeft, 10);
    dropLabel.setLayoutData(data);

    data = new FormData();
    data.top = new FormAttachment(dropLabel, 10);
    data.left = new FormAttachment(cLeft, 10);
    data.right = new FormAttachment(100, -10);
    data.height = height;
    dropWidgetGroup.setLayoutData(data);

    data = new FormData();
    data.top = new FormAttachment(dropWidgetGroup, 10);
    data.left = new FormAttachment(cLeft, 10);
    data.right = new FormAttachment(100, -10);
    data.bottom = new FormAttachment(100, -10);
    cRight.setLayoutData(data);

    sc.setMinSize(parent.computeSize(SWT.DEFAULT, SWT.DEFAULT));
    sc.setExpandHorizontal(true);
    sc.setExpandVertical(true);

    Point size = shell.computeSize(SWT.DEFAULT, SWT.DEFAULT);
    Rectangle monitorArea = shell.getMonitor().getClientArea();
    shell.setSize(Math.min(size.x, monitorArea.width - 20), Math.min(size.y, monitorArea.height - 20));
    shell.open();

    while (!shell.isDisposed()) {
        if (!display.readAndDispatch())
            display.sleep();
    }
    itemImage.dispose();
}

From source file:org.eclipse.swt.examples.dnd.DNDExample.java

private void createDropOperations(Composite parent) {
    parent.setLayout(new RowLayout(SWT.VERTICAL));
    final Button moveButton = new Button(parent, SWT.CHECK);
    moveButton.setText("DND.DROP_MOVE");
    moveButton.addSelectionListener(widgetSelectedAdapter(e -> {
        Button b = (Button) e.widget;
        if (b.getSelection()) {
            dropOperation |= DND.DROP_MOVE;
        } else {/*from w  w w .  j a v  a  2  s  . co m*/
            dropOperation = dropOperation & ~DND.DROP_MOVE;
            if (dropOperation == 0 || (dropDefaultOperation & DND.DROP_MOVE) != 0) {
                dropOperation |= DND.DROP_MOVE;
                moveButton.setSelection(true);
            }
        }
        if (dropEnabled) {
            createDropTarget();
        }
    }));

    final Button copyButton = new Button(parent, SWT.CHECK);
    copyButton.setText("DND.DROP_COPY");
    copyButton.addSelectionListener(widgetSelectedAdapter(e -> {
        Button b = (Button) e.widget;
        if (b.getSelection()) {
            dropOperation |= DND.DROP_COPY;
        } else {
            dropOperation = dropOperation & ~DND.DROP_COPY;
            if (dropOperation == 0 || (dropDefaultOperation & DND.DROP_COPY) != 0) {
                dropOperation = DND.DROP_COPY;
                copyButton.setSelection(true);
            }
        }
        if (dropEnabled) {
            createDropTarget();
        }
    }));

    final Button linkButton = new Button(parent, SWT.CHECK);
    linkButton.setText("DND.DROP_LINK");
    linkButton.addSelectionListener(widgetSelectedAdapter(e -> {
        Button eb = (Button) e.widget;
        if (eb.getSelection()) {
            dropOperation |= DND.DROP_LINK;
        } else {
            dropOperation = dropOperation & ~DND.DROP_LINK;
            if (dropOperation == 0 || (dropDefaultOperation & DND.DROP_LINK) != 0) {
                dropOperation = DND.DROP_LINK;
                linkButton.setSelection(true);
            }
        }
        if (dropEnabled) {
            createDropTarget();
        }
    }));

    Button b = new Button(parent, SWT.CHECK);
    b.setText("DND.DROP_DEFAULT");
    defaultParent = new Composite(parent, SWT.NONE);
    b.addSelectionListener(widgetSelectedAdapter(e -> {
        Button eb = (Button) e.widget;
        if (eb.getSelection()) {
            dropOperation |= DND.DROP_DEFAULT;
            defaultParent.setVisible(true);
        } else {
            dropOperation = dropOperation & ~DND.DROP_DEFAULT;
            defaultParent.setVisible(false);
        }
        if (dropEnabled) {
            createDropTarget();
        }
    }));

    defaultParent.setVisible(false);
    GridLayout layout = new GridLayout();
    layout.marginWidth = 20;
    defaultParent.setLayout(layout);
    Label label = new Label(defaultParent, SWT.NONE);
    label.setText("Value for default operation is:");
    b = new Button(defaultParent, SWT.RADIO);
    b.setText("DND.DROP_MOVE");
    b.addSelectionListener(widgetSelectedAdapter(e -> {
        Button eb = (Button) e.widget;
        if (eb.getSelection()) {
            dropDefaultOperation = DND.DROP_MOVE;
            dropOperation |= DND.DROP_MOVE;
            moveButton.setSelection(true);
            if (dropEnabled) {
                createDropTarget();
            }
        }
    }));

    b = new Button(defaultParent, SWT.RADIO);
    b.setText("DND.DROP_COPY");
    b.addSelectionListener(widgetSelectedAdapter(e -> {
        Button eb = (Button) e.widget;
        if (eb.getSelection()) {
            dropDefaultOperation = DND.DROP_COPY;
            dropOperation |= DND.DROP_COPY;
            copyButton.setSelection(true);
            if (dropEnabled) {
                createDropTarget();
            }
        }
    }));

    b = new Button(defaultParent, SWT.RADIO);
    b.setText("DND.DROP_LINK");
    b.addSelectionListener(widgetSelectedAdapter(e -> {
        Button eb = (Button) e.widget;
        if (eb.getSelection()) {
            dropDefaultOperation = DND.DROP_LINK;
            dropOperation |= DND.DROP_LINK;
            linkButton.setSelection(true);
            if (dropEnabled) {
                createDropTarget();
            }
        }
    }));

    b = new Button(defaultParent, SWT.RADIO);
    b.setText("DND.DROP_NONE");
    b.setSelection(true);
    b.addSelectionListener(widgetSelectedAdapter(e -> {
        Button eb = (Button) e.widget;
        if (eb.getSelection()) {
            dropDefaultOperation = DND.DROP_NONE;
            dropOperation &= ~DND.DROP_DEFAULT;
            if (dropEnabled) {
                createDropTarget();
            }
        }
    }));

    // initialize state
    moveButton.setSelection(true);
    copyButton.setSelection(true);
    linkButton.setSelection(true);
    dropOperation = DND.DROP_MOVE | DND.DROP_COPY | DND.DROP_LINK;
}

From source file:org.eclipse.swt.examples.dnd.DNDExample.java

private void createDropTarget() {
    if (dropTarget != null)
        dropTarget.dispose();//from   ww  w .  j  ava2  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:DNDExample.java

private void createDragSource() {
    if (dragSource != null)
        dragSource.dispose();//  www .  j a v a2s.co m
    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;
                }
            }
        }
    });
}