package experimental;
import junit.framework.TestCase;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Widget;
import com.windowtester.runtime.internal.concurrent.VoidCallable;
import com.windowtester.runtime.swt.internal.widgets.DisplayReference;
import abbot.tester.swt.WidgetTester;
/**
*
* IDEA: parameterize finder w/ visibility helper...
*
* <p>
* Copyright (c) 2007, Instantiations, Inc.<br>
* All Rights Reserved
*
* @author Phil Quitslund
*
*/
public class SWTTest extends TestCase {
static interface IVisibilityTester {
boolean isVisible(Widget w);
}
// class SetBackedVisibilityTester implements IVisibilityTester {
//
// Set<Widget> _visibleWidgets = new HashSet<Widget>();
//
// void add(Widget w) {
// _visibleWidgets.add(w);
// }
//
// void remove(Widget w) {
// _visibleWidgets.remove(w);
// }
//
// public boolean isVisible(Widget w) {
// return _visibleWidgets.contains(w);
// }
//
// }
private static final String VISIBILITY_TAG = "visibility";
class DataTestingVisibilityTester implements IVisibilityTester {
private final WidgetTester _tester = new WidgetTester();
public boolean isVisible(Widget w) {
return _tester.getData(w, VISIBILITY_TAG) == Boolean.TRUE;
}
}
public void test() {
DisplayReference.getDefault().execute(new VoidCallable() {
public void call() throws Exception {
Shell shell = new Shell();
setVisible(shell);
assertTrue(isVisible(shell));
}
});
}
IVisibilityTester _visibilityTester = new DataTestingVisibilityTester();
private boolean isVisible(Widget w) {
return _visibilityTester.isVisible(w);
}
private void setVisible(Shell shell) {
shell.setData(VISIBILITY_TAG, Boolean.TRUE);
}
}