blob: e5cc3f0d4435dc74ae673b65be833c489a6e3935 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2007, 2009, 2011 Brad Reynolds 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:
* Brad Reynolds - initial API and implementation
* Chris Aniszczyk <zx@code9.com> - bug 131435
* Matthew Hall - bugs 248621, 213893, 262320, 169876, 306203
******************************************************************************/
package org.eclipse.jface.tests.databinding.swt;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import org.eclipse.core.databinding.observable.IDecoratingObservable;
import org.eclipse.core.databinding.property.IPropertyObservable;
import org.eclipse.jface.databinding.conformance.util.ChangeEventTracker;
import org.eclipse.jface.databinding.conformance.util.RealmTester;
import org.eclipse.jface.databinding.swt.DisplayRealm;
import org.eclipse.jface.databinding.swt.ISWTObservable;
import org.eclipse.jface.databinding.swt.ISWTObservableList;
import org.eclipse.jface.databinding.swt.ISWTObservableValue;
import org.eclipse.jface.databinding.swt.SWTObservables;
import org.eclipse.jface.databinding.swt.WidgetProperties;
import org.eclipse.jface.internal.databinding.swt.ButtonImageProperty;
import org.eclipse.jface.internal.databinding.swt.ButtonSelectionProperty;
import org.eclipse.jface.internal.databinding.swt.ButtonTextProperty;
import org.eclipse.jface.internal.databinding.swt.CComboEditableProperty;
import org.eclipse.jface.internal.databinding.swt.CComboItemsProperty;
import org.eclipse.jface.internal.databinding.swt.CComboSelectionProperty;
import org.eclipse.jface.internal.databinding.swt.CComboTextProperty;
import org.eclipse.jface.internal.databinding.swt.CLabelImageProperty;
import org.eclipse.jface.internal.databinding.swt.CLabelTextProperty;
import org.eclipse.jface.internal.databinding.swt.CTabItemTooltipTextProperty;
import org.eclipse.jface.internal.databinding.swt.ComboItemsProperty;
import org.eclipse.jface.internal.databinding.swt.ComboSelectionProperty;
import org.eclipse.jface.internal.databinding.swt.ComboTextProperty;
import org.eclipse.jface.internal.databinding.swt.ControlBackgroundProperty;
import org.eclipse.jface.internal.databinding.swt.ControlForegroundProperty;
import org.eclipse.jface.internal.databinding.swt.ControlTooltipTextProperty;
import org.eclipse.jface.internal.databinding.swt.DateTimeSelectionProperty;
import org.eclipse.jface.internal.databinding.swt.ItemImageProperty;
import org.eclipse.jface.internal.databinding.swt.ItemTextProperty;
import org.eclipse.jface.internal.databinding.swt.LabelImageProperty;
import org.eclipse.jface.internal.databinding.swt.LabelTextProperty;
import org.eclipse.jface.internal.databinding.swt.ListItemsProperty;
import org.eclipse.jface.internal.databinding.swt.ListSelectionProperty;
import org.eclipse.jface.internal.databinding.swt.MenuEnabledProperty;
import org.eclipse.jface.internal.databinding.swt.MenuItemEnabledProperty;
import org.eclipse.jface.internal.databinding.swt.MenuItemSelectionProperty;
import org.eclipse.jface.internal.databinding.swt.ScaleMaximumProperty;
import org.eclipse.jface.internal.databinding.swt.ScaleMinimumProperty;
import org.eclipse.jface.internal.databinding.swt.ScaleSelectionProperty;
import org.eclipse.jface.internal.databinding.swt.ScrollBarEnabledProperty;
import org.eclipse.jface.internal.databinding.swt.SpinnerMaximumProperty;
import org.eclipse.jface.internal.databinding.swt.SpinnerMinimumProperty;
import org.eclipse.jface.internal.databinding.swt.SpinnerSelectionProperty;
import org.eclipse.jface.internal.databinding.swt.StyledTextEditableProperty;
import org.eclipse.jface.internal.databinding.swt.StyledTextTextProperty;
import org.eclipse.jface.internal.databinding.swt.TableSingleSelectionIndexProperty;
import org.eclipse.jface.internal.databinding.swt.TextEditableProperty;
import org.eclipse.jface.internal.databinding.swt.TextTextProperty;
import org.eclipse.jface.internal.databinding.swt.ToolItemEnabledProperty;
import org.eclipse.jface.tests.databinding.AbstractSWTTestCase;
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.graphics.Color;
import org.eclipse.swt.graphics.Font;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Combo;
import org.eclipse.swt.widgets.DateTime;
import org.eclipse.swt.widgets.Item;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.List;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
import org.eclipse.swt.widgets.Scale;
import org.eclipse.swt.widgets.ScrollBar;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Spinner;
import org.eclipse.swt.widgets.Table;
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.ToolTip;
import org.eclipse.swt.widgets.Tree;
import org.eclipse.swt.widgets.Widget;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
/**
* @since 1.1
*/
public class SWTObservablesTest extends AbstractSWTTestCase {
private Shell shell;
@Before
public void setUp() throws Exception {
super.setUp();
shell = getShell();
RealmTester.setDefault(DisplayRealm.getRealm(shell.getDisplay()));
}
@After
public void tearDown() throws Exception {
super.tearDown();
RealmTester.setDefault(null);
}
@Override
protected Shell createShell() {
return new Shell(SWT.V_SCROLL);
}
@Test
public void testObserveForeground() throws Exception {
ISWTObservableValue value = SWTObservables.observeForeground(shell);
assertWidgetObservable(value, shell, ControlForegroundProperty.class);
assertEquals(Color.class, value.getValueType());
}
@Test
public void testObserveBackground() throws Exception {
ISWTObservableValue value = SWTObservables.observeBackground(shell);
assertWidgetObservable(value, shell, ControlBackgroundProperty.class);
assertEquals(Color.class, value.getValueType());
}
@Test
public void testObserveFont() throws Exception {
ISWTObservableValue value = SWTObservables.observeFont(shell);
assertNotNull(value);
assertEquals(Font.class, value.getValueType());
}
@Test
public void testObserveSelectionOfSpinner() throws Exception {
Spinner spinner = new Spinner(shell, SWT.NONE);
ISWTObservableValue value = SWTObservables.observeSelection(spinner);
assertWidgetObservable(value, spinner, SpinnerSelectionProperty.class);
}
@Test
public void testObserveSelectionOfButton() throws Exception {
Button button = new Button(shell, SWT.PUSH);
ISWTObservableValue value = SWTObservables.observeSelection(button);
assertWidgetObservable(value, button, ButtonSelectionProperty.class);
}
@Test
public void testObserveSelectionOfCombo() throws Exception {
Combo combo = new Combo(shell, SWT.NONE);
ISWTObservableValue value = SWTObservables.observeSelection(combo);
assertWidgetObservable(value, combo, ComboSelectionProperty.class);
}
@Test
public void testObserveSelectionOfCCombo() throws Exception {
CCombo combo = new CCombo(shell, SWT.NONE);
ISWTObservableValue value = SWTObservables.observeSelection(combo);
assertWidgetObservable(value, combo, CComboSelectionProperty.class);
}
@Test
public void testObserveSelectionOfDateTime_Date() throws Exception {
DateTime dateTime = new DateTime(shell, SWT.DATE);
ISWTObservableValue value = SWTObservables.observeSelection(dateTime);
assertWidgetObservable(value, dateTime, DateTimeSelectionProperty.class);
}
@Test
public void testObserveSelectionOfDateTime_Calendar() throws Exception {
DateTime dateTime = new DateTime(shell, SWT.CALENDAR);
ISWTObservableValue value = SWTObservables.observeSelection(dateTime);
assertWidgetObservable(value, dateTime, DateTimeSelectionProperty.class);
}
@Test
public void testObserveSelectionOfDateTime_Time() throws Exception {
DateTime dateTime = new DateTime(shell, SWT.TIME);
ISWTObservableValue value = SWTObservables.observeSelection(dateTime);
assertWidgetObservable(value, dateTime, DateTimeSelectionProperty.class);
}
@Test
public void testObserveSelectionOfList() throws Exception {
List list = new List(shell, SWT.NONE);
ISWTObservableValue value = SWTObservables.observeSelection(list);
assertWidgetObservable(value, list, ListSelectionProperty.class);
}
@Test
public void testObserveSelectionOfScale() throws Exception {
Scale scale = new Scale(shell, SWT.NONE);
ISWTObservableValue value = SWTObservables.observeSelection(scale);
assertWidgetObservable(value, scale, ScaleSelectionProperty.class);
}
@Test
public void testObserveSelectionOfUnsupportedControl() throws Exception {
try {
Text text = new Text(shell, SWT.NONE);
SWTObservables.observeSelection(text);
fail("Exception should have been thrown");
} catch (IllegalArgumentException e) {
}
}
@Test
public void testObserveTextWithEventOfText() throws Exception {
Text text = new Text(shell, SWT.NONE);
assertFalse(text.isListening(SWT.FocusOut));
ISWTObservableValue value = SWTObservables.observeText(text,
SWT.FocusOut);
assertWidgetObservable(value, text, TextTextProperty.class);
assertFalse(text.isListening(SWT.FocusOut));
ChangeEventTracker.observe(value);
assertTrue(text.isListening(SWT.FocusOut));
}
@Test
public void testObserveTextOfStyledText() throws Exception {
StyledText text = new StyledText(shell, SWT.NONE);
assertFalse(text.isListening(SWT.FocusOut));
ISWTObservableValue value = SWTObservables.observeText(text,
SWT.FocusOut);
assertWidgetObservable(value, text, StyledTextTextProperty.class);
assertFalse(text.isListening(SWT.FocusOut));
ChangeEventTracker.observe(value);
assertTrue(text.isListening(SWT.FocusOut));
}
@Test
public void testObserveTextWithEventOfUnsupportedControl() throws Exception {
Label label = new Label(shell, SWT.NONE);
try {
SWTObservables.observeText(label, SWT.FocusOut);
fail("Exception should have been thrown");
} catch (Exception e) {
}
}
@Test
public void testObserveTextOfButton() throws Exception {
Button button = new Button(shell, SWT.PUSH);
ISWTObservableValue value = SWTObservables.observeText(button);
assertWidgetObservable(value, button, ButtonTextProperty.class);
}
@Test
public void testObserveTextOfLabel() throws Exception {
Label label = new Label(shell, SWT.NONE);
ISWTObservableValue value = SWTObservables.observeText(label);
assertWidgetObservable(value, label, LabelTextProperty.class);
}
@Test
public void testObserveTextOfCLabel() throws Exception {
CLabel label = new CLabel(shell, SWT.NONE);
ISWTObservableValue value = SWTObservables.observeText(label);
assertWidgetObservable(value, label, CLabelTextProperty.class);
}
@Test
public void testObserveTextOfCombo() throws Exception {
Combo combo = new Combo(shell, SWT.NONE);
ISWTObservableValue value = SWTObservables.observeText(combo);
assertWidgetObservable(value, combo, ComboTextProperty.class);
}
/**
* @param observable
* @return
*/
private IPropertyObservable getPropertyObservable(ISWTObservable observable) {
IDecoratingObservable decoratingObservable = (IDecoratingObservable) observable;
IPropertyObservable propertyObservable = (IPropertyObservable) decoratingObservable
.getDecorated();
return propertyObservable;
}
@Test
public void testObserveTextOfCCombo() throws Exception {
CCombo combo = new CCombo(shell, SWT.NONE);
ISWTObservableValue value = SWTObservables.observeText(combo);
assertWidgetObservable(value, combo, CComboTextProperty.class);
}
@Test
public void testObserveTextOfText() throws Exception {
Text text = new Text(shell, SWT.NONE);
ISWTObservableValue value = SWTObservables.observeText(text);
assertWidgetObservable(value, text, TextTextProperty.class);
assertFalse(text.isListening(SWT.Modify));
assertFalse(text.isListening(SWT.FocusOut));
}
@Test
public void testObserveTextOfItem() throws Exception {
CTabFolder ctf = new CTabFolder(shell, SWT.NONE);
Item item = new CTabItem(ctf, SWT.NONE);
ISWTObservableValue value = SWTObservables.observeText(item);
assertWidgetObservable(value, item, ItemTextProperty.class);
}
@Test
public void testObserveTextOfUnsupportedControl() throws Exception {
Table table = new Table(shell, SWT.NONE);
try {
SWTObservables.observeText(table);
fail("Exception should have been thrown");
} catch (IllegalArgumentException e) {
}
}
@Test
public void testObserveImageOfButton() throws Exception {
Button button = new Button(shell, SWT.PUSH);
ISWTObservableValue value = SWTObservables.observeImage(button);
assertWidgetObservable(value, button, ButtonImageProperty.class);
}
@Test
public void testObserveImageOfCLabel() throws Exception {
CLabel cLabel = new CLabel(shell, SWT.NONE);
ISWTObservableValue value = SWTObservables.observeImage(cLabel);
assertWidgetObservable(value, cLabel, CLabelImageProperty.class);
}
@Test
public void testObserveImageOfItem() throws Exception {
CTabFolder ctf = new CTabFolder(shell, SWT.NONE);
Item item = new CTabItem(ctf, SWT.NONE);
ISWTObservableValue value = SWTObservables.observeImage(item);
assertWidgetObservable(value, item, ItemImageProperty.class);
}
@Test
public void testObserveImageOfLabel() throws Exception {
Label label = new Label(shell, SWT.NONE);
ISWTObservableValue value = SWTObservables.observeImage(label);
assertWidgetObservable(value, label, LabelImageProperty.class);
}
@Test
public void testObserveTooltipOfItem() throws Exception {
CTabFolder ctf = new CTabFolder(shell, SWT.NONE);
Item item = new CTabItem(ctf, SWT.NONE);
ISWTObservableValue value = SWTObservables.observeTooltipText(item);
assertWidgetObservable(value, item, CTabItemTooltipTextProperty.class);
}
@Test
public void testObserveTooltipOfUnsupportedControl() throws Exception {
ToolTip ttip = new ToolTip(shell, SWT.NONE);
try {
SWTObservables.observeTooltipText(ttip);
fail("Exception should have been thrown");
} catch (IllegalArgumentException e) {
}
}
@Test
public void testObserveTooltipOfControl() throws Exception {
Label label = new Label(shell, SWT.NONE);
ISWTObservableValue value = SWTObservables.observeTooltipText(label);
assertWidgetObservable(value, label, ControlTooltipTextProperty.class);
}
@Test
public void testObserveItemsOfCombo() throws Exception {
Combo combo = new Combo(shell, SWT.NONE);
ISWTObservableList list = (ISWTObservableList) SWTObservables
.observeItems(combo);
assertWidgetObservable(list, combo, ComboItemsProperty.class);
}
@Test
public void testObserveItemsOfCCombo() throws Exception {
CCombo ccombo = new CCombo(shell, SWT.NONE);
ISWTObservableList list = (ISWTObservableList) SWTObservables
.observeItems(ccombo);
assertWidgetObservable(list, ccombo, CComboItemsProperty.class);
}
@Test
public void testObserveItemsOfList() throws Exception {
List list = new List(shell, SWT.NONE);
ISWTObservableList observableList = (ISWTObservableList) SWTObservables
.observeItems(list);
assertWidgetObservable(observableList, list, ListItemsProperty.class);
}
@Test
public void testObserveItemsOfUnsupportedControl() throws Exception {
Table table = new Table(shell, SWT.NONE);
try {
SWTObservables.observeItems(table);
fail("Exception should have been thrown");
} catch (IllegalArgumentException e) {
}
}
@Test
public void testObserveSingleSelectionIndexOfTable() throws Exception {
Table table = new Table(shell, SWT.NONE);
ISWTObservableValue value = SWTObservables
.observeSingleSelectionIndex(table);
assertWidgetObservable(value, table,
TableSingleSelectionIndexProperty.class);
}
@Test
public void testObserveSingleSelectionIndexOfCCombo_DeselectAll()
throws Exception {
CCombo cCombo = new CCombo(shell, SWT.NONE);
cCombo.add("item");
cCombo.select(0);
ISWTObservableValue value = WidgetProperties.singleSelectionIndex()
.observe(cCombo);
assertEquals(0, cCombo.getSelectionIndex());
value.setValue(Integer.valueOf(-1));
assertEquals(-1, cCombo.getSelectionIndex());
}
@Test
public void testObserveSingleSelectionIndexOfCCombo_SetValueNull()
throws Exception {
CCombo cCombo = new CCombo(shell, SWT.NONE);
cCombo.add("item");
cCombo.select(0);
ISWTObservableValue value = WidgetProperties.singleSelectionIndex()
.observe(cCombo);
assertEquals(0, cCombo.getSelectionIndex());
value.setValue(null);
assertEquals(-1, cCombo.getSelectionIndex());
}
@Test
public void testObserveSingleSelectionIndexOfCombo_DeselectAll()
throws Exception {
Combo combo = new Combo(shell, SWT.NONE);
combo.add("item");
combo.select(0);
ISWTObservableValue value = WidgetProperties.singleSelectionIndex()
.observe(combo);
assertEquals(0, combo.getSelectionIndex());
value.setValue(Integer.valueOf(-1));
assertEquals(-1, combo.getSelectionIndex());
}
@Test
public void testObserveSingleSelectionIndexOfCombo_SetValueNull()
throws Exception {
Combo combo = new Combo(shell, SWT.NONE);
combo.add("item");
combo.select(0);
ISWTObservableValue value = WidgetProperties.singleSelectionIndex()
.observe(combo);
assertEquals(0, combo.getSelectionIndex());
value.setValue(null);
assertEquals(-1, combo.getSelectionIndex());
}
@Test
public void testObserveSingleSelectionIndexOfList_DeselectAll()
throws Exception {
List list = new List(shell, SWT.NONE);
list.add("item");
list.select(0);
ISWTObservableValue value = WidgetProperties.singleSelectionIndex()
.observe(list);
assertEquals(0, list.getSelectionIndex());
value.setValue(Integer.valueOf(-1));
assertEquals(-1, list.getSelectionIndex());
}
@Test
public void testObserveSingleSelectionIndexOfList_SetValueNull()
throws Exception {
List list = new List(shell, SWT.NONE);
list.add("item");
list.select(0);
ISWTObservableValue value = WidgetProperties.singleSelectionIndex()
.observe(list);
assertEquals(0, list.getSelectionIndex());
value.setValue(null);
assertEquals(-1, list.getSelectionIndex());
}
@Test
public void testObserveSingleSelectionIndexOfTable_DeselectAll()
throws Exception {
Table table = new Table(shell, SWT.NONE);
new TableItem(table, SWT.NONE);
table.select(0);
ISWTObservableValue value = WidgetProperties.singleSelectionIndex()
.observe(table);
assertEquals(0, table.getSelectionIndex());
value.setValue(Integer.valueOf(-1));
assertEquals(-1, table.getSelectionIndex());
}
@Test
public void testObserveSingleSelectionIndexOfTable_SetValueNull()
throws Exception {
Table table = new Table(shell, SWT.NONE);
new TableItem(table, SWT.NONE);
table.select(0);
ISWTObservableValue value = WidgetProperties.singleSelectionIndex()
.observe(table);
assertEquals(0, table.getSelectionIndex());
value.setValue(null);
assertEquals(-1, table.getSelectionIndex());
}
@Test
public void testObserveSingleSelectionIndexOfUnsupportedControl()
throws Exception {
Tree tree = new Tree(shell, SWT.NONE);
try {
SWTObservables.observeSingleSelectionIndex(tree);
fail("Exception should have been thrown");
} catch (IllegalArgumentException e) {
}
}
@Test
public void testObserveMinOfSpinner() throws Exception {
Spinner spinner = new Spinner(shell, SWT.NONE);
ISWTObservableValue value = SWTObservables.observeMin(spinner);
assertWidgetObservable(value, spinner, SpinnerMinimumProperty.class);
}
@Test
public void testObserveMinOfScale() throws Exception {
Scale scale = new Scale(shell, SWT.NONE);
ISWTObservableValue value = SWTObservables.observeMin(scale);
assertWidgetObservable(value, scale, ScaleMinimumProperty.class);
}
@Test
public void testObserveMinOfUnsupportedControl() throws Exception {
Text text = new Text(shell, SWT.NONE);
try {
SWTObservables.observeMin(text);
fail("Exception should have been thrown");
} catch (IllegalArgumentException e) {
}
}
@Test
public void testObserveMaxOfSpinner() throws Exception {
Spinner spinner = new Spinner(shell, SWT.NONE);
ISWTObservableValue value = SWTObservables.observeMax(spinner);
assertWidgetObservable(value, spinner, SpinnerMaximumProperty.class);
}
@Test
public void testObserveMaxOfScale() throws Exception {
Scale scale = new Scale(shell, SWT.NONE);
ISWTObservableValue value = SWTObservables.observeMax(scale);
assertWidgetObservable(value, scale, ScaleMaximumProperty.class);
}
@Test
public void testObserveMaxOfUnsupportedControl() throws Exception {
Text text = new Text(shell, SWT.NONE);
try {
SWTObservables.observeMax(text);
fail("Exception should have been thrown");
} catch (IllegalArgumentException e) {
}
}
@Test
public void testObserveEditableOfText() throws Exception {
Text text = new Text(shell, SWT.NONE);
ISWTObservableValue value = SWTObservables.observeEditable(text);
assertWidgetObservable(value, text, TextEditableProperty.class);
}
@Test
public void testObserveEditableOfCCombo() throws Exception {
CCombo combo = new CCombo(shell, SWT.NONE);
ISWTObservableValue value = SWTObservables.observeEditable(combo);
assertWidgetObservable(value, combo, CComboEditableProperty.class);
}
@Test
public void testObserveEditableOfStyledText() throws Exception {
StyledText styledText = new StyledText(shell, SWT.NONE);
ISWTObservableValue value = SWTObservables.observeEditable(styledText);
assertWidgetObservable(value, styledText,
StyledTextEditableProperty.class);
}
@Test
public void testObserveEnabledOfMenu() throws Exception {
Menu menu = new Menu(shell, SWT.BAR);
ISWTObservableValue value = SWTObservables.observeEnabled(menu);
assertWidgetObservable(value, menu, MenuEnabledProperty.class);
}
@Test
public void testObserveEnabledOfMenuItem() throws Exception {
Menu menu = new Menu(shell, SWT.DROP_DOWN);
MenuItem item = new MenuItem(menu, SWT.PUSH);
ISWTObservableValue value = SWTObservables.observeEnabled(item);
assertWidgetObservable(value, item, MenuItemEnabledProperty.class);
}
@Test
public void testObserveSelectionOfMenuItem() throws Exception {
Menu menu = new Menu(shell, SWT.DROP_DOWN);
MenuItem item = new MenuItem(menu, SWT.PUSH);
ISWTObservableValue value = SWTObservables.observeSelection(item);
assertWidgetObservable(value, item, MenuItemSelectionProperty.class);
}
@Test
public void testObserveEnabledOfScrollBar() throws Exception {
ScrollBar scrollBar = shell.getVerticalBar();
ISWTObservableValue value = SWTObservables.observeEnabled(scrollBar);
assertWidgetObservable(value, scrollBar, ScrollBarEnabledProperty.class);
}
@Test
public void testObserveEnabledOfToolItem() throws Exception {
ToolBar bar = new ToolBar(shell, SWT.HORIZONTAL);
ToolItem item = new ToolItem(bar, SWT.PUSH);
ISWTObservableValue value = SWTObservables.observeEnabled(item);
assertWidgetObservable(value, item, ToolItemEnabledProperty.class);
}
private void assertWidgetObservable(ISWTObservable observable,
Widget widget, Class propertyClass) {
assertNotNull(observable);
assertTrue(observable.getWidget() == widget);
IPropertyObservable propertyObservable = getPropertyObservable(observable);
assertTrue(propertyClass.isInstance(propertyObservable.getProperty()));
}
@Test
public void testObserveEditableOfUnsupportedControl() throws Exception {
Label label = new Label(shell, SWT.NONE);
try {
SWTObservables.observeEditable(label);
fail("Exception should have been thrown");
} catch (IllegalArgumentException e) {
}
}
}