View Javadoc
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 }