package org.jboss.tools.teiid.reddeer.matcher;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.ToolItem;
import org.hamcrest.BaseMatcher;
import org.hamcrest.Description;
import org.jboss.reddeer.core.handler.ButtonHandler;
import org.jboss.reddeer.core.util.Display;
public class ToolBarButtonWithLabel extends BaseMatcher<ToolItem> {
private String label;
private Boolean toggle;
public ToolBarButtonWithLabel(String label) {
this.label = label;
toggle = null;
}
public ToolBarButtonWithLabel(String label, boolean toggle) {
this.label = label;
this.toggle = toggle;
}
@Override
public boolean matches(Object o) {
if (o instanceof ToolItem) {
ToolItem ti = (ToolItem) o;
if (ti.getControl() instanceof Button) {
final Button but = (Button) ti.getControl();
if (but.getText().equals(label)) {
Display.syncExec(new Runnable() {
@Override
public void run() {
ButtonHandler.getInstance().click(but);
if (toggle != null){
but.setSelection(toggle);
}
}
});
return true;
}
}
}
return false;
}
@Override
public void describeTo(Description arg0) {
}
}