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