package org.cobra_grendel.html.domimpl;
import org.w3c.dom.html2.HTMLFormElement;
import org.w3c.dom.html2.HTMLOptionElement;
import org.w3c.dom.html2.HTMLSelectElement;
public class HTMLOptionElementImpl extends HTMLElementImpl implements HTMLOptionElement
{
/**
*
*/
private static final long serialVersionUID = 1L;
private boolean selected;
public HTMLOptionElementImpl(final String name, final int transactionId)
{
super(name, true, transactionId);
}
@Override
public boolean getDefaultSelected()
{
return getAttributeAsBoolean("selected");
}
@Override
public boolean getDisabled()
{
return false;
}
@Override
public HTMLFormElement getForm()
{
return getForm();
}
@Override
public int getIndex()
{
Object parent = getParentNode();
if (parent instanceof HTMLSelectElement)
{
HTMLOptionsCollectionImpl options = (HTMLOptionsCollectionImpl) ((HTMLSelectElement) parent).getOptions();
return options.indexOf(this);
}
else
{
return -1;
}
}
@Override
public String getLabel()
{
return getAttribute("label");
}
@Override
public boolean getSelected()
{
return selected;
}
@Override
public String getText()
{
return getRawInnerText(false);
}
@Override
public String getValue()
{
return getAttribute("value");
}
@Override
public void setDefaultSelected(final boolean defaultSelected)
{
setAttribute("selected", defaultSelected ? "selected" : null);
}
@Override
public void setDisabled(final boolean disabled)
{
// TODO Unsupported
}
@Override
public void setLabel(final String label)
{
setAttribute("label", label);
}
@Override
public void setSelected(final boolean selected)
{
Object parent = getParentNode();
if (parent instanceof HTMLSelectElement)
{
if (selected)
{
((HTMLSelectElement) parent).setSelectedIndex(getIndex());
}
else
{
((HTMLSelectElement) parent).setSelectedIndex(-1);
}
}
}
void setSelectedImpl(final boolean selected)
{
this.selected = selected;
}
@Override
public void setValue(final String value)
{
setAttribute("value", value);
}
}