blob: bdb8a9a4c54f2843c1948a30806d7d4b8a1e4ec8 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2008, 2016 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* 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();
}
}