1 /* 2 * Copyright (c) 2002-2025 Gargoyle Software Inc. 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * https://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 package org.htmlunit.javascript.host.html; 16 17 import org.htmlunit.javascript.JavaScriptEngine; 18 import org.htmlunit.javascript.configuration.JsxClass; 19 import org.htmlunit.javascript.configuration.JsxGetter; 20 import org.htmlunit.javascript.configuration.JsxSetter; 21 22 /** 23 * Base class for list-type elements (<code>ul</code>, <code>ol</code>, <code>dir</code>, etc). 24 * 25 * @author Daniel Gredler 26 * @author Frank Danek 27 * @author Ronald Brill 28 */ 29 @JsxClass(isJSObject = false) 30 public class HTMLListElement extends HTMLElement { 31 32 /** 33 * Returns the value of the {@code compact} attribute. 34 * @return the value of the {@code compact} attribute 35 */ 36 @JsxGetter 37 public boolean isCompact() { 38 return getDomNodeOrDie().hasAttribute("compact"); 39 } 40 41 /** 42 * Sets the value of the {@code compact} attribute. 43 * @param compact the value of the {@code compact} attribute 44 */ 45 @JsxSetter 46 public void setCompact(final Object compact) { 47 if (JavaScriptEngine.toBoolean(compact)) { 48 getDomNodeOrDie().setAttribute("compact", ""); 49 } 50 else { 51 getDomNodeOrDie().removeAttribute("compact"); 52 } 53 } 54 55 /** 56 * Returns the value of the {@code type} property. 57 * @return the value of the {@code type} property 58 */ 59 protected String getType() { 60 return getDomNodeOrDie().getAttributeDirect("type"); 61 } 62 63 /** 64 * Sets the value of the {@code type} property. 65 * @param type the value of the {@code type} property 66 */ 67 protected void setType(final String type) { 68 getDomNodeOrDie().setAttribute("type", type); 69 } 70 }