1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 package org.htmlunit.javascript.host.html;
16
17 import static org.htmlunit.BrowserVersionFeatures.JS_MENU_TYPE_PASS;
18
19 import org.htmlunit.html.DomElement;
20 import org.htmlunit.html.HtmlMenu;
21 import org.htmlunit.javascript.configuration.JsxClass;
22 import org.htmlunit.javascript.configuration.JsxConstructor;
23
24
25
26
27
28
29
30
31 @JsxClass(domClass = HtmlMenu.class)
32 public class HTMLMenuElement extends HTMLListElement {
33
34
35
36
37 @Override
38 @JsxConstructor
39 public void jsConstructor() {
40 super.jsConstructor();
41 }
42
43
44
45
46
47 @Override
48 public String getType() {
49 final String type = getDomNodeOrDie().getAttributeDirect("type");
50 if (getBrowserVersion().hasFeature(JS_MENU_TYPE_PASS)) {
51 return type;
52 }
53
54 if ("context".equalsIgnoreCase(type)) {
55 return "context";
56 }
57 if ("toolbar".equalsIgnoreCase(type)) {
58 return "toolbar";
59 }
60
61 return "list";
62 }
63
64
65
66
67
68 @Override
69 public void setType(final String type) {
70 if (getBrowserVersion().hasFeature(JS_MENU_TYPE_PASS)) {
71 getDomNodeOrDie().setAttribute(DomElement.TYPE_ATTRIBUTE, type);
72 return;
73 }
74
75 if ("context".equalsIgnoreCase(type)) {
76 getDomNodeOrDie().setAttribute(DomElement.TYPE_ATTRIBUTE, "context");
77 return;
78 }
79 if ("toolbar".equalsIgnoreCase(type)) {
80 getDomNodeOrDie().setAttribute(DomElement.TYPE_ATTRIBUTE, "toolbar");
81 return;
82 }
83
84 getDomNodeOrDie().setAttribute(DomElement.TYPE_ATTRIBUTE, "list");
85 }
86 }