1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 package org.htmlunit.javascript.host.html;
16
17 import org.htmlunit.html.HtmlDialog;
18 import org.htmlunit.javascript.JavaScriptEngine;
19 import org.htmlunit.javascript.configuration.JsxClass;
20 import org.htmlunit.javascript.configuration.JsxConstructor;
21 import org.htmlunit.javascript.configuration.JsxFunction;
22 import org.htmlunit.javascript.configuration.JsxGetter;
23 import org.htmlunit.javascript.configuration.JsxSetter;
24
25
26
27
28
29
30
31 @JsxClass(domClass = HtmlDialog.class)
32 public class HTMLDialogElement extends HTMLElement {
33
34
35
36
37 @Override
38 @JsxConstructor
39 public void jsConstructor() {
40 super.jsConstructor();
41 }
42
43
44
45
46 @JsxGetter
47 public boolean isOpen() {
48 return ((HtmlDialog) getDomNodeOrDie()).isOpen();
49 }
50
51
52
53
54
55 @JsxSetter
56 public void setOpen(final Object newValue) {
57 final boolean bool = JavaScriptEngine.toBoolean(newValue);
58
59 ((HtmlDialog) getDomNodeOrDie()).setOpen(bool);
60 }
61
62
63
64
65 @JsxFunction
66 public void show() {
67 final HtmlDialog dialog = (HtmlDialog) getDomNodeOrDie();
68
69 if (dialog.isOpen()) {
70 if (dialog.isModal()) {
71 throw JavaScriptEngine.reportRuntimeError("InvalidStateError: Dialog is already open.");
72 }
73 }
74
75 dialog.show();
76 }
77
78
79
80
81
82 @JsxFunction
83 public void close(final Object returnValue) {
84 if (returnValue == null || JavaScriptEngine.isUndefined(returnValue)) {
85 ((HtmlDialog) getDomNodeOrDie()).close("");
86 }
87
88 ((HtmlDialog) getDomNodeOrDie()).close(JavaScriptEngine.toString(returnValue));
89 }
90
91
92
93
94 @JsxFunction
95 public void showModal() {
96 final HtmlDialog dialog = (HtmlDialog) getDomNodeOrDie();
97
98 if (dialog.isOpen()) {
99 if (!dialog.isModal()) {
100 throw JavaScriptEngine.reportRuntimeError("InvalidStateError: Dialog is already open.");
101 }
102 }
103
104 dialog.showModal();
105 }
106
107
108
109
110 @JsxGetter
111 public String getReturnValue() {
112 return ((HtmlDialog) getDomNodeOrDie()).getReturnValue();
113 }
114
115
116
117
118
119 @JsxSetter
120 public void setReturnValue(final Object newValue) {
121 if (newValue == null || JavaScriptEngine.isUndefined(newValue)) {
122 ((HtmlDialog) getDomNodeOrDie()).setReturnValue("");
123 }
124
125 ((HtmlDialog) getDomNodeOrDie()).setReturnValue(JavaScriptEngine.toString(newValue));
126 }
127 }