blob: 657e593c1909d9f300f03973f43baa142300e399 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2009 Matthew Hall 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:
* Matthew Hall - initial API and implementation (bug 262946)
* Matthew Hall - bug 213893
******************************************************************************/
package org.eclipse.jface.tests.databinding.swt;
import org.eclipse.core.databinding.observable.value.IObservableValue;
import org.eclipse.jface.databinding.conformance.util.RealmTester;
import org.eclipse.jface.databinding.swt.SWTObservables;
import org.eclipse.jface.databinding.swt.WidgetProperties;
import org.eclipse.jface.tests.databinding.AbstractSWTTestCase;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.CLabel;
import org.eclipse.swt.custom.CTabFolder;
import org.eclipse.swt.custom.CTabItem;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
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.ToolBar;
import org.eclipse.swt.widgets.ToolItem;
import org.eclipse.swt.widgets.Tray;
import org.eclipse.swt.widgets.TrayItem;
import org.eclipse.swt.widgets.Tree;
import org.eclipse.swt.widgets.TreeColumn;
/**
* @since 3.2
*
*/
public class WidgetPropertiesTest extends AbstractSWTTestCase {
private Shell shell;
private String string1;
private String string2;
private Image image1;
private Image image2;
protected void setUp() throws Exception {
super.setUp();
shell = getShell();
string1 = "1";
string2 = "2";
image1 = shell.getDisplay().getSystemImage(SWT.ICON_WARNING);
image2 = shell.getDisplay().getSystemImage(SWT.ICON_ERROR);
RealmTester.setDefault(SWTObservables.getRealm(shell.getDisplay()));
}
protected void tearDown() throws Exception {
super.tearDown();
RealmTester.setDefault(null);
}
public void testImage_ObserveButton() {
Button button = /* who's got the */new Button(shell, SWT.PUSH);
button.setImage(image1);
IObservableValue observable = WidgetProperties.image().observe(button);
assertSame(image1, observable.getValue());
observable.setValue(image2);
assertSame(image2, button.getImage());
}
public void testImage_ObserveCLabel() {
CLabel label = new CLabel(shell, SWT.NONE);
label.setImage(image1);
IObservableValue observable = WidgetProperties.image().observe(label);
assertSame(image1, observable.getValue());
observable.setValue(image2);
assertSame(image2, label.getImage());
}
public void testImage_ObserveLabel() {
Label label = new Label(shell, SWT.NONE);
label.setImage(image1);
IObservableValue observable = WidgetProperties.image().observe(label);
assertSame(image1, observable.getValue());
observable.setValue(image2);
assertSame(image2, label.getImage());
}
public void testText_ObserveButton() {
Button button = /* who's got a */new Button(shell, SWT.PUSH);
button.setText(string1);
IObservableValue observable = WidgetProperties.text().observe(button);
assertEquals(string1, observable.getValue());
observable.setValue(string2);
assertEquals(string2, button.getText());
}
public void testTooltipText_ObserveCTabItem() {
CTabFolder tf = new CTabFolder(shell, SWT.NONE);
CTabItem item = new CTabItem(tf, SWT.NONE);
item.setToolTipText(string1);
IObservableValue observable = WidgetProperties.tooltipText().observe(
item);
assertEquals(string1, observable.getValue());
observable.setValue(string2);
assertEquals(string2, item.getToolTipText());
}
public void testTooltipText_ObserveControl() {
Control control = new Label(shell, SWT.NONE);
control.setToolTipText(string1);
IObservableValue observable = WidgetProperties.tooltipText().observe(
control);
assertEquals(string1, observable.getValue());
observable.setValue(string2);
assertEquals(string2, control.getToolTipText());
}
public void testTooltipText_ObserveTabItem() {
TabFolder tf = new TabFolder(shell, SWT.NONE);
TabItem item = new TabItem(tf, SWT.NONE);
item.setToolTipText(string1);
IObservableValue observable = WidgetProperties.tooltipText().observe(
item);
assertEquals(string1, observable.getValue());
observable.setValue(string2);
assertEquals(string2, item.getToolTipText());
}
public void testTooltipText_ObserveTableColumn() {
Table table = new Table(shell, SWT.NONE);
TableColumn column = new TableColumn(table, SWT.NONE);
column.setToolTipText(string1);
IObservableValue observable = WidgetProperties.tooltipText().observe(
column);
assertEquals(string1, observable.getValue());
observable.setValue(string2);
assertEquals(string2, column.getToolTipText());
}
public void testTooltipText_ObserveToolItem() {
ToolBar bar = new ToolBar(shell, SWT.NONE);
ToolItem item = new ToolItem(bar, SWT.NONE);
item.setToolTipText(string1);
IObservableValue observable = WidgetProperties.tooltipText().observe(
item);
assertEquals(string1, observable.getValue());
observable.setValue(string2);
assertEquals(string2, item.getToolTipText());
}
public void testTooltipText_ObserveTrayItem() {
Tray tray = shell.getDisplay().getSystemTray();
TrayItem item = new TrayItem(tray, SWT.NONE);
try {
item.setToolTipText(string1);
IObservableValue observable = WidgetProperties.tooltipText()
.observe(item);
assertEquals(string1, observable.getValue());
observable.setValue(string2);
assertEquals(string2, item.getToolTipText());
} finally {
item.dispose(); // cleanup
}
}
public void testTooltipText_ObserveTreeColumn() {
Tree tree = new Tree(shell, SWT.NONE);
TreeColumn column = new TreeColumn(tree, SWT.NONE);
column.setToolTipText(string1);
IObservableValue observable = WidgetProperties.tooltipText().observe(
column);
assertEquals(string1, observable.getValue());
observable.setValue(string2);
assertEquals(string2, column.getToolTipText());
}
}