/* * Copyright (c) 2002-2020 Gargoyle Software Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.gargoylesoftware.htmlunit.javascript.host.html; import static com.gargoylesoftware.htmlunit.javascript.configuration.SupportedBrowser.CHROME; import static com.gargoylesoftware.htmlunit.javascript.configuration.SupportedBrowser.FF; import static com.gargoylesoftware.htmlunit.javascript.configuration.SupportedBrowser.FF60; import static com.gargoylesoftware.htmlunit.javascript.configuration.SupportedBrowser.FF68; import com.gargoylesoftware.htmlunit.html.DomElement; import com.gargoylesoftware.htmlunit.html.HtmlOptionGroup; import com.gargoylesoftware.htmlunit.javascript.configuration.JsxClass; import com.gargoylesoftware.htmlunit.javascript.configuration.JsxConstructor; import com.gargoylesoftware.htmlunit.javascript.configuration.JsxGetter; import com.gargoylesoftware.htmlunit.javascript.configuration.JsxSetter; /** * The JavaScript object {@code HTMLOptGroupElement}. * * @author Ahmed Ashour * @author Ronald Brill */ @JsxClass(domClass = HtmlOptionGroup.class) public class HTMLOptGroupElement extends HTMLElement { /** * Creates an instance. */ @JsxConstructor({CHROME, FF, FF68, FF60}) public HTMLOptGroupElement() { } /** * {@inheritDoc} Overridden to modify browser configurations. */ @Override @JsxGetter public boolean isDisabled() { return super.isDisabled(); } /** * {@inheritDoc} Overridden to modify browser configurations. */ @Override @JsxSetter public void setDisabled(final boolean disabled) { super.setDisabled(disabled); } /** * Returns the value of the {@code label} property. * @return the value of the {@code label} property */ @JsxGetter public String getLabel() { final String label = getDomNodeOrDie().getAttributeDirect("label"); if (DomElement.ATTRIBUTE_NOT_DEFINED == label) { return ""; } return label; } /** * Updates the value of the {@code label} property. * @param newLabel the new value */ @JsxSetter public void setLabel(final String newLabel) { getDomNodeOrDie().setAttribute("label", newLabel); } }