原文:http://www.eclipse.org/forums/index.php/mv/tree/8865/#page_top
private void selectTab(int index, SWTBotView view) {
Composite parent = (Composite) view.getWidget();ControlFinder cf = new ControlFinder();
Matcher<Composite> matcher = new
IsInstanceOf<Composite>(Composite.class);
List<Composite> findControls = cf.findControls(parent, matcher,true);
List<Composite> tabs = new ArrayList<Composite>();
for (int i = 0; i < findControls.size(); i++) {
Composite c = findControls.get(i);
String className = SWTUtils.toString(c);
if (className.startsWith("TabbedPropertyList$ListElement")) {
tabs.add(c);
}
}
Composite foundTab = tabs.get(index);
CompositeControl mw = new CompositeControl(foundTab, matcher);
mw.click();
}
private static class CompositeControl extends
AbstractSWTBotControl<Composite> {
public CompositeControl(Composite w, SelfDescribing description)
throws WidgetNotFoundException {
super(w);
}
/**
* Click on the button.
*/
public CompositeControl click() {
log.debug(MessageFormat.format("Clicking on {0}",
SWTUtils.getText(widget))); //$NON-NLS-1$
waitForEnabled();
notify(SWT.MouseEnter);
notify(SWT.MouseMove);
notify(SWT.Activate);
notify(SWT.FocusIn);
notify(SWT.MouseDown);
notify(SWT.MouseUp);
notify(SWT.Selection);
notify(SWT.MouseHover);
notify(SWT.MouseMove);
notify(SWT.MouseExit);
notify(SWT.Deactivate);
notify(SWT.FocusOut);
log.debug(MessageFormat.format("Clicked on {0}",
SWTUtils.getText(widget))); //$NON-NLS-1$
return this;
}
}