package com.redheap.selenium.pages;
import com.redheap.selenium.component.AdfCommandButton;
import com.redheap.selenium.component.AdfInputText;
import com.redheap.selenium.component.AdfMessage;
import com.redheap.selenium.component.AdfPanelFormLayout;
import com.redheap.selenium.component.AdfSelectBooleanCheckbox;
import com.redheap.selenium.component.ComponentReference;
import com.redheap.selenium.page.Page;
import org.openqa.selenium.WebDriver;
public class MessageDemoPage extends Page {
private final String message = "dmoTpl:message1";
private final String editor = "dmoTpl:tagEditor:editor:pfl1";
private final String PAGE_LEVEL_MESSAGES = "dmoTpl:pageLevel";
private final String PAGE_LEVEL_MESSAGES_FORMATTED = "dmoTpl:pageLevel2";
private final String COMPONENT_LEVEL_MESSAGES = "dmoTpl:compLevel";
private final String COMPONENT_LEVEL_MESSAGES_FORMATTED = "dmoTpl:compLevel2";
public MessageDemoPage(WebDriver webDriver) {
super(webDriver);
}
@Override
protected String getExpectedTitle() {
return "message Demo";
}
public AdfMessage findMessage() {
return findAdfComponent(message);
}
protected AdfInputText findMessageEditor() {
return findFormItem("message");
}
protected AdfInputText findMessageTypeEditor() {
return findFormItem("messageType");
}
private AdfInputText findFormItem(String label) {
AdfPanelFormLayout form = findAdfComponent(editor);
for (ComponentReference child : form.getChildComponents()) {
if ("oracle.adf.RichInputText".equals(child.getComponentType())) {
AdfInputText it = child.findComponent(form.getDriver());
if (label.equals(it.getLabel())) {
return it;
}
}
}
return null;
}
protected AdfCommandButton findEditorUpdateButton() {
AdfPanelFormLayout form = findAdfComponent(editor);
for (ComponentReference child : form.getChildComponents()) {
if ("oracle.adf.RichCommandButton".equals(child.getComponentType())) {
AdfCommandButton b = child.findComponent(form.getDriver());
if ("Update".equals(b.getText())) {
return b;
}
}
}
return null;
}
public void setMessage(String msg) {
findMessageEditor().typeValue(msg);
findEditorUpdateButton().click();
}
public void setMessageType(String type) {
findMessageTypeEditor().typeValue(type);
findEditorUpdateButton().click();
}
public AdfSelectBooleanCheckbox findPageLevelMessages(){
return findAdfComponent(PAGE_LEVEL_MESSAGES);
}
public AdfSelectBooleanCheckbox findFormattedPageLevelMessages(){
return findAdfComponent(PAGE_LEVEL_MESSAGES_FORMATTED);
}
public AdfSelectBooleanCheckbox findComponentLevelMessages(){
return findAdfComponent(COMPONENT_LEVEL_MESSAGES);
}
public AdfSelectBooleanCheckbox findFormattedComponentLevelMessages(){
return findAdfComponent(COMPONENT_LEVEL_MESSAGES_FORMATTED);
}
}