Package com.subgraph.vega.internal.html.dom

Source Code of com.subgraph.vega.internal.html.dom.HTMLOptionElementImpl

/*******************************************************************************
* Copyright (c) 2011 Subgraph.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
*     Subgraph - initial API and implementation
******************************************************************************/
package com.subgraph.vega.internal.html.dom;

import org.jsoup.nodes.Element;
import org.w3c.dom.Document;
import org.w3c.dom.html2.HTMLFormElement;
import org.w3c.dom.html2.HTMLOptionElement;

public class HTMLOptionElementImpl extends HTMLElementImpl implements HTMLOptionElement {

  private final HTMLSelectElementImpl select;
  private final HTMLFormElement form;
  private final int index;
 
  HTMLOptionElementImpl(Element jsoupElement, HTMLSelectElementImpl select, int index, Document ownerDocument) {
    super(jsoupElement, ownerDocument);
    this.select = select;
    this.form = select.getForm();
    this.index = index;
  }
 
  HTMLOptionElementImpl(Element jsoupElement, Document ownerDocument) {
    super(jsoupElement, ownerDocument);
    Element formElement = HTMLElementImpl.findEnclosingFormElement(jsoupElement);
    this.form = new HTMLFormElementImpl(formElement, ownerDocument);
    Element selectElement = HTMLElementImpl.findEnclosingSelectElement(jsoupElement);
    this.select = new HTMLSelectElementImpl(selectElement, form, ownerDocument);
    this.index = calculateIndex(jsoupElement);
  }
 
  private int calculateIndex(Element jsoupElement) {
    Element e = jsoupElement;
    int index = 0;
    while(e.previousElementSibling() != null) {
      e = e.previousElementSibling();
      index += 1;
    }
    return index;
  }

  @Override
  public HTMLFormElement getForm() {
    return form;
  }

  @Override
  public boolean getDefaultSelected() {
    return hasAttribute("selected");
  }

  @Override
  public void setDefaultSelected(boolean defaultSelected) {
   
  }

  @Override
  public String getText() {
    return getTextContent();
  }

  @Override
  public int getIndex() {
    return index;
  }

  @Override
  public boolean getDisabled() {
    return hasAttribute("disabled");
  }

  @Override
  public void setDisabled(boolean disabled) {   
  }

  @Override
  public String getLabel() {
    return getAttribute("label");
  }

  @Override
  public void setLabel(String label) {   
  }

  @Override
  public boolean getSelected() {
    return hasAttribute("selected") || select.getSelectedIndex() == index;
  }

  @Override
  public void setSelected(boolean selected) {   
  }

  @Override
  public String getValue() {
    return getAttribute("value");
  }

  @Override
  public void setValue(String value) {   
  }
}
TOP

Related Classes of com.subgraph.vega.internal.html.dom.HTMLOptionElementImpl

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.