package com.redheap.selenium.component; import com.redheap.selenium.component.uix.UixValue; import java.util.ArrayList; import java.util.Collection; import java.util.List; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; public class AdfSelectBooleanRadio extends UixValue { // see http://jdevadf.oracle.com/adf-richclient-demo/docs/js-subids.html private static final String SUBID_content = "content"; // <input> element private static final String SUBID_label = "label"; // <label> element private static final String SUBID_text = "text"; // <label> element private static final String JS_GET_GROUP = JS_FIND_COMPONENT + "return comp.getGroup()"; public AdfSelectBooleanRadio(WebDriver webDriver, String clientId) { super(webDriver, clientId); } @Override public void click() { findContent().click(); // click checkbox and not surrounding <div> waitForPpr(); } public String getLabel() { WebElement label = findLabel(); return label == null ? null : label.getText(); } public String getText() { WebElement label = findText(); return label == null ? null : label.getText(); } public List<AdfSelectBooleanRadio> findGroupItems() { String groupName = getGroup(); Collection<WebElement> items = (Collection<WebElement>) executeScript("return arguments[0].form.elements.namedItem(arguments[1])", findContent(), groupName); List<AdfSelectBooleanRadio> retval = new ArrayList<AdfSelectBooleanRadio>(items.size()); for (WebElement item : items) { AdfSelectBooleanRadio radio = AdfComponent.forElement(item); retval.add(radio); } return retval; } public String getGroup() { return (String) executeScript(JS_GET_GROUP, getClientId()); } protected WebElement findContent() { return findSubIdElement(SUBID_content); } protected WebElement findLabel() { return findSubIdElement(SUBID_label); } protected WebElement findText() { return findSubIdElement(SUBID_text); } }