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.corejs.javascript.Function;
18 import org.htmlunit.html.HtmlFrameSet;
19 import org.htmlunit.javascript.configuration.JsxClass;
20 import org.htmlunit.javascript.configuration.JsxConstructor;
21 import org.htmlunit.javascript.configuration.JsxGetter;
22 import org.htmlunit.javascript.configuration.JsxSetter;
23 import org.htmlunit.javascript.host.event.Event;
24
25 /**
26 * The JavaScript object {@code HTMLFrameSetElement}.
27 *
28 * @author Bruce Chapman
29 * @author Ahmed Ashour
30 * @author Ronald Brill
31 */
32 @JsxClass(domClass = HtmlFrameSet.class)
33 public class HTMLFrameSetElement extends HTMLElement {
34
35 /**
36 * JavaScript constructor.
37 */
38 @Override
39 @JsxConstructor
40 public void jsConstructor() {
41 super.jsConstructor();
42 }
43
44 /**
45 * {@inheritDoc}
46 */
47 @Override
48 protected boolean isEventHandlerOnWindow() {
49 return true;
50 }
51
52 /**
53 * Sets the rows property.
54 *
55 * @param rows the rows attribute value
56 */
57 @JsxSetter
58 public void setRows(final String rows) {
59 final HtmlFrameSet htmlFrameSet = (HtmlFrameSet) getDomNodeOrNull();
60 if (htmlFrameSet != null) {
61 htmlFrameSet.setAttribute("rows", rows);
62 }
63 }
64
65 /**
66 * Gets the rows property.
67 *
68 * @return the rows attribute value
69 */
70
71 @JsxGetter
72 public String getRows() {
73 final HtmlFrameSet htmlFrameSet = (HtmlFrameSet) getDomNodeOrNull();
74 return htmlFrameSet.getRowsAttribute();
75 }
76
77 /**
78 * Sets the cols property.
79 *
80 * @param cols the cols attribute value
81 */
82 @JsxSetter
83 public void setCols(final String cols) {
84 final HtmlFrameSet htmlFrameSet = (HtmlFrameSet) getDomNodeOrNull();
85 if (htmlFrameSet != null) {
86 htmlFrameSet.setAttribute("cols", cols);
87 }
88 }
89
90 /**
91 * Gets the cols property.
92 *
93 * @return the cols attribute value
94 */
95 @JsxGetter
96 public String getCols() {
97 final HtmlFrameSet htmlFrameSet = (HtmlFrameSet) getDomNodeOrNull();
98 return htmlFrameSet.getColsAttribute();
99 }
100
101 /**
102 * Returns the {@code onbeforeunload} event handler.
103 * @return the {@code onbeforeunload} event handler
104 */
105 @JsxGetter
106 public Function getOnbeforeunload() {
107 return getEventHandler(Event.TYPE_BEFORE_UNLOAD);
108 }
109
110 /**
111 * Sets the {@code onbeforeunload} event handler.
112 * @param beforeunload the {@code onbeforeunload} event handler
113 */
114 @JsxSetter
115 public void setOnbeforeunload(final Object beforeunload) {
116 setEventHandler(Event.TYPE_BEFORE_UNLOAD, beforeunload);
117 }
118
119 /**
120 * Returns the {@code ongamepadconnected} event handler.
121 * @return the {@code ongamepadconnected} event handler
122 */
123 @JsxGetter
124 public Function getOngamepadconnected() {
125 return getEventHandler(Event.TYPE_GAMEPAD_CONNECTED);
126 }
127
128 /**
129 * Sets the {@code ongamepadconnected} event handler.
130 * @param gamepadconnected the {@code ongamepadconnected} event handler
131 */
132 @JsxSetter
133 public void setOngamepadconnected(final Object gamepadconnected) {
134 setEventHandler(Event.TYPE_GAMEPAD_CONNECTED, gamepadconnected);
135 }
136
137 /**
138 * Returns the {@code ongamepaddisconnected} event handler.
139 * @return the {@code ongamepaddisconnected} event handler
140 */
141 @JsxGetter
142 public Function getOngamepaddisconnected() {
143 return getEventHandler(Event.TYPE_GAMEPAD_DISCONNECTED);
144 }
145
146 /**
147 * Sets the {@code ongamepaddisconnected} event handler.
148 * @param gamepaddisconnected the {@code ongamepaddisconnected} event handler
149 */
150 @JsxSetter
151 public void setOngamepaddisconnected(final Object gamepaddisconnected) {
152 setEventHandler(Event.TYPE_GAMEPAD_DISCONNECTED, gamepaddisconnected);
153 }
154
155 /**
156 * Returns the {@code onhashchange} event handler.
157 * @return the {@code onhashchange} event handler
158 */
159 @JsxGetter
160 public Function getOnhashchange() {
161 return getEventHandler(Event.TYPE_HASH_CHANGE);
162 }
163
164 /**
165 * Sets the {@code onhashchange} event handler.
166 * @param hashchange the {@code onhashchange} event handler
167 */
168 @JsxSetter
169 public void setOnhashchange(final Object hashchange) {
170 setEventHandler(Event.TYPE_HASH_CHANGE, hashchange);
171 }
172
173 /**
174 * Returns the {@code onlanguagechange} event handler.
175 * @return the {@code onlanguagechange} event handler
176 */
177 @JsxGetter
178 public Function getOnlanguagechange() {
179 return getEventHandler(Event.TYPE_LANGUAGECHANGE);
180 }
181
182 /**
183 * Sets the {@code onlanguagechange} event handler.
184 * @param languagechange the {@code onlanguagechange} event handler
185 */
186 @JsxSetter
187 public void setOnlanguagechange(final Object languagechange) {
188 setEventHandler(Event.TYPE_LANGUAGECHANGE, languagechange);
189 }
190
191 /**
192 * Returns the {@code onmessage} event handler.
193 * @return the {@code onmessage} event handler
194 */
195 @JsxGetter
196 public Function getOnmessage() {
197 return getEventHandler(Event.TYPE_MESSAGE);
198 }
199
200 /**
201 * Sets the {@code onmessage} event handler.
202 * @param message the {@code onmessage} event handler
203 */
204 @JsxSetter
205 public void setOnmessage(final Object message) {
206 setEventHandler(Event.TYPE_MESSAGE, message);
207 }
208
209 /**
210 * Returns the {@code onmessageerror} event handler for this element.
211 * @return the {@code onmessageerror} event handler for this element
212 */
213 @JsxGetter
214 public Function getOnmessageerror() {
215 return getEventHandler(Event.TYPE_ONMESSAGEERROR);
216 }
217
218 /**
219 * Sets the {@code onmessageerror} event handler for this element.
220 * @param onmessageerror the {@code onmessageerror} event handler for this element
221 */
222 @JsxSetter
223 public void setOnmessageerror(final Object onmessageerror) {
224 setEventHandler(Event.TYPE_ONMESSAGEERROR, onmessageerror);
225 }
226
227 /**
228 * Returns the {@code onoffline} event handler.
229 * @return the {@code onoffline} event handler
230 */
231 @JsxGetter
232 public Function getOnoffline() {
233 return getEventHandler(Event.TYPE_OFFLINE);
234 }
235
236 /**
237 * Sets the {@code onoffline} event handler.
238 * @param offline the {@code onoffline} event handler
239 */
240 @JsxSetter
241 public void setOnoffline(final Object offline) {
242 setEventHandler(Event.TYPE_OFFLINE, offline);
243 }
244
245 /**
246 * Returns the {@code ononline} event handler.
247 * @return the {@code ononline} event handler
248 */
249 @JsxGetter
250 public Function getOnonline() {
251 return getEventHandler(Event.TYPE_ONLINE);
252 }
253
254 /**
255 * Sets the {@code ononline} event handler.
256 * @param online the {@code ononline} event handler
257 */
258 @JsxSetter
259 public void setOnonline(final Object online) {
260 setEventHandler(Event.TYPE_ONLINE, online);
261 }
262
263 /**
264 * Returns the {@code onpagehide} event handler.
265 * @return the {@code onpagehide} event handler
266 */
267 @JsxGetter
268 public Function getOnpagehide() {
269 return getEventHandler(Event.TYPE_PAGEHIDE);
270 }
271
272 /**
273 * Sets the {@code onpagehide} event handler.
274 * @param pagehide the {@code onpagehide} event handler
275 */
276 @JsxSetter
277 public void setOnpagehide(final Object pagehide) {
278 setEventHandler(Event.TYPE_PAGEHIDE, pagehide);
279 }
280
281 /**
282 * Returns the {@code onpageshow} event handler.
283 * @return the {@code onpageshow} event handler
284 */
285 @JsxGetter
286 public Function getOnpageshow() {
287 return getEventHandler(Event.TYPE_PAGESHOW);
288 }
289
290 /**
291 * Sets the {@code onpageshow} event handler.
292 * @param pageshow the {@code onpageshow} event handler
293 */
294 @JsxSetter
295 public void setOnpageshow(final Object pageshow) {
296 setEventHandler(Event.TYPE_PAGESHOW, pageshow);
297 }
298
299 /**
300 * Returns the {@code onpopstate} event handler.
301 * @return the {@code onpopstate} event handler
302 */
303 @JsxGetter
304 public Function getOnpopstate() {
305 return getEventHandler(Event.TYPE_POPSTATE);
306 }
307
308 /**
309 * Sets the {@code onpopstate} event handler.
310 * @param popstate the {@code onpopstate} event handler
311 */
312 @JsxSetter
313 public void setOnpopstate(final Object popstate) {
314 setEventHandler(Event.TYPE_POPSTATE, popstate);
315 }
316
317 /**
318 * Returns the {@code onrejectionhandled} event handler.
319 * @return the {@code onrejectionhandled} event handler
320 */
321 @JsxGetter
322 public Function getOnrejectionhandled() {
323 return getEventHandler(Event.TYPE_REJECTIONHANDLED);
324 }
325
326 /**
327 * Sets the {@code onrejectionhandled} event handler.
328 * @param rejectionhandled the {@code onrejectionhandled} event handler
329 */
330 @JsxSetter
331 public void setOnrejectionhandled(final Object rejectionhandled) {
332 setEventHandler(Event.TYPE_REJECTIONHANDLED, rejectionhandled);
333 }
334
335 /**
336 * Returns the {@code onstorage} event handler.
337 * @return the {@code onstorage} event handler
338 */
339 @JsxGetter
340 public Function getOnstorage() {
341 return getEventHandler(Event.TYPE_STORAGE);
342 }
343
344 /**
345 * Sets the {@code onstorage} event handler.
346 * @param storage the {@code onstorage} event handler
347 */
348 @JsxSetter
349 public void setOnstorage(final Object storage) {
350 setEventHandler(Event.TYPE_STORAGE, storage);
351 }
352
353 /**
354 * Returns the {@code onunhandledrejection} event handler.
355 * @return the {@code onunhandledrejection} event handler
356 */
357 @JsxGetter
358 public Function getOnunhandledrejection() {
359 return getEventHandler(Event.TYPE_UNHANDLEDREJECTION);
360 }
361
362 /**
363 * Sets the {@code onunhandledrejection} event handler.
364 * @param unhandledrejection the {@code onunhandledrejection} event handler
365 */
366 @JsxSetter
367 public void setOnunhandledrejection(final Object unhandledrejection) {
368 setEventHandler(Event.TYPE_UNHANDLEDREJECTION, unhandledrejection);
369 }
370
371 /**
372 * Returns the {@code onunload} event handler.
373 * @return the {@code onunload} event handler
374 */
375 @JsxGetter
376 public Function getOnunload() {
377 return getEventHandler(Event.TYPE_UNLOAD);
378 }
379
380 /**
381 * Sets the {@code onunload} event handler.
382 * @param unload the {@code onunload} event handler
383 */
384 @JsxSetter
385 public void setOnunload(final Object unload) {
386 setEventHandler(Event.TYPE_UNLOAD, unload);
387 }
388
389 /**
390 * Returns the {@code onafterprint} event handler.
391 * @return the {@code onafterprint} event handler
392 */
393 @JsxGetter
394 public Function getOnafterprint() {
395 return getEventHandler(Event.TYPE_AFTERPRINT);
396 }
397
398 /**
399 * Sets the {@code onafterprint} event handler.
400 * @param afterprint the {@code onafterprint} event handler
401 */
402 @JsxSetter
403 public void setOnafterprint(final Object afterprint) {
404 setEventHandler(Event.TYPE_AFTERPRINT, afterprint);
405 }
406
407 /**
408 * Returns the {@code onbeforeprint} event handler.
409 * @return the {@code onbeforeprint} event handler
410 */
411 @JsxGetter
412 public Function getOnbeforeprint() {
413 return getEventHandler(Event.TYPE_BEFOREPRINT);
414 }
415
416 /**
417 * Sets the {@code onbeforeprint} event handler.
418 * @param beforeprint the {@code onbeforeprint} event handler
419 */
420 @JsxSetter
421 public void setOnbeforeprint(final Object beforeprint) {
422 setEventHandler(Event.TYPE_BEFOREPRINT, beforeprint);
423 }
424 }