org.eclipse.swt.examples.accessibility.ControlsWithLabelsExample.java Source code

Java tutorial

Introduction

Here is the source code for org.eclipse.swt.examples.accessibility.ControlsWithLabelsExample.java

Source

/*******************************************************************************
 * Copyright (c) 2008, 2016 IBM Corporation and others.
 *
 * This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License 2.0
 * which accompanies this distribution, and is available at
 * https://www.eclipse.org/legal/epl-2.0/
 *
 * SPDX-License-Identifier: EPL-2.0
 *
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/
package org.eclipse.swt.examples.accessibility;

import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.CCombo;
import org.eclipse.swt.custom.CLabel;
import org.eclipse.swt.custom.CTabFolder;
import org.eclipse.swt.custom.CTabItem;
import org.eclipse.swt.custom.StyledText;
import org.eclipse.swt.events.KeyAdapter;
import org.eclipse.swt.events.KeyEvent;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Canvas;
import org.eclipse.swt.widgets.Caret;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.CoolBar;
import org.eclipse.swt.widgets.CoolItem;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Group;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.List;
import org.eclipse.swt.widgets.ProgressBar;
import org.eclipse.swt.widgets.Sash;
import org.eclipse.swt.widgets.Scale;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Slider;
import org.eclipse.swt.widgets.Spinner;
import org.eclipse.swt.widgets.TabFolder;
import org.eclipse.swt.widgets.TabItem;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.swt.widgets.TableItem;
import org.eclipse.swt.widgets.Text;
import org.eclipse.swt.widgets.ToolBar;
import org.eclipse.swt.widgets.ToolItem;
import org.eclipse.swt.widgets.Tree;
import org.eclipse.swt.widgets.TreeColumn;
import org.eclipse.swt.widgets.TreeItem;

public class ControlsWithLabelsExample {
    static Display display;
    static Shell shell;
    static Label label;
    static Button buttonPush;
    static Button buttonRadio;
    static Button buttonCheck;
    static Button buttonToggle;
    static Combo combo;
    static CCombo cCombo;
    static List list;
    static Spinner spinner;
    static Text textSingle;
    static Text textMulti;
    static StyledText styledText;
    static Table table;
    static Tree tree;
    static Tree treeTable;
    static ToolBar toolBar;
    static CoolBar coolBar;
    static Canvas canvas;
    static Group group;
    static TabFolder tabFolder;
    static CTabFolder cTabFolder;
    static CLabel cLabel;
    static Scale scale;
    static Slider slider;
    static ProgressBar progressBar;
    static Sash sash;

    public static void main(String[] args) {
        display = new Display();
        shell = new Shell(display);
        shell.setLayout(new GridLayout(4, true));
        shell.setText("All Controls Test");

        new Label(shell, SWT.NONE).setText("Label for Label");
        label = new Label(shell, SWT.NONE);
        label.setText("Label");

        new Label(shell, SWT.NONE).setText("Label for CLabel");
        cLabel = new CLabel(shell, SWT.NONE);
        cLabel.setText("CLabel");

        new Label(shell, SWT.NONE).setText("Label for Push Button");
        buttonPush = new Button(shell, SWT.PUSH);
        buttonPush.setText("Push Button");

        new Label(shell, SWT.NONE).setText("Label for Radio Button");
        buttonRadio = new Button(shell, SWT.RADIO);
        buttonRadio.setText("Radio Button");

        new Label(shell, SWT.NONE).setText("Label for Check Button");
        buttonCheck = new Button(shell, SWT.CHECK);
        buttonCheck.setText("Check Button");

        new Label(shell, SWT.NONE).setText("Label for Toggle Button");
        buttonToggle = new Button(shell, SWT.TOGGLE);
        buttonToggle.setText("Toggle Button");

        new Label(shell, SWT.NONE).setText("Label for Editable Combo");
        combo = new Combo(shell, SWT.BORDER);
        for (int i = 0; i < 4; i++) {
            combo.add("item" + i);
        }
        combo.select(0);

        new Label(shell, SWT.NONE).setText("Label for Read-Only Combo");
        combo = new Combo(shell, SWT.READ_ONLY | SWT.BORDER);
        for (int i = 0; i < 4; i++) {
            combo.add("item" + i);
        }
        combo.select(0);

        new Label(shell, SWT.NONE).setText("Label for CCombo");
        cCombo = new CCombo(shell, SWT.BORDER);
        for (int i = 0; i < 5; i++) {
            cCombo.add("item" + i);
        }
        cCombo.select(0);

        new Label(shell, SWT.NONE).setText("Label for List");
        list = new List(shell, SWT.SINGLE | SWT.BORDER);
        list.setItems("Item0", "Item1", "Item2");

        new Label(shell, SWT.NONE).setText("Label for Spinner");
        spinner = new Spinner(shell, SWT.BORDER);

        new Label(shell, SWT.NONE).setText("Label for Single-line Text");
        textSingle = new Text(shell, SWT.SINGLE | SWT.BORDER);
        textSingle.setText("Contents of Single-line Text");

        new Label(shell, SWT.NONE).setText("Label for Multi-line Text");
        textMulti = new Text(shell, SWT.MULTI | SWT.BORDER);
        textMulti.setText("\nContents of Multi-line Text\n");

        new Label(shell, SWT.NONE).setText("Label for StyledText");
        styledText = new StyledText(shell, SWT.MULTI | SWT.BORDER);
        styledText.setText("\nContents of Multi-line StyledText\n");

        new Label(shell, SWT.NONE).setText("Label for Table");
        table = new Table(shell, SWT.MULTI | SWT.FULL_SELECTION | SWT.BORDER);
        table.setHeaderVisible(true);
        table.setLinesVisible(true);
        for (int col = 0; col < 3; col++) {
            TableColumn column = new TableColumn(table, SWT.NONE);
            column.setText("Col " + col);
            column.setWidth(50);
        }
        for (int row = 0; row < 3; row++) {
            TableItem item = new TableItem(table, SWT.NONE);
            item.setText(new String[] { "C0R" + row, "C1R" + row, "C2R" + row });
        }

        new Label(shell, SWT.NONE).setText("Label for Tree");
        tree = new Tree(shell, SWT.BORDER | SWT.MULTI);
        for (int i = 0; i < 3; i++) {
            TreeItem item = new TreeItem(tree, SWT.NONE);
            item.setText("Item" + i);
            for (int j = 0; j < 4; j++) {
                new TreeItem(item, SWT.NONE).setText("Item" + i + j);
            }
        }

        new Label(shell, SWT.NONE).setText("Label for Tree with columns");
        treeTable = new Tree(shell, SWT.BORDER | SWT.MULTI);
        treeTable.setHeaderVisible(true);
        treeTable.setLinesVisible(true);
        for (int col = 0; col < 3; col++) {
            TreeColumn column = new TreeColumn(treeTable, SWT.NONE);
            column.setText("Col " + col);
            column.setWidth(50);
        }
        for (int i = 0; i < 3; i++) {
            TreeItem item = new TreeItem(treeTable, SWT.NONE);
            item.setText(new String[] { "I" + i + "C0", "I" + i + "C1", "I" + i + "C2" });
            for (int j = 0; j < 4; j++) {
                new TreeItem(item, SWT.NONE)
                        .setText(new String[] { "I" + i + j + "C0", "I" + i + j + "C1", "I" + i + j + "C2" });
            }
        }

        new Label(shell, SWT.NONE).setText("Label for ToolBar");
        toolBar = new ToolBar(shell, SWT.FLAT);
        for (int i = 0; i < 3; i++) {
            ToolItem item = new ToolItem(toolBar, SWT.PUSH);
            item.setText("Item" + i);
            item.setToolTipText("ToolItem ToolTip" + i);
        }

        new Label(shell, SWT.NONE).setText("Label for CoolBar");
        coolBar = new CoolBar(shell, SWT.FLAT);
        for (int i = 0; i < 2; i++) {
            CoolItem coolItem = new CoolItem(coolBar, SWT.PUSH);
            ToolBar coolItemToolBar = new ToolBar(coolBar, SWT.FLAT);
            int toolItemWidth = 0;
            for (int j = 0; j < 2; j++) {
                ToolItem item = new ToolItem(coolItemToolBar, SWT.PUSH);
                item.setText("Item" + i + j);
                item.setToolTipText("ToolItem ToolTip" + i + j);
                if (item.getWidth() > toolItemWidth)
                    toolItemWidth = item.getWidth();
            }
            coolItem.setControl(coolItemToolBar);
            Point size = coolItemToolBar.computeSize(SWT.DEFAULT, SWT.DEFAULT);
            Point coolSize = coolItem.computeSize(size.x, size.y);
            coolItem.setMinimumSize(toolItemWidth, coolSize.y);
            coolItem.setPreferredSize(coolSize);
            coolItem.setSize(coolSize);
        }

        new Label(shell, SWT.NONE).setText("Label for Canvas");
        canvas = new Canvas(shell, SWT.BORDER);
        canvas.setLayoutData(new GridData(64, 64));
        canvas.addPaintListener(e -> e.gc.drawString("Canvas", 15, 25));
        canvas.setCaret(new Caret(canvas, SWT.NONE));
        /* Hook key listener so canvas will take focus during traversal in. */
        canvas.addKeyListener(new KeyAdapter() {
            @Override
            public void keyPressed(KeyEvent e) {
            }

            @Override
            public void keyReleased(KeyEvent e) {
            }
        });
        /* Hook traverse listener to make canvas give up focus during traversal out. */
        canvas.addTraverseListener(e -> e.doit = true);

        new Label(shell, SWT.NONE).setText("Label for Group");
        group = new Group(shell, SWT.NONE);
        group.setText("Group");
        group.setLayout(new FillLayout());
        new Text(group, SWT.SINGLE | SWT.BORDER).setText("Text in Group");

        new Label(shell, SWT.NONE).setText("Label for TabFolder");
        tabFolder = new TabFolder(shell, SWT.NONE);
        for (int i = 0; i < 3; i++) {
            TabItem item = new TabItem(tabFolder, SWT.NONE);
            item.setText("TabItem &" + i);
            item.setToolTipText("TabItem ToolTip" + i);
            Text itemText = new Text(tabFolder, SWT.SINGLE | SWT.BORDER);
            itemText.setText("Text for TabItem " + i);
            item.setControl(itemText);
        }

        new Label(shell, SWT.NONE).setText("Label for CTabFolder");
        cTabFolder = new CTabFolder(shell, SWT.BORDER);
        for (int i = 0; i < 3; i++) {
            CTabItem item = new CTabItem(cTabFolder, SWT.NONE);
            item.setText("CTabItem &" + i);
            item.setToolTipText("CTabItem ToolTip" + i);
            Text itemText = new Text(cTabFolder, SWT.SINGLE | SWT.BORDER);
            itemText.setText("Text for CTabItem " + i);
            item.setControl(itemText);
        }
        cTabFolder.setSelection(cTabFolder.getItem(0));

        new Label(shell, SWT.NONE).setText("Label for Scale");
        scale = new Scale(shell, SWT.NONE);

        new Label(shell, SWT.NONE).setText("Label for Slider");
        slider = new Slider(shell, SWT.NONE);

        new Label(shell, SWT.NONE).setText("Label for ProgressBar");
        progressBar = new ProgressBar(shell, SWT.NONE);
        progressBar.setSelection(50);

        new Label(shell, SWT.NONE).setText("Label for Sash");
        sash = new Sash(shell, SWT.NONE);

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