package com.robotium.solo;
import java.util.Hashtable;
/**
* Represents an element shown in a WebView.
*
* @author Renas Reda, renas.reda@robotium.com
*
*/
public class WebElement {
private int locationX = 0;
private int locationY = 0;
private String id;
private String text;
private String name;
private String className;
private String tagName;
private Hashtable<String, String> attributes;
/**
* Constructs this object.
*
* @param webId the given web id
* @param textContent the given text to be set
* @param name the given name to be set
* @param className the given class name to set
* @param tagName the given tag name to be set
* @param attributes the attributes to set
*/
public WebElement(String webId, String textContent, String name, String className, String tagName, Hashtable<String, String> attributes) {
this.setId(webId);
this.setTextContent(textContent);
this.setName(name);
this.setClassName(className);
this.setTagName(tagName);
this.setAttributes(attributes);
}
/**
* Returns the WebElements location on screen.
*/
public void getLocationOnScreen(int[] location) {
location[0] = locationX;
location[1] = locationY;
}
/**
* Sets the X location.
*
* @param locationX the X location of the {@code WebElement}
*/
public void setLocationX(int locationX){
this.locationX = locationX;
}
/**
* Sets the Y location.
*
* @param locationY the Y location of the {@code WebElement}
*/
public void setLocationY(int locationY){
this.locationY = locationY;
}
/**
* Returns the X location.
*
* @return the X location
*/
public int getLocationX(){
return this.locationX;
}
/**
* Returns the Y location.
*
* @return the Y location
*/
public int getLocationY(){
return this.locationY;
}
/**
* Returns the id.
*
* @return the id
*/
public String getId() {
return id;
}
/**
* Sets the id.
*
* @param id the id to set
*/
public void setId(String id) {
this.id = id;
}
/**
* Returns the name.
*
* @return the name
*/
public String getName() {
return name;
}
/**
* Sets the name.
*
* @param name the name to set
*/
public void setName(String name) {
this.name = name;
}
/**
* Returns the class name.
*
* @return the class name
*/
public String getClassName() {
return className;
}
/**
* Sets the class name.
*
* @param className the class name to set
*/
public void setClassName(String className) {
this.className = className;
}
/**
* Returns the tag name.
*
* @return the tag name
*/
public String getTagName() {
return tagName;
}
/**
* Sets the tag name.
*
* @param tagName the tag name to set
*/
public void setTagName(String tagName) {
this.tagName = tagName;
}
/**
* Returns the text content.
*
* @return the text content
*/
public String getText() {
return text;
}
/**
* Sets the text content.
*
* @param textContent the text content to set
*/
public void setTextContent(String textContent) {
this.text = textContent;
}
/**
* Returns the value for the specified attribute.
*
* @return the value for the specified attribute
*/
public String getAttribute(String attributeName) {
if (attributeName != null){
return this.attributes.get(attributeName);
}
return null;
}
/**
* Sets the attributes.
*
* @param attributes the attributes to set
*/
public void setAttributes(Hashtable<String,String> attributes) {
this.attributes = attributes;
}
}