FileDocCategorySizeDatePackage
HTMLOptionElementImpl.javaAPI DocApache Xerces 3.0.16594Fri Sep 14 20:33:52 BST 2007org.apache.html.dom

HTMLOptionElementImpl

public class HTMLOptionElementImpl extends HTMLElementImpl implements HTMLOptionElement
xerces.internal
version
$Revision: 447255 $ $Date: 2006-09-18 01:36:42 -0400 (Mon, 18 Sep 2006) $
author
Assaf Arkin
see
org.w3c.dom.html.HTMLOptionElement
see
org.apache.xerces.dom.ElementImpl

Fields Summary
private static final long
serialVersionUID
Constructors Summary
public HTMLOptionElementImpl(HTMLDocumentImpl owner, String name)
Constructor requires owner document.

param
owner The owner HTML document

        super( owner, name );
    
Methods Summary
public booleangetDefaultSelected()


      
    
        // ! NOT FULLY IMPLEMENTED !
        return getBinary( "default-selected" );
    
public booleangetDisabled()

        return getBinary( "disabled" );
    
public intgetIndex()

        Node        parent;
        NodeList    options;
        int            i;
        
        // Locate the parent SELECT. Note that this OPTION might be inside a
        // OPTGROUP inside the SELECT. Or it might not have a parent SELECT.
        // Everything is possible. If no parent is found, return -1.
        parent = getParentNode();
        while ( parent != null && ! ( parent instanceof HTMLSelectElement ) )
            parent = parent.getParentNode();
        if ( parent != null )
        {
            // Use getElementsByTagName() which creates a snapshot of all the
            // OPTION elements under the SELECT. Access to the returned NodeList
            // is very fast and the snapshot solves many synchronization problems.
            options = ( (HTMLElement) parent ).getElementsByTagName( "OPTION" );
            for ( i = 0 ; i < options.getLength() ; ++i )
                if ( options.item( i ) == this )
                    return i;
        }
        return -1;
    
public java.lang.StringgetLabel()

        return capitalize( getAttribute( "label" ) );
    
public booleangetSelected()

        return getBinary( "selected" );
    
public java.lang.StringgetText()

        Node child;
        StringBuffer text = new StringBuffer();
        
        // Find the Text nodes contained within this element and return their
        // concatenated value. Required to go around comments, entities, etc.
        child = getFirstChild();
        while ( child != null )
        {
            if ( child instanceof Text ) {
                text.append(( (Text) child ).getData());
            }
            child = child.getNextSibling();
        }
        return text.toString();
    
public java.lang.StringgetValue()

        return getAttribute( "value" );
    
public voidsetDefaultSelected(boolean defaultSelected)

        // ! NOT FULLY IMPLEMENTED !
        setAttribute( "default-selected", defaultSelected );
    
public voidsetDisabled(boolean disabled)

        setAttribute( "disabled", disabled );
    
public voidsetIndex(int index)

        Node        parent;
        NodeList    options;
        Node        item;
        
        // Locate the parent SELECT. Note that this OPTION might be inside a
        // OPTGROUP inside the SELECT. Or it might not have a parent SELECT.
        // Everything is possible. If no parent is found, just return.
        parent = getParentNode();
        while ( parent != null && ! ( parent instanceof HTMLSelectElement ) )
            parent = parent.getParentNode();
        if ( parent != null )
        {
            // Use getElementsByTagName() which creates a snapshot of all the
            // OPTION elements under the SELECT. Access to the returned NodeList
            // is very fast and the snapshot solves many synchronization problems.
            // Make sure this OPTION is not replacing itself.
            options = ( (HTMLElement) parent ).getElementsByTagName( "OPTION" );
            if ( options.item( index ) != this )
            {
                // Remove this OPTION from its parent. Place this OPTION right
                // before indexed OPTION underneath it's direct parent (might
                // be an OPTGROUP).
                getParentNode().removeChild( this );
                item = options.item( index );
                item.getParentNode().insertBefore( this, item );
            }
        }
    
public voidsetLabel(java.lang.String label)

        setAttribute( "label", label );
    
public voidsetSelected(boolean selected)

        setAttribute( "selected", selected );
    
public voidsetText(java.lang.String text)

        Node    child;
        Node    next;
        
        // Delete all the nodes and replace them with a single Text node.
        // This is the only approach that can handle comments and other nodes.
        child = getFirstChild();
        while ( child != null )
        {
            next = child.getNextSibling();
            removeChild( child );
            child = next;
        }
        insertBefore( getOwnerDocument().createTextNode( text ), getFirstChild() );
    
public voidsetValue(java.lang.String value)

        setAttribute( "value", value );