use of org.eclipse.swt.accessibility.Accessible in project eclipse.platform.swt by eclipse.
the class CTableItem method removeColumn.
/*
* Updates internal structures in the receiver and its child items to handle the removal of a column.
*/
void removeColumn(CTableColumn column, int index) {
int columnCount = parent.columns.length;
if (columnCount == 0) {
/* reverts to normal table when last column disposed */
cellBackgrounds = cellForegrounds = null;
displayTexts = null;
cellFonts = null;
fontHeights = null;
GC gc = new GC(parent);
computeTextWidths(gc);
gc.dispose();
return;
}
String[] newTexts = new String[columnCount];
System.arraycopy(texts, 0, newTexts, 0, index);
System.arraycopy(texts, index + 1, newTexts, index, columnCount - index);
texts = newTexts;
Image[] newImages = new Image[columnCount];
System.arraycopy(images, 0, newImages, 0, index);
System.arraycopy(images, index + 1, newImages, index, columnCount - index);
images = newImages;
int[] newTextWidths = new int[columnCount];
System.arraycopy(textWidths, 0, newTextWidths, 0, index);
System.arraycopy(textWidths, index + 1, newTextWidths, index, columnCount - index);
textWidths = newTextWidths;
String[] newDisplayTexts = new String[columnCount];
System.arraycopy(displayTexts, 0, newDisplayTexts, 0, index);
System.arraycopy(displayTexts, index + 1, newDisplayTexts, index, columnCount - index);
displayTexts = newDisplayTexts;
if (columnCount > 1) {
Accessible[] newAccessibles = new Accessible[columnCount];
System.arraycopy(accessibles, 0, newAccessibles, 0, index);
System.arraycopy(accessibles, index + 1, newAccessibles, index, columnCount - index);
accessibles = newAccessibles;
}
if (cellBackgrounds != null) {
Color[] newCellBackgrounds = new Color[columnCount];
System.arraycopy(cellBackgrounds, 0, newCellBackgrounds, 0, index);
System.arraycopy(cellBackgrounds, index + 1, newCellBackgrounds, index, columnCount - index);
cellBackgrounds = newCellBackgrounds;
}
if (cellForegrounds != null) {
Color[] newCellForegrounds = new Color[columnCount];
System.arraycopy(cellForegrounds, 0, newCellForegrounds, 0, index);
System.arraycopy(cellForegrounds, index + 1, newCellForegrounds, index, columnCount - index);
cellForegrounds = newCellForegrounds;
}
if (cellFonts != null) {
Font[] newCellFonts = new Font[columnCount];
System.arraycopy(cellFonts, 0, newCellFonts, 0, index);
System.arraycopy(cellFonts, index + 1, newCellFonts, index, columnCount - index);
cellFonts = newCellFonts;
int[] newFontHeights = new int[columnCount];
System.arraycopy(fontHeights, 0, newFontHeights, 0, index);
System.arraycopy(fontHeights, index + 1, newFontHeights, index, columnCount - index);
fontHeights = newFontHeights;
}
if (index == 0) {
// $NON-NLS-1$
super.setText(texts[0] != null ? texts[0] : "");
texts[0] = null;
super.setImage(images[0]);
images[0] = null;
/*
* The new first column may not have as much width available to it as it did when it was
* the second column if checkboxes are being shown, so recompute its displayText if needed.
*/
if ((parent.getStyle() & SWT.CHECK) != 0) {
GC gc = new GC(parent);
gc.setFont(getFont(0, false));
computeDisplayText(0, gc);
gc.dispose();
}
}
if (columnCount < 2) {
texts = null;
images = null;
}
}
use of org.eclipse.swt.accessibility.Accessible in project eclipse.platform.swt by eclipse.
the class ControlsWithAccessibleNamesExample method main.
public static void main(String[] args) {
display = new Display();
shell = new Shell(display);
shell.setLayout(new GridLayout(4, true));
shell.setText("Override Accessibility Test");
largeImage = new Image(display, ControlsWithAccessibleNamesExample.class.getResourceAsStream("run_wiz.gif"));
smallImage = new Image(display, ControlsWithAccessibleNamesExample.class.getResourceAsStream("run.gif"));
ImageData source = smallImage.getImageData();
ImageData mask = source.getTransparencyMask();
transparentImage = new Image(display, source, mask);
new Label(shell, SWT.NONE).setText("Use Platform Name");
new Label(shell, SWT.NONE).setText("Override Platform Name");
new Label(shell, SWT.NONE).setText("Use Platform Name");
new Label(shell, SWT.NONE).setText("Override Platform Name");
AccessibleAdapter overrideAccessibleAdapter = new AccessibleAdapter() {
@Override
public void getName(AccessibleEvent e) {
Control control = ((Accessible) e.getSource()).getControl();
if (e.childID == ACC.CHILDID_SELF) {
e.result = "Overriding Platform Name For " + control.getData("name") + " (was " + e.result + ")";
} else {
e.result = "Overriding Platform Name For " + control.getData("child") + ": " + e.childID + " (was " + e.result + ")";
}
}
@Override
public void getHelp(AccessibleEvent e) {
Control control = ((Accessible) e.getSource()).getControl();
if (e.childID == ACC.CHILDID_SELF) {
e.result = "Overriding Platform Help For " + control.getData("name") + " (was " + e.result + ")";
} else {
e.result = "Overriding Platform Help For " + control.getData("child") + ": " + e.childID + " (was " + e.result + ")";
}
}
};
// Shell shell;
shell.setData("name", "Shell");
shell.getAccessible().addAccessibleListener(overrideAccessibleAdapter);
// Label label, overrideLabel;
label = new Label(shell, SWT.BORDER);
label.setText("Label");
label.setToolTipText("Label ToolTip");
overrideLabel = new Label(shell, SWT.BORDER);
overrideLabel.setText("Label");
overrideLabel.setToolTipText("Label ToolTip");
overrideLabel.setData("name", "Label");
overrideLabel.getAccessible().addAccessibleListener(overrideAccessibleAdapter);
// Label imageLabel, overrideImageLabel;
imageLabel = new Label(shell, SWT.BORDER);
imageLabel.setImage(largeImage);
imageLabel.setToolTipText("Image Label ToolTip");
overrideImageLabel = new Label(shell, SWT.BORDER);
overrideImageLabel.setImage(largeImage);
overrideImageLabel.setToolTipText("Image Label ToolTip");
overrideImageLabel.setData("name", "Image Label");
overrideImageLabel.getAccessible().addAccessibleListener(overrideAccessibleAdapter);
// Button button, overrideButton;
button = new Button(shell, SWT.PUSH);
button.setText("Button");
button.setToolTipText("Button ToolTip");
overrideButton = new Button(shell, SWT.PUSH);
overrideButton.setText("Button");
overrideButton.setToolTipText("Button ToolTip");
overrideButton.setData("name", "Button");
overrideButton.getAccessible().addAccessibleListener(overrideAccessibleAdapter);
// Button imageButton, overrideImageButton;
imageButton = new Button(shell, SWT.PUSH);
imageButton.setImage(smallImage);
imageButton.setToolTipText("Image Button ToolTip");
overrideImageButton = new Button(shell, SWT.PUSH);
overrideImageButton.setImage(smallImage);
overrideImageButton.setToolTipText("Image Button ToolTip");
overrideImageButton.setData("name", "Image Button");
overrideImageButton.getAccessible().addAccessibleListener(overrideAccessibleAdapter);
// Combo combo, overrideCombo;
combo = new Combo(shell, SWT.BORDER);
for (int i = 0; i < 5; i++) {
combo.add("item" + i);
}
combo.setText("Combo");
combo.setToolTipText("Combo ToolTip");
overrideCombo = new Combo(shell, SWT.BORDER);
for (int i = 0; i < 5; i++) {
overrideCombo.add("item" + i);
}
overrideCombo.setText("Combo");
overrideCombo.setToolTipText("Combo ToolTip");
overrideCombo.setData("name", "Combo");
overrideCombo.getAccessible().addAccessibleListener(overrideAccessibleAdapter);
// Spinner spinner, overrideSpinner;
spinner = new Spinner(shell, SWT.BORDER);
spinner.setSelection(5);
spinner.setToolTipText("Spinner ToolTip");
overrideSpinner = new Spinner(shell, SWT.BORDER);
overrideSpinner.setSelection(5);
overrideSpinner.setToolTipText("Spinner ToolTip");
overrideSpinner.setData("name", "Spinner");
overrideSpinner.getAccessible().addAccessibleListener(overrideAccessibleAdapter);
// Text text, overrideText;
text = new Text(shell, SWT.SINGLE | SWT.BORDER);
text.setText("Contents of single-line Text");
overrideText = new Text(shell, SWT.SINGLE | SWT.BORDER);
overrideText.setText("Contents of single-line Text");
overrideText.setData("name", "Text");
overrideText.getAccessible().addAccessibleListener(overrideAccessibleAdapter);
// Text multiLineText, overrideMultiLineText;
multiLineText = new Text(shell, SWT.MULTI | SWT.BORDER);
multiLineText.setText("Contents of multi-line Text\nLine 2\nLine 3\nLine 4");
overrideMultiLineText = new Text(shell, SWT.MULTI | SWT.BORDER);
overrideMultiLineText.setText("Contents of multi-line Text\nLine 2\nLine 3\nLine 4");
overrideMultiLineText.setData("name", "MultiLineText");
overrideMultiLineText.getAccessible().addAccessibleListener(overrideAccessibleAdapter);
// List list, overrideList;
list = new List(shell, SWT.SINGLE | SWT.BORDER);
list.setItems("Item0", "Item1", "Item2");
overrideList = new List(shell, SWT.SINGLE | SWT.BORDER);
overrideList.setItems("Item0", "Item1", "Item2");
overrideList.setData("name", "List");
overrideList.setData("child", "List Item");
overrideList.getAccessible().addAccessibleListener(overrideAccessibleAdapter);
// Table table, overrideTable;
table = new Table(shell, SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION);
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.pack();
}
for (int row = 0; row < 3; row++) {
TableItem item = new TableItem(table, SWT.NONE);
item.setText(new String[] { "C0R" + row, "C1R" + row, "C2R" + row });
}
overrideTable = new Table(shell, SWT.BORDER | SWT.MULTI | SWT.FULL_SELECTION);
overrideTable.setHeaderVisible(true);
overrideTable.setLinesVisible(true);
for (int col = 0; col < 3; col++) {
TableColumn column = new TableColumn(overrideTable, SWT.NONE);
column.setText("Col " + col);
column.pack();
}
for (int row = 0; row < 3; row++) {
TableItem item = new TableItem(overrideTable, SWT.NONE);
item.setText(new String[] { "C0R" + row, "C1R" + row, "C2R" + row });
}
overrideTable.setData("name", "Table");
overrideTable.setData("child", "Table Item");
overrideTable.getAccessible().addAccessibleListener(overrideAccessibleAdapter);
// Tree tree, overrideTree;
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);
}
}
overrideTree = new Tree(shell, SWT.BORDER | SWT.MULTI);
for (int i = 0; i < 3; i++) {
TreeItem item = new TreeItem(overrideTree, SWT.NONE);
item.setText("Item" + i);
for (int j = 0; j < 4; j++) {
new TreeItem(item, SWT.NONE).setText("Item" + i + j);
}
}
overrideTree.setData("name", "Tree");
overrideTree.setData("child", "Tree Item");
overrideTree.getAccessible().addAccessibleListener(overrideAccessibleAdapter);
// Tree treeTable, overrideTreeTable;
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.pack();
}
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" });
}
}
overrideTreeTable = new Tree(shell, SWT.BORDER | SWT.MULTI);
overrideTreeTable.setHeaderVisible(true);
overrideTreeTable.setLinesVisible(true);
for (int col = 0; col < 3; col++) {
TreeColumn column = new TreeColumn(overrideTreeTable, SWT.NONE);
column.setText("Col " + col);
column.pack();
}
for (int i = 0; i < 3; i++) {
TreeItem item = new TreeItem(overrideTreeTable, 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" });
}
}
overrideTreeTable.setData("name", "Tree Table");
overrideTreeTable.setData("child", "Tree Table Item");
overrideTreeTable.getAccessible().addAccessibleListener(overrideAccessibleAdapter);
// ToolBar toolBar, overrideToolBar;
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);
}
overrideToolBar = new ToolBar(shell, SWT.FLAT);
for (int i = 0; i < 3; i++) {
ToolItem item = new ToolItem(overrideToolBar, SWT.PUSH);
item.setText("Item" + i);
item.setToolTipText("ToolItem ToolTip" + i);
}
overrideToolBar.setData("name", "ToolBar");
overrideToolBar.setData("child", "ToolBar Item");
overrideToolBar.getAccessible().addAccessibleListener(overrideAccessibleAdapter);
// ToolBar imageToolBar, overrideImageToolBar;
imageToolBar = new ToolBar(shell, SWT.FLAT);
for (int i = 0; i < 3; i++) {
ToolItem item = new ToolItem(imageToolBar, SWT.PUSH);
item.setImage(transparentImage);
item.setToolTipText("Image ToolItem ToolTip" + i);
}
overrideImageToolBar = new ToolBar(shell, SWT.FLAT);
for (int i = 0; i < 3; i++) {
ToolItem item = new ToolItem(overrideImageToolBar, SWT.PUSH);
item.setImage(transparentImage);
item.setToolTipText("Image ToolItem ToolTip" + i);
}
overrideImageToolBar.setData("name", "Image ToolBar");
overrideImageToolBar.setData("child", "Image ToolBar Item");
overrideImageToolBar.getAccessible().addAccessibleListener(overrideAccessibleAdapter);
// CoolBar coolBar, overrideCoolBar;
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("I" + 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);
}
overrideCoolBar = new CoolBar(shell, SWT.FLAT);
for (int i = 0; i < 2; i++) {
CoolItem coolItem = new CoolItem(overrideCoolBar, SWT.PUSH);
ToolBar coolItemToolBar = new ToolBar(overrideCoolBar, SWT.FLAT);
int toolItemWidth = 0;
for (int j = 0; j < 2; j++) {
ToolItem item = new ToolItem(coolItemToolBar, SWT.PUSH);
item.setText("I" + 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);
}
overrideCoolBar.setData("name", "CoolBar");
overrideCoolBar.setData("child", "CoolBar Item");
overrideCoolBar.getAccessible().addAccessibleListener(overrideAccessibleAdapter);
// Canvas canvas, overrideCanvas;
canvas = new Canvas(shell, SWT.BORDER);
canvas.addPaintListener(e -> e.gc.drawString("Canvas", 15, 25));
/* Set a caret into the canvas so that it will take focus. */
Caret caret = new Caret(canvas, SWT.NONE);
caret.setBounds(15, 25, 2, 20);
canvas.setCaret(caret);
/* Hook key listener so canvas will take focus during traversal in. */
canvas.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
e.doit = true;
}
@Override
public void keyReleased(KeyEvent e) {
e.doit = true;
}
});
/* Hook traverse listener to make canvas give up focus during traversal out. */
canvas.addTraverseListener(e -> e.doit = true);
overrideCanvas = new Canvas(shell, SWT.BORDER);
overrideCanvas.addPaintListener(e -> e.gc.drawString("Canvas", 15, 25));
/* Set a caret into the canvas so that it will take focus. */
caret = new Caret(overrideCanvas, SWT.NONE);
caret.setBounds(15, 25, 2, 20);
overrideCanvas.setCaret(caret);
/* Hook key listener so canvas will take focus during traversal in. */
overrideCanvas.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
e.doit = true;
}
@Override
public void keyReleased(KeyEvent e) {
e.doit = true;
}
});
/* Hook traverse listener to make canvas give up focus during traversal out. */
overrideCanvas.addTraverseListener(e -> e.doit = true);
overrideCanvas.setData("name", "Canvas");
overrideCanvas.getAccessible().addAccessibleListener(overrideAccessibleAdapter);
// Composite composite, overrideComposite;
composite = new Composite(shell, SWT.BORDER);
composite.setLayout(new GridLayout());
new Button(composite, SWT.RADIO).setText("Child 1");
new Button(composite, SWT.RADIO).setText("Child 2");
overrideComposite = new Composite(shell, SWT.BORDER);
overrideComposite.setLayout(new GridLayout());
new Button(overrideComposite, SWT.RADIO).setText("Child 1");
new Button(overrideComposite, SWT.RADIO).setText("Child 2");
overrideComposite.setData("name", "Composite");
overrideComposite.getAccessible().addAccessibleListener(overrideAccessibleAdapter);
// Group group, overrideGroup;
group = new Group(shell, SWT.NONE);
group.setText("Group");
group.setLayout(new FillLayout());
new Text(group, SWT.SINGLE).setText("Text in Group");
overrideGroup = new Group(shell, SWT.NONE);
overrideGroup.setText("Group");
overrideGroup.setLayout(new FillLayout());
new Text(overrideGroup, SWT.SINGLE).setText("Text in Group");
overrideGroup.setData("name", "Group");
overrideGroup.getAccessible().addAccessibleListener(overrideAccessibleAdapter);
// TabFolder tabFolder, overrideTabFolder;
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.MULTI | SWT.BORDER);
itemText.setText("\nText for TabItem " + i + "\n\n");
item.setControl(itemText);
}
overrideTabFolder = new TabFolder(shell, SWT.NONE);
for (int i = 0; i < 3; i++) {
TabItem item = new TabItem(overrideTabFolder, SWT.NONE);
item.setText("TabItem &" + i);
item.setToolTipText("TabItem ToolTip" + i);
Text itemText = new Text(overrideTabFolder, SWT.MULTI | SWT.BORDER);
itemText.setText("\nText for TabItem " + i + "\n\n");
item.setControl(itemText);
}
overrideTabFolder.setData("name", "TabFolder");
overrideTabFolder.setData("child", "TabItem");
overrideTabFolder.getAccessible().addAccessibleListener(overrideAccessibleAdapter);
// CLabel cLabel, overrideCLabel;
cLabel = new CLabel(shell, SWT.BORDER);
cLabel.setText("CLabel");
cLabel.setToolTipText("CLabel ToolTip");
cLabel.setLayoutData(new GridData(100, SWT.DEFAULT));
overrideCLabel = new CLabel(shell, SWT.BORDER);
overrideCLabel.setText("CLabel");
overrideCLabel.setToolTipText("CLabel ToolTip");
overrideCLabel.setLayoutData(new GridData(100, SWT.DEFAULT));
overrideCLabel.setData("name", "CLabel");
overrideCLabel.getAccessible().addAccessibleListener(overrideAccessibleAdapter);
// CCombo cCombo, overrideCCombo;
cCombo = new CCombo(shell, SWT.BORDER);
for (int i = 0; i < 5; i++) {
cCombo.add("item" + i);
}
cCombo.setText("CCombo");
cCombo.setToolTipText("CCombo ToolTip");
// Note: This doesn't work well because CCombo has Control children
overrideCCombo = new CCombo(shell, SWT.BORDER);
for (int i = 0; i < 5; i++) {
overrideCCombo.add("item" + i);
}
overrideCCombo.setText("CCombo");
overrideCCombo.setToolTipText("CCombo ToolTip");
overrideCCombo.setData("name", "CCombo");
overrideCCombo.getAccessible().addAccessibleListener(overrideAccessibleAdapter);
// CTabFolder cTabFolder, overrideCTabFolder;
cTabFolder = new CTabFolder(shell, SWT.NONE);
for (int i = 0; i < 3; i++) {
CTabItem item = new CTabItem(cTabFolder, SWT.NONE);
item.setText("CTabItem &" + i);
item.setToolTipText("TabItem ToolTip" + i);
Text itemText = new Text(cTabFolder, SWT.MULTI | SWT.BORDER);
itemText.setText("\nText for CTabItem " + i + "\n\n");
item.setControl(itemText);
}
cTabFolder.setSelection(cTabFolder.getItem(0));
overrideCTabFolder = new CTabFolder(shell, SWT.NONE);
for (int i = 0; i < 3; i++) {
CTabItem item = new CTabItem(overrideCTabFolder, SWT.NONE);
item.setText("CTabItem &" + i);
item.setToolTipText("TabItem ToolTip" + i);
Text itemText = new Text(overrideCTabFolder, SWT.MULTI | SWT.BORDER);
itemText.setText("\nText for CTabItem " + i + "\n\n");
item.setControl(itemText);
}
overrideCTabFolder.setSelection(overrideCTabFolder.getItem(0));
overrideCTabFolder.setData("name", "CTabFolder");
overrideCTabFolder.setData("child", "CTabItem");
overrideCTabFolder.getAccessible().addAccessibleListener(overrideAccessibleAdapter);
// StyledText styledText, overrideStyledText;
styledText = new StyledText(shell, SWT.SINGLE | SWT.BORDER);
styledText.setText("Contents of single-line StyledText");
overrideStyledText = new StyledText(shell, SWT.SINGLE | SWT.BORDER);
overrideStyledText.setText("Contents of single-line StyledText");
overrideStyledText.setData("name", "StyledText");
overrideStyledText.getAccessible().addAccessibleListener(overrideAccessibleAdapter);
// StyledText multiLineStyledText, overrideMultiLineStyledText;
multiLineStyledText = new StyledText(shell, SWT.MULTI | SWT.BORDER);
multiLineStyledText.setText("Contents of multi-line StyledText\nLine 2\nLine 3\nLine 4");
overrideMultiLineStyledText = new StyledText(shell, SWT.MULTI | SWT.BORDER);
overrideMultiLineStyledText.setText("Contents of multi-line StyledText\nLine 2\nLine 3\nLine 4");
overrideMultiLineStyledText.setData("name", "MultiLineStyledText");
overrideMultiLineStyledText.getAccessible().addAccessibleListener(overrideAccessibleAdapter);
// Scale scale, overrideScale;
scale = new Scale(shell, SWT.NONE);
scale.setToolTipText("Scale ToolTip");
overrideScale = new Scale(shell, SWT.NONE);
overrideScale.setToolTipText("Scale ToolTip");
overrideScale.setData("name", "Scale");
overrideScale.getAccessible().addAccessibleListener(overrideAccessibleAdapter);
// Slider slider, overrideSlider;
slider = new Slider(shell, SWT.NONE);
slider.setToolTipText("Slider ToolTip");
overrideSlider = new Slider(shell, SWT.NONE);
overrideSlider.setToolTipText("Slider ToolTip");
overrideSlider.setData("name", "Slider");
overrideSlider.getAccessible().addAccessibleListener(overrideAccessibleAdapter);
// ProgressBar progressBar, overrideProgressBar;
if (!SWT.getPlatform().equals("cocoa")) {
progressBar = new ProgressBar(shell, SWT.NONE);
progressBar.setSelection(50);
progressBar.setToolTipText("ProgressBar ToolTip");
overrideProgressBar = new ProgressBar(shell, SWT.NONE);
overrideProgressBar.setSelection(50);
overrideProgressBar.setToolTipText("ProgressBar ToolTip");
overrideProgressBar.setData("name", "ProgressBar");
overrideProgressBar.getAccessible().addAccessibleListener(overrideAccessibleAdapter);
}
// Sash sash, overrideSash;
sash = new Sash(shell, SWT.BORDER);
sash.setToolTipText("Sash ToolTip");
overrideSash = new Sash(shell, SWT.BORDER);
overrideSash.setToolTipText("Sash ToolTip");
overrideSash.setData("name", "Sash");
overrideSash.getAccessible().addAccessibleListener(overrideAccessibleAdapter);
// Link link, overrideLink;
link = new Link(shell, SWT.NONE);
link.setText("<a>This is a link</a>");
link.setToolTipText("Link ToolTip");
overrideLink = new Link(shell, SWT.NONE);
overrideLink.setText("<a>This is a link</a>");
overrideLink.setToolTipText("Link ToolTip");
overrideLink.setData("name", "Link");
overrideLink.getAccessible().addAccessibleListener(overrideAccessibleAdapter);
shell.pack();
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
largeImage.dispose();
smallImage.dispose();
transparentImage.dispose();
display.dispose();
}
use of org.eclipse.swt.accessibility.Accessible in project eclipse.platform.swt by eclipse.
the class AccessibleActionExample method main.
public static void main(String[] args) {
Display display = new Display();
Shell shell = new Shell(display);
shell.setLayout(new FillLayout());
shell.setText("Accessible Action Example");
Button button = new Button(shell, SWT.PUSH);
button.setText("Button");
final Canvas customButton = new Canvas(shell, SWT.NONE) {
@Override
public Point computeSize(int wHint, int hHint, boolean changed) {
GC gc = new GC(this);
Point point = gc.stringExtent(buttonText);
gc.dispose();
point.x += MARGIN;
point.y += MARGIN;
return point;
}
};
customButton.addPaintListener(e -> {
Rectangle clientArea = customButton.getClientArea();
Point stringExtent = e.gc.stringExtent(buttonText);
int x = clientArea.x + (clientArea.width - stringExtent.x) / 2;
int y = clientArea.y + (clientArea.height - stringExtent.y) / 2;
e.gc.drawString(buttonText, x, y);
});
customButton.addMouseListener(MouseListener.mouseDownAdapter(e -> {
int actionIndex = (e.button == 1) ? 0 : 1;
customButtonAction(actionIndex);
}));
customButton.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
int modifierKeys = e.stateMask & SWT.MODIFIER_MASK;
if (modifierKeys == SWT.CTRL || modifierKeys == 0) {
if (e.character == '1')
customButtonAction(0);
else if (e.character == '2')
customButtonAction(1);
}
}
});
Accessible accessible = customButton.getAccessible();
accessible.addAccessibleListener(new AccessibleAdapter() {
@Override
public void getName(AccessibleEvent e) {
e.result = buttonText;
}
@Override
public void getKeyboardShortcut(AccessibleEvent e) {
// default action is 'action 1'
e.result = "CTRL+1";
}
});
accessible.addAccessibleControlListener(new AccessibleControlAdapter() {
@Override
public void getRole(AccessibleControlEvent e) {
e.detail = ACC.ROLE_PUSHBUTTON;
}
});
accessible.addAccessibleActionListener(new AccessibleActionAdapter() {
@Override
public void getActionCount(AccessibleActionEvent e) {
e.count = 2;
}
@Override
public void getName(AccessibleActionEvent e) {
if (0 <= e.index && e.index <= 1) {
if (e.localized) {
e.result = AccessibleActionExample.getResourceString("action" + e.index);
} else {
// $NON-NLS-1$
e.result = "Action" + e.index;
}
}
}
@Override
public void getDescription(AccessibleActionEvent e) {
if (0 <= e.index && e.index <= 1) {
e.result = AccessibleActionExample.getResourceString("action" + e.index + "description");
}
}
@Override
public void doAction(AccessibleActionEvent e) {
if (0 <= e.index && e.index <= 1) {
customButtonAction(e.index);
e.result = ACC.OK;
}
}
@Override
public void getKeyBinding(AccessibleActionEvent e) {
switch(e.index) {
case 0:
e.result = "1;CTRL+1";
break;
case 1:
e.result = "2;CTRL+2";
break;
default:
e.result = null;
}
}
});
shell.pack();
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch())
display.sleep();
}
display.dispose();
}
Aggregations