Example usage for org.eclipse.swt.widgets Canvas isFocusControl

List of usage examples for org.eclipse.swt.widgets Canvas isFocusControl

Introduction

In this page you can find the example usage for org.eclipse.swt.widgets Canvas isFocusControl.

Prototype

public boolean isFocusControl() 

Source Link

Document

Returns true if the receiver has the user-interface focus, and false otherwise.

Usage

From source file:org.eclipse.swt.snippets.Snippet338.java

public static void main(String[] args) {
    Display display = new Display();
    Shell parentShell = new Shell(display);
    parentShell.setText("Snippet 338");
    parentShell.setBounds(10, 10, 100, 100);
    parentShell.open();/*from w  w w  .  jav  a  2 s .c om*/

    Shell childShell = new Shell(parentShell);
    childShell.setLayout(new GridLayout());
    TabFolder folder = new TabFolder(childShell, SWT.NONE);
    folder.setLayout(new FillLayout());
    TabItem tab1 = new TabItem(folder, SWT.NONE);
    tab1.setText("Tab &1");
    new TabItem(folder, SWT.NONE).setText("Tab &2");
    Composite composite = new Composite(folder, SWT.NONE);
    composite.setLayout(new GridLayout());
    tab1.setControl(composite);
    Text text1 = new Text(composite, SWT.SINGLE);

    /* canvas represents a custom control */
    final Canvas canvas = new Canvas(composite, SWT.BORDER);
    canvas.setLayoutData(new GridData(300, 200));
    canvas.addListener(SWT.Paint, event -> {
        if (canvas.isFocusControl()) {
            event.gc.drawText(
                    "focus is here, custom traverse keys:\n\tN: Tab next\n\tP: Tab previous\n\tR: Return\n\tE: Esc\n\tT: Tab Folder next page",
                    0, 0);
        } else {
            event.gc.drawString("focus is not in this control", 0, 0);
        }
    });
    canvas.addListener(SWT.KeyDown, event -> {
        int traversal = SWT.NONE;
        switch (event.keyCode) {
        case 'n':
            traversal = SWT.TRAVERSE_TAB_NEXT;
            break;
        case 'p':
            traversal = SWT.TRAVERSE_TAB_PREVIOUS;
            break;
        case 'r':
            traversal = SWT.TRAVERSE_RETURN;
            break;
        case 'e':
            traversal = SWT.TRAVERSE_ESCAPE;
            break;
        case 't':
            traversal = SWT.TRAVERSE_PAGE_NEXT;
            break;
        }
        if (traversal != SWT.NONE) {
            event.doit = true; /* this will be the Traverse event's initial doit value */
            canvas.traverse(traversal, event);
        }
    });
    canvas.addFocusListener(focusLostAdapter(e -> canvas.redraw()));
    canvas.addFocusListener(focusGainedAdapter(e -> canvas.redraw()));

    Text text2 = new Text(composite, SWT.SINGLE);
    Button button = new Button(childShell, SWT.PUSH);
    button.setText("Default &Button");
    button.addListener(SWT.Selection, event -> System.out.println("Default button selected"));
    childShell.setDefaultButton(button);

    Listener printTraverseListener = event -> {
        StringBuilder buffer = new StringBuilder("Traverse ");
        buffer.append(event.widget);
        buffer.append(" type=");
        switch (event.detail) {
        case SWT.TRAVERSE_ARROW_NEXT:
            buffer.append("TRAVERSE_ARROW_NEXT");
            break;
        case SWT.TRAVERSE_ARROW_PREVIOUS:
            buffer.append("TRAVERSE_ARROW_NEXT");
            break;
        case SWT.TRAVERSE_ESCAPE:
            buffer.append("TRAVERSE_ESCAPE");
            break;
        case SWT.TRAVERSE_MNEMONIC:
            buffer.append("TRAVERSE_MNEMONIC");
            break;
        case SWT.TRAVERSE_PAGE_NEXT:
            buffer.append("TRAVERSE_PAGE_NEXT");
            break;
        case SWT.TRAVERSE_PAGE_PREVIOUS:
            buffer.append("TRAVERSE_PAGE_PREVIOUS");
            break;
        case SWT.TRAVERSE_RETURN:
            buffer.append("TRAVERSE_RETURN");
            break;
        case SWT.TRAVERSE_TAB_NEXT:
            buffer.append("TRAVERSE_TAB_NEXT");
            break;
        case SWT.TRAVERSE_TAB_PREVIOUS:
            buffer.append("TRAVERSE_TAB_PREVIOUS");
            break;
        }
        buffer.append(" doit=" + event.doit);
        buffer.append(" keycode=" + event.keyCode);
        buffer.append(" char=" + event.character);
        buffer.append(" stateMask=" + event.stateMask);
        System.out.println(buffer.toString());
    };
    childShell.addListener(SWT.Traverse, printTraverseListener);
    folder.addListener(SWT.Traverse, printTraverseListener);
    composite.addListener(SWT.Traverse, printTraverseListener);
    canvas.addListener(SWT.Traverse, printTraverseListener);
    button.addListener(SWT.Traverse, printTraverseListener);
    text1.addListener(SWT.Traverse, printTraverseListener);
    text2.addListener(SWT.Traverse, printTraverseListener);

    childShell.pack();
    childShell.open();
    text1.setFocus();
    while (!parentShell.isDisposed()) {
        if (!display.readAndDispatch())
            display.sleep();
    }
    display.dispose();
}

From source file:Snippet21.java

public static void main(String[] args) {
    Display display = new Display();
    final Color red = display.getSystemColor(SWT.COLOR_RED);
    final Color blue = display.getSystemColor(SWT.COLOR_BLUE);
    Shell shell = new Shell(display);
    Button b = new Button(shell, SWT.PUSH);
    b.setBounds(10, 10, 100, 32);/*w w  w  .  ja  v  a 2s. c  o  m*/
    b.setText("Button");
    shell.setDefaultButton(b);
    final Canvas c = new Canvas(shell, SWT.BORDER);
    c.setBounds(10, 50, 100, 32);
    c.addListener(SWT.Traverse, new Listener() {
        public void handleEvent(Event e) {
            switch (e.detail) {
            /* Do tab group traversal */
            case SWT.TRAVERSE_ESCAPE:
            case SWT.TRAVERSE_RETURN:
            case SWT.TRAVERSE_TAB_NEXT:
            case SWT.TRAVERSE_TAB_PREVIOUS:
            case SWT.TRAVERSE_PAGE_NEXT:
            case SWT.TRAVERSE_PAGE_PREVIOUS:
                e.doit = true;
                break;
            }
        }
    });
    c.addListener(SWT.FocusIn, new Listener() {
        public void handleEvent(Event e) {
            c.setBackground(red);
        }
    });
    c.addListener(SWT.FocusOut, new Listener() {
        public void handleEvent(Event e) {
            c.setBackground(blue);
        }
    });
    c.addListener(SWT.KeyDown, new Listener() {
        public void handleEvent(Event e) {
            System.out.println("KEY");
            for (int i = 0; i < 64; i++) {
                Color c1 = red, c2 = blue;
                if (c.isFocusControl()) {
                    c1 = blue;
                    c2 = red;
                }
                c.setBackground(c1);
                c.update();
                c.setBackground(c2);
            }
        }
    });
    Text t = new Text(shell, SWT.SINGLE | SWT.BORDER);
    t.setBounds(10, 85, 100, 32);

    Text r = new Text(shell, SWT.MULTI | SWT.BORDER);
    r.setBounds(10, 120, 100, 32);

    c.setFocus();
    shell.setSize(200, 200);
    shell.open();
    while (!shell.isDisposed()) {
        if (!display.readAndDispatch())
            display.sleep();
    }
    display.dispose();
}