View Javadoc
1   /*
2    * Copyright (c) 2002-2017 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    * http://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 com.gargoylesoftware.htmlunit.javascript.host.svg;
16  
17  import static com.gargoylesoftware.htmlunit.javascript.configuration.SupportedBrowser.CHROME;
18  import static com.gargoylesoftware.htmlunit.javascript.configuration.SupportedBrowser.EDGE;
19  import static com.gargoylesoftware.htmlunit.javascript.configuration.SupportedBrowser.FF;
20  import static com.gargoylesoftware.htmlunit.javascript.configuration.SupportedBrowser.FF45;
21  import static com.gargoylesoftware.htmlunit.javascript.configuration.SupportedBrowser.FF52;
22  import static com.gargoylesoftware.htmlunit.javascript.configuration.SupportedBrowser.IE;
23  
24  import com.gargoylesoftware.htmlunit.javascript.configuration.JsxClass;
25  import com.gargoylesoftware.htmlunit.javascript.configuration.JsxConstructor;
26  import com.gargoylesoftware.htmlunit.javascript.configuration.JsxGetter;
27  import com.gargoylesoftware.htmlunit.javascript.configuration.JsxSetter;
28  import com.gargoylesoftware.htmlunit.javascript.host.Element;
29  import com.gargoylesoftware.htmlunit.javascript.host.css.CSSStyleDeclaration;
30  import com.gargoylesoftware.htmlunit.javascript.host.event.Event;
31  import com.gargoylesoftware.htmlunit.javascript.host.event.MouseEvent;
32  import com.gargoylesoftware.htmlunit.svg.SvgElement;
33  
34  import net.sourceforge.htmlunit.corejs.javascript.Function;
35  
36  /**
37   * A JavaScript object for {@code SVGElement}.
38   *
39   * @author Ahmed Ashour
40   */
41  @JsxClass(domClass = SvgElement.class)
42  public class SVGElement extends Element {
43  
44      /**
45       * Creates an instance.
46       */
47      @JsxConstructor({CHROME, FF, EDGE})
48      public SVGElement() {
49      }
50  
51      /**
52       * Returns the bounding box, in current user space, of the geometry of all contained graphics elements.
53       * @return the bounding box
54       */
55      protected SVGRect getBBox() {
56          final SVGRect rect = new SVGRect();
57          rect.setParentScope(getParentScope());
58          rect.setPrototype(getPrototype(rect.getClass()));
59          return rect;
60      }
61  
62      /**
63       * {@inheritDoc}
64       */
65      @Override
66      @JsxGetter
67      public CSSStyleDeclaration getStyle() {
68          return super.getStyle();
69      }
70  
71      /**
72       * {@inheritDoc}
73       */
74      @Override
75      @JsxSetter
76      public void setStyle(final String style) {
77          super.setStyle(style);
78      }
79  
80      /**
81       * {@inheritDoc}
82       */
83      @Override
84      @JsxGetter(IE)
85      public String getId() {
86          return super.getId();
87      }
88  
89      /**
90       * {@inheritDoc}
91       */
92      @Override
93      @JsxSetter(IE)
94      public void setId(final String newId) {
95          super.setId(newId);
96      }
97  
98      /**
99       * Returns the {@code onfocus} event handler.
100      * @return the {@code onfocus} event handler
101      */
102     @JsxGetter({CHROME, FF})
103     public Function getOnfocus() {
104         return getEventHandler(Event.TYPE_FOCUS);
105     }
106 
107     /**
108      * Sets the {@code onfocus} event handler.
109      * @param focus the {@code onfocus} event handler
110      */
111     @JsxSetter({CHROME, FF})
112     public void setOnfocus(final Object focus) {
113         setEventHandler(Event.TYPE_FOCUS, focus);
114     }
115 
116     /**
117      * Returns the {@code ondragend} event handler.
118      * @return the {@code ondragend} event handler
119      */
120     @JsxGetter({CHROME, FF})
121     public Function getOndragend() {
122         return getEventHandler("dragend");
123     }
124 
125     /**
126      * Sets the {@code ondragend} event handler.
127      * @param dragend the {@code ondragend} event handler
128      */
129     @JsxSetter({CHROME, FF})
130     public void setOndragend(final Object dragend) {
131         setEventHandler("dragend", dragend);
132     }
133 
134     /**
135      * Returns the {@code oninvalid} event handler.
136      * @return the {@code oninvalid} event handler
137      */
138     @JsxGetter({CHROME, FF})
139     public Function getOninvalid() {
140         return getEventHandler("invalid");
141     }
142 
143     /**
144      * Sets the {@code oninvalid} event handler.
145      * @param invalid the {@code oninvalid} event handler
146      */
147     @JsxSetter({CHROME, FF})
148     public void setOninvalid(final Object invalid) {
149         setEventHandler("invalid", invalid);
150     }
151 
152     /**
153      * {@inheritDoc}
154      */
155     @Override
156     @JsxGetter(CHROME)
157     public Function getOnpointercancel() {
158         return getEventHandler("pointercancel");
159     }
160 
161     /**
162      * {@inheritDoc}
163      */
164     @Override
165     @JsxSetter(CHROME)
166     public void setOnpointercancel(final Object pointercancel) {
167         setEventHandler("pointercancel", pointercancel);
168     }
169 
170     /**
171      * {@inheritDoc}
172      */
173     @Override
174     @JsxGetter(CHROME)
175     public Function getOnpointerout() {
176         return getEventHandler("pointerout");
177     }
178 
179     /**
180      * {@inheritDoc}
181      */
182     @Override
183     @JsxSetter(CHROME)
184     public void setOnpointerout(final Object pointerout) {
185         setEventHandler("pointerout", pointerout);
186     }
187 
188     /**
189      * Returns the {@code onratechange} event handler.
190      * @return the {@code onratechange} event handler
191      */
192     @JsxGetter({CHROME, FF})
193     public Function getOnratechange() {
194         return getEventHandler("ratechange");
195     }
196 
197     /**
198      * Sets the {@code onratechange} event handler.
199      * @param ratechange the {@code onratechange} event handler
200      */
201     @JsxSetter({CHROME, FF})
202     public void setOnratechange(final Object ratechange) {
203         setEventHandler("ratechange", ratechange);
204     }
205 
206     /**
207      * Returns the {@code onresize} event handler.
208      * @return the {@code onresize} event handler
209      */
210     @JsxGetter({CHROME, FF})
211     public Function getOnresize() {
212         return getEventHandler("resize");
213     }
214 
215     /**
216      * Sets the {@code onresize} event handler.
217      * @param resize the {@code onresize} event handler
218      */
219     @JsxSetter({CHROME, FF})
220     public void setOnresize(final Object resize) {
221         setEventHandler("resize", resize);
222     }
223 
224     /**
225      * Returns the {@code oncanplaythrough} event handler.
226      * @return the {@code oncanplaythrough} event handler
227      */
228     @JsxGetter({CHROME, FF})
229     public Function getOncanplaythrough() {
230         return getEventHandler("canplaythrough");
231     }
232 
233     /**
234      * Sets the {@code oncanplaythrough} event handler.
235      * @param canplaythrough the {@code oncanplaythrough} event handler
236      */
237     @JsxSetter({CHROME, FF})
238     public void setOncanplaythrough(final Object canplaythrough) {
239         setEventHandler("canplaythrough", canplaythrough);
240     }
241 
242     /**
243      * Returns the {@code oncancel} event handler.
244      * @return the {@code oncancel} event handler
245      */
246     @JsxGetter(CHROME)
247     public Function getOncancel() {
248         return getEventHandler("cancel");
249     }
250 
251     /**
252      * Sets the {@code oncancel} event handler.
253      * @param cancel the {@code oncancel} event handler
254      */
255     @JsxSetter(CHROME)
256     public void setOncancel(final Object cancel) {
257         setEventHandler("cancel", cancel);
258     }
259 
260     /**
261      * {@inheritDoc}
262      */
263     @Override
264     @JsxGetter(CHROME)
265     public Function getOnpointerenter() {
266         return getEventHandler("pointerenter");
267     }
268 
269     /**
270      * {@inheritDoc}
271      */
272     @Override
273     @JsxSetter(CHROME)
274     public void setOnpointerenter(final Object pointerenter) {
275         setEventHandler("pointerenter", pointerenter);
276     }
277 
278     /**
279      * Returns the {@code onselect} event handler.
280      * @return the {@code onselect} event handler
281      */
282     @JsxGetter({CHROME, FF})
283     public Function getOnselect() {
284         return getEventHandler("select");
285     }
286 
287     /**
288      * Sets the {@code onselect} event handler.
289      * @param select the {@code onselect} event handler
290      */
291     @JsxSetter({CHROME, FF})
292     public void setOnselect(final Object select) {
293         setEventHandler("select", select);
294     }
295 
296     /**
297      * Returns the {@code onauxclick} event handler.
298      * @return the {@code onauxclick} event handler
299      */
300     @JsxGetter(CHROME)
301     public Function getOnauxclick() {
302         return getEventHandler("auxclick");
303     }
304 
305     /**
306      * Sets the {@code onauxclick} event handler.
307      * @param auxclick the {@code onauxclick} event handler
308      */
309     @JsxSetter(CHROME)
310     public void setOnauxclick(final Object auxclick) {
311         setEventHandler("auxclick", auxclick);
312     }
313 
314     /**
315      * Returns the {@code onpause} event handler.
316      * @return the {@code onpause} event handler
317      */
318     @JsxGetter({CHROME, FF})
319     public Function getOnpause() {
320         return getEventHandler("pause");
321     }
322 
323     /**
324      * Sets the {@code onpause} event handler.
325      * @param pause the {@code onpause} event handler
326      */
327     @JsxSetter({CHROME, FF})
328     public void setOnpause(final Object pause) {
329         setEventHandler("pause", pause);
330     }
331 
332     /**
333      * Returns the {@code onloadstart} event handler.
334      * @return the {@code onloadstart} event handler
335      */
336     @JsxGetter({CHROME, FF})
337     public Function getOnloadstart() {
338         return getEventHandler("loadstart");
339     }
340 
341     /**
342      * Sets the {@code onloadstart} event handler.
343      * @param loadstart the {@code onloadstart} event handler
344      */
345     @JsxSetter({CHROME, FF})
346     public void setOnloadstart(final Object loadstart) {
347         setEventHandler("loadstart", loadstart);
348     }
349 
350     /**
351      * Returns the {@code onprogress} event handler.
352      * @return the {@code onprogress} event handler
353      */
354     @JsxGetter({CHROME, FF})
355     public Function getOnprogress() {
356         return getEventHandler("progress");
357     }
358 
359     /**
360      * Sets the {@code onprogress} event handler.
361      * @param progress the {@code onprogress} event handler
362      */
363     @JsxSetter({CHROME, FF})
364     public void setOnprogress(final Object progress) {
365         setEventHandler("progress", progress);
366     }
367 
368     /**
369      * {@inheritDoc}
370      */
371     @Override
372     @JsxGetter(CHROME)
373     public Function getOnpointerup() {
374         return getEventHandler("pointerup");
375     }
376 
377     /**
378      * {@inheritDoc}
379      */
380     @Override
381     @JsxSetter(CHROME)
382     public void setOnpointerup(final Object pointerup) {
383         setEventHandler("pointerup", pointerup);
384     }
385 
386     /**
387      * Returns the {@code onscroll} event handler.
388      * @return the {@code onscroll} event handler
389      */
390     @JsxGetter({CHROME, FF})
391     public Function getOnscroll() {
392         return getEventHandler("scroll");
393     }
394 
395     /**
396      * Sets the {@code onscroll} event handler.
397      * @param scroll the {@code onscroll} event handler
398      */
399     @JsxSetter({CHROME, FF})
400     public void setOnscroll(final Object scroll) {
401         setEventHandler("scroll", scroll);
402     }
403 
404     /**
405      * Returns the {@code onkeydown} event handler.
406      * @return the {@code onkeydown} event handler
407      */
408     @JsxGetter({CHROME, FF})
409     public Function getOnkeydown() {
410         return getEventHandler(Event.TYPE_KEY_DOWN);
411     }
412 
413     /**
414      * Sets the {@code onkeydown} event handler.
415      * @param keydown the {@code onkeydown} event handler
416      */
417     @JsxSetter({CHROME, FF})
418     public void setOnkeydown(final Object keydown) {
419         setEventHandler(Event.TYPE_KEY_DOWN, keydown);
420     }
421 
422     /**
423      * {@inheritDoc}
424      */
425     @Override
426     @JsxGetter(CHROME)
427     public Function getOnpointerleave() {
428         return getEventHandler("pointerleave");
429     }
430 
431     /**
432      * {@inheritDoc}
433      */
434     @Override
435     @JsxSetter(CHROME)
436     public void setOnpointerleave(final Object pointerleave) {
437         setEventHandler("pointerleave", pointerleave);
438     }
439 
440     /**
441      * Returns the {@code onmozpointerlockchange} event handler.
442      * @return the {@code onmozpointerlockchange} event handler
443      */
444     @JsxGetter(FF45)
445     public Function getOnmozpointerlockchange() {
446         return getEventHandler("mozpointerlockchange");
447     }
448 
449     /**
450      * Sets the {@code onmozpointerlockchange} event handler.
451      * @param mozpointerlockchange the {@code onmozpointerlockchange} event handler
452      */
453     @JsxSetter(FF45)
454     public void setOnmozpointerlockchange(final Object mozpointerlockchange) {
455         setEventHandler("mozpointerlockchange", mozpointerlockchange);
456     }
457 
458     /**
459      * Returns the {@code onclick} event handler.
460      * @return the {@code onclick} event handler
461      */
462     @JsxGetter({CHROME, FF})
463     public Function getOnclick() {
464         return getEventHandler(MouseEvent.TYPE_CLICK);
465     }
466 
467     /**
468      * Sets the {@code onclick} event handler.
469      * @param click the {@code onclick} event handler
470      */
471     @JsxSetter({CHROME, FF})
472     public void setOnclick(final Object click) {
473         setEventHandler(MouseEvent.TYPE_CLICK, click);
474     }
475 
476     /**
477      * Returns the {@code onkeyup} event handler.
478      * @return the {@code onkeyup} event handler
479      */
480     @JsxGetter({CHROME, FF})
481     public Function getOnkeyup() {
482         return getEventHandler(Event.TYPE_KEY_UP);
483     }
484 
485     /**
486      * Sets the {@code onkeyup} event handler.
487      * @param keyup the {@code onkeyup} event handler
488      */
489     @JsxSetter({CHROME, FF})
490     public void setOnkeyup(final Object keyup) {
491         setEventHandler(Event.TYPE_KEY_UP, keyup);
492     }
493 
494     /**
495      * Returns the {@code onchange} event handler.
496      * @return the {@code onchange} event handler
497      */
498     @JsxGetter({CHROME, FF})
499     public Function getOnchange() {
500         return getEventHandler(Event.TYPE_CHANGE);
501     }
502 
503     /**
504      * Sets the {@code onchange} event handler.
505      * @param change the {@code onchange} event handler
506      */
507     @JsxSetter({CHROME, FF})
508     public void setOnchange(final Object change) {
509         setEventHandler(Event.TYPE_CHANGE, change);
510     }
511 
512     /**
513      * Returns the {@code onreset} event handler.
514      * @return the {@code onreset} event handler
515      */
516     @JsxGetter({CHROME, FF})
517     public Function getOnreset() {
518         return getEventHandler(Event.TYPE_RESET);
519     }
520 
521     /**
522      * Sets the {@code onreset} event handler.
523      * @param reset the {@code onreset} event handler
524      */
525     @JsxSetter({CHROME, FF})
526     public void setOnreset(final Object reset) {
527         setEventHandler(Event.TYPE_RESET, reset);
528     }
529 
530     /**
531      * Returns the {@code onkeypress} event handler.
532      * @return the {@code onkeypress} event handler
533      */
534     @JsxGetter({CHROME, FF})
535     public Function getOnkeypress() {
536         return getEventHandler(Event.TYPE_KEY_PRESS);
537     }
538 
539     /**
540      * Sets the {@code onkeypress} event handler.
541      * @param keypress the {@code onkeypress} event handler
542      */
543     @JsxSetter({CHROME, FF})
544     public void setOnkeypress(final Object keypress) {
545         setEventHandler(Event.TYPE_KEY_PRESS, keypress);
546     }
547 
548     /**
549      * Returns the {@code ontimeupdate} event handler.
550      * @return the {@code ontimeupdate} event handler
551      */
552     @JsxGetter({CHROME, FF})
553     public Function getOntimeupdate() {
554         return getEventHandler("timeupdate");
555     }
556 
557     /**
558      * Sets the {@code ontimeupdate} event handler.
559      * @param timeupdate the {@code ontimeupdate} event handler
560      */
561     @JsxSetter({CHROME, FF})
562     public void setOntimeupdate(final Object timeupdate) {
563         setEventHandler("timeupdate", timeupdate);
564     }
565 
566     /**
567      * Returns the {@code ondblclick} event handler.
568      * @return the {@code ondblclick} event handler
569      */
570     @JsxGetter({CHROME, FF})
571     public Function getOndblclick() {
572         return getEventHandler(MouseEvent.TYPE_DBL_CLICK);
573     }
574 
575     /**
576      * Sets the {@code ondblclick} event handler.
577      * @param dblclick the {@code ondblclick} event handler
578      */
579     @JsxSetter({CHROME, FF})
580     public void setOndblclick(final Object dblclick) {
581         setEventHandler(MouseEvent.TYPE_DBL_CLICK, dblclick);
582     }
583 
584     /**
585      * Returns the {@code ondrag} event handler.
586      * @return the {@code ondrag} event handler
587      */
588     @JsxGetter({CHROME, FF})
589     public Function getOndrag() {
590         return getEventHandler("drag");
591     }
592 
593     /**
594      * Sets the {@code ondrag} event handler.
595      * @param drag the {@code ondrag} event handler
596      */
597     @JsxSetter({CHROME, FF})
598     public void setOndrag(final Object drag) {
599         setEventHandler("drag", drag);
600     }
601 
602     /**
603      * Returns the {@code onseeked} event handler.
604      * @return the {@code onseeked} event handler
605      */
606     @JsxGetter({CHROME, FF})
607     public Function getOnseeked() {
608         return getEventHandler("seeked");
609     }
610 
611     /**
612      * Sets the {@code onseeked} event handler.
613      * @param seeked the {@code onseeked} event handler
614      */
615     @JsxSetter({CHROME, FF})
616     public void setOnseeked(final Object seeked) {
617         setEventHandler("seeked", seeked);
618     }
619 
620     /**
621      * Returns the {@code onabort} event handler.
622      * @return the {@code onabort} event handler
623      */
624     @JsxGetter({CHROME, FF})
625     public Function getOnabort() {
626         return getEventHandler("abort");
627     }
628 
629     /**
630      * Sets the {@code onabort} event handler.
631      * @param abort the {@code onabort} event handler
632      */
633     @JsxSetter({CHROME, FF})
634     public void setOnabort(final Object abort) {
635         setEventHandler("abort", abort);
636     }
637 
638     /**
639      * Returns the {@code onloadedmetadata} event handler.
640      * @return the {@code onloadedmetadata} event handler
641      */
642     @JsxGetter({CHROME, FF})
643     public Function getOnloadedmetadata() {
644         return getEventHandler("loadedmetadata");
645     }
646 
647     /**
648      * Sets the {@code onloadedmetadata} event handler.
649      * @param loadedmetadata the {@code onloadedmetadata} event handler
650      */
651     @JsxSetter({CHROME, FF})
652     public void setOnloadedmetadata(final Object loadedmetadata) {
653         setEventHandler("loadedmetadata", loadedmetadata);
654     }
655 
656     /**
657      * Returns the {@code ontoggle} event handler.
658      * @return the {@code ontoggle} event handler
659      */
660     @JsxGetter({CHROME, FF52})
661     public Function getOntoggle() {
662         return getEventHandler("toggle");
663     }
664 
665     /**
666      * Sets the {@code ontoggle} event handler.
667      * @param toggle the {@code ontoggle} event handler
668      */
669     @JsxSetter({CHROME, FF52})
670     public void setOntoggle(final Object toggle) {
671         setEventHandler("toggle", toggle);
672     }
673 
674     /**
675      * Returns the {@code onplay} event handler.
676      * @return the {@code onplay} event handler
677      */
678     @JsxGetter({CHROME, FF})
679     public Function getOnplay() {
680         return getEventHandler("play");
681     }
682 
683     /**
684      * Sets the {@code onplay} event handler.
685      * @param play the {@code onplay} event handler
686      */
687     @JsxSetter({CHROME, FF})
688     public void setOnplay(final Object play) {
689         setEventHandler("play", play);
690     }
691 
692     /**
693      * Returns the {@code oncontextmenu} event handler.
694      * @return the {@code oncontextmenu} event handler
695      */
696     @JsxGetter({CHROME, FF})
697     public Function getOncontextmenu() {
698         return getEventHandler(MouseEvent.TYPE_CONTEXT_MENU);
699     }
700 
701     /**
702      * Sets the {@code oncontextmenu} event handler.
703      * @param contextmenu the {@code oncontextmenu} event handler
704      */
705     @JsxSetter({CHROME, FF})
706     public void setOncontextmenu(final Object contextmenu) {
707         setEventHandler(MouseEvent.TYPE_CONTEXT_MENU, contextmenu);
708     }
709 
710     /**
711      * Returns the {@code onmousemove} event handler.
712      * @return the {@code onmousemove} event handler
713      */
714     @JsxGetter({CHROME, FF})
715     public Function getOnmousemove() {
716         return getEventHandler(MouseEvent.TYPE_MOUSE_MOVE);
717     }
718 
719     /**
720      * Sets the {@code onmousemove} event handler.
721      * @param mousemove the {@code onmousemove} event handler
722      */
723     @JsxSetter({CHROME, FF})
724     public void setOnmousemove(final Object mousemove) {
725         setEventHandler(MouseEvent.TYPE_MOUSE_MOVE, mousemove);
726     }
727 
728     /**
729      * Returns the {@code onerror} event handler.
730      * @return the {@code onerror} event handler
731      */
732     @JsxGetter({CHROME, FF})
733     public Function getOnerror() {
734         return getEventHandler(Event.TYPE_ERROR);
735     }
736 
737     /**
738      * Sets the {@code onerror} event handler.
739      * @param error the {@code onerror} event handler
740      */
741     @JsxSetter({CHROME, FF})
742     public void setOnerror(final Object error) {
743         setEventHandler(Event.TYPE_ERROR, error);
744     }
745 
746     /**
747      * Returns the {@code onmouseup} event handler.
748      * @return the {@code onmouseup} event handler
749      */
750     @JsxGetter({CHROME, FF})
751     public Function getOnmouseup() {
752         return getEventHandler(MouseEvent.TYPE_MOUSE_UP);
753     }
754 
755     /**
756      * Sets the {@code onmouseup} event handler.
757      * @param mouseup the {@code onmouseup} event handler
758      */
759     @JsxSetter({CHROME, FF})
760     public void setOnmouseup(final Object mouseup) {
761         setEventHandler(MouseEvent.TYPE_MOUSE_UP, mouseup);
762     }
763 
764     /**
765      * Returns the {@code ondragover} event handler.
766      * @return the {@code ondragover} event handler
767      */
768     @JsxGetter({CHROME, FF})
769     public Function getOndragover() {
770         return getEventHandler("dragover");
771     }
772 
773     /**
774      * Sets the {@code ondragover} event handler.
775      * @param dragover the {@code ondragover} event handler
776      */
777     @JsxSetter({CHROME, FF})
778     public void setOndragover(final Object dragover) {
779         setEventHandler("dragover", dragover);
780     }
781 
782     /**
783      * {@inheritDoc}
784      */
785     @Override
786     @JsxGetter(CHROME)
787     public Function getOnpointermove() {
788         return getEventHandler("pointermove");
789     }
790 
791     /**
792      * {@inheritDoc}
793      */
794     @Override
795     @JsxSetter(CHROME)
796     public void setOnpointermove(final Object pointermove) {
797         setEventHandler("pointermove", pointermove);
798     }
799 
800     /**
801      * {@inheritDoc}
802      */
803     @Override
804     @JsxGetter(FF)
805     public Function getOncut() {
806         return getEventHandler("cut");
807     }
808 
809     /**
810      * {@inheritDoc}
811      */
812     @Override
813     @JsxSetter(FF)
814     public void setOncut(final Object cut) {
815         setEventHandler("cut", cut);
816     }
817 
818     /**
819      * Returns the {@code onmouseover} event handler.
820      * @return the {@code onmouseover} event handler
821      */
822     @JsxGetter({CHROME, FF})
823     public Function getOnmouseover() {
824         return getEventHandler(MouseEvent.TYPE_MOUSE_OVER);
825     }
826 
827     /**
828      * Sets the {@code onmouseover} event handler.
829      * @param mouseover the {@code onmouseover} event handler
830      */
831     @JsxSetter({CHROME, FF})
832     public void setOnmouseover(final Object mouseover) {
833         setEventHandler(MouseEvent.TYPE_MOUSE_OVER, mouseover);
834     }
835 
836     /**
837      * Returns the {@code oninput} event handler.
838      * @return the {@code oninput} event handler
839      */
840     @JsxGetter({CHROME, FF})
841     public Function getOninput() {
842         return getEventHandler(Event.TYPE_INPUT);
843     }
844 
845     /**
846      * Sets the {@code oninput} event handler.
847      * @param input the {@code oninput} event handler
848      */
849     @JsxSetter({CHROME, FF})
850     public void setOninput(final Object input) {
851         setEventHandler(Event.TYPE_INPUT, input);
852     }
853 
854     /**
855      * Returns the {@code onmozpointerlockerror} event handler.
856      * @return the {@code onmozpointerlockerror} event handler
857      */
858     @JsxGetter(FF45)
859     public Function getOnmozpointerlockerror() {
860         return getEventHandler("mozpointerlockerror");
861     }
862 
863     /**
864      * Sets the {@code onmozpointerlockerror} event handler.
865      * @param mozpointerlockerror the {@code onmozpointerlockerror} event handler
866      */
867     @JsxSetter(FF45)
868     public void setOnmozpointerlockerror(final Object mozpointerlockerror) {
869         setEventHandler("mozpointerlockerror", mozpointerlockerror);
870     }
871 
872     /**
873      * {@inheritDoc}
874      */
875     @Override
876     @JsxGetter(CHROME)
877     public Function getOnlostpointercapture() {
878         return getEventHandler("lostpointercapture");
879     }
880 
881     /**
882      * {@inheritDoc}
883      */
884     @Override
885     @JsxSetter(CHROME)
886     public void setOnlostpointercapture(final Object lostpointercapture) {
887         setEventHandler("lostpointercapture", lostpointercapture);
888     }
889 
890     /**
891      * Returns the {@code onstalled} event handler.
892      * @return the {@code onstalled} event handler
893      */
894     @JsxGetter({CHROME, FF})
895     public Function getOnstalled() {
896         return getEventHandler("stalled");
897     }
898 
899     /**
900      * Sets the {@code onstalled} event handler.
901      * @param stalled the {@code onstalled} event handler
902      */
903     @JsxSetter({CHROME, FF})
904     public void setOnstalled(final Object stalled) {
905         setEventHandler("stalled", stalled);
906     }
907 
908     /**
909      * {@inheritDoc}
910      */
911     @Override
912     @JsxGetter(CHROME)
913     public Function getOnpointerover() {
914         return getEventHandler("pointerover");
915     }
916 
917     /**
918      * {@inheritDoc}
919      */
920     @Override
921     @JsxSetter(CHROME)
922     public void setOnpointerover(final Object pointerover) {
923         setEventHandler("pointerover", pointerover);
924     }
925 
926     /**
927      * Returns the {@code onclose} event handler.
928      * @return the {@code onclose} event handler
929      */
930     @JsxGetter(CHROME)
931     public Function getOnclose() {
932         return getEventHandler(Event.TYPE_CLOSE);
933     }
934 
935     /**
936      * Sets the {@code onclose} event handler.
937      * @param close the {@code onclose} event handler
938      */
939     @JsxSetter(CHROME)
940     public void setOnclose(final Object close) {
941         setEventHandler(Event.TYPE_CLOSE, close);
942     }
943 
944     /**
945      * Returns the {@code ondragenter} event handler.
946      * @return the {@code ondragenter} event handler
947      */
948     @JsxGetter({CHROME, FF})
949     public Function getOndragenter() {
950         return getEventHandler("dragenter");
951     }
952 
953     /**
954      * Sets the {@code ondragenter} event handler.
955      * @param dragenter the {@code ondragenter} event handler
956      */
957     @JsxSetter({CHROME, FF})
958     public void setOndragenter(final Object dragenter) {
959         setEventHandler("dragenter", dragenter);
960     }
961 
962     /**
963      * Returns the {@code onmozfullscreenerror} event handler.
964      * @return the {@code onmozfullscreenerror} event handler
965      */
966     @JsxGetter(FF)
967     public Function getOnmozfullscreenerror() {
968         return getEventHandler("mozfullscreenerror");
969     }
970 
971     /**
972      * Sets the {@code onmozfullscreenerror} event handler.
973      * @param mozfullscreenerror the {@code onmozfullscreenerror} event handler
974      */
975     @JsxSetter(FF)
976     public void setOnmozfullscreenerror(final Object mozfullscreenerror) {
977         setEventHandler("mozfullscreenerror", mozfullscreenerror);
978     }
979 
980     /**
981      * Returns the {@code onsubmit} event handler.
982      * @return the {@code onsubmit} event handler
983      */
984     @JsxGetter({CHROME, FF})
985     public Function getOnsubmit() {
986         return getEventHandler(Event.TYPE_SUBMIT);
987     }
988 
989     /**
990      * Sets the {@code onsubmit} event handler.
991      * @param submit the {@code onsubmit} event handler
992      */
993     @JsxSetter({CHROME, FF})
994     public void setOnsubmit(final Object submit) {
995         setEventHandler(Event.TYPE_SUBMIT, submit);
996     }
997 
998     /**
999      * Returns the {@code onmouseleave} event handler.
1000      * @return the {@code onmouseleave} event handler
1001      */
1002     @JsxGetter({CHROME, FF})
1003     public Function getOnmouseleave() {
1004         return getEventHandler("mouseleave");
1005     }
1006 
1007     /**
1008      * Sets the {@code onmouseleave} event handler.
1009      * @param mouseleave the {@code onmouseleave} event handler
1010      */
1011     @JsxSetter({CHROME, FF})
1012     public void setOnmouseleave(final Object mouseleave) {
1013         setEventHandler("mouseleave", mouseleave);
1014     }
1015 
1016     /**
1017      * Returns the {@code onmouseenter} event handler.
1018      * @return the {@code onmouseenter} event handler
1019      */
1020     @JsxGetter({CHROME, FF})
1021     public Function getOnmouseenter() {
1022         return getEventHandler("mouseenter");
1023     }
1024 
1025     /**
1026      * Sets the {@code onmouseenter} event handler.
1027      * @param mouseenter the {@code onmouseenter} event handler
1028      */
1029     @JsxSetter({CHROME, FF})
1030     public void setOnmouseenter(final Object mouseenter) {
1031         setEventHandler("mouseenter", mouseenter);
1032     }
1033 
1034     /**
1035      * Returns the {@code ondragleave} event handler.
1036      * @return the {@code ondragleave} event handler
1037      */
1038     @JsxGetter({CHROME, FF})
1039     public Function getOndragleave() {
1040         return getEventHandler("dragleave");
1041     }
1042 
1043     /**
1044      * Sets the {@code ondragleave} event handler.
1045      * @param dragleave the {@code ondragleave} event handler
1046      */
1047     @JsxSetter({CHROME, FF})
1048     public void setOndragleave(final Object dragleave) {
1049         setEventHandler("dragleave", dragleave);
1050     }
1051 
1052     /**
1053      * Returns the {@code onmousewheel} event handler.
1054      * @return the {@code onmousewheel} event handler
1055      */
1056     @JsxGetter(CHROME)
1057     public Function getOnmousewheel() {
1058         return getEventHandler("mousewheel");
1059     }
1060 
1061     /**
1062      * Sets the {@code onmousewheel} event handler.
1063      * @param mousewheel the {@code onmousewheel} event handler
1064      */
1065     @JsxSetter(CHROME)
1066     public void setOnmousewheel(final Object mousewheel) {
1067         setEventHandler("mousewheel", mousewheel);
1068     }
1069 
1070     /**
1071      * {@inheritDoc}
1072      */
1073     @Override
1074     @JsxGetter(CHROME)
1075     public Function getOnpointerdown() {
1076         return getEventHandler("pointerdown");
1077     }
1078 
1079     /**
1080      * {@inheritDoc}
1081      */
1082     @Override
1083     @JsxSetter(CHROME)
1084     public void setOnpointerdown(final Object pointerdown) {
1085         setEventHandler("pointerdown", pointerdown);
1086     }
1087 
1088     /**
1089      * Returns the {@code onseeking} event handler.
1090      * @return the {@code onseeking} event handler
1091      */
1092     @JsxGetter({CHROME, FF})
1093     public Function getOnseeking() {
1094         return getEventHandler("seeking");
1095     }
1096 
1097     /**
1098      * Sets the {@code onseeking} event handler.
1099      * @param seeking the {@code onseeking} event handler
1100      */
1101     @JsxSetter({CHROME, FF})
1102     public void setOnseeking(final Object seeking) {
1103         setEventHandler("seeking", seeking);
1104     }
1105 
1106     /**
1107      * Returns the {@code onblur} event handler.
1108      * @return the {@code onblur} event handler
1109      */
1110     @JsxGetter({CHROME, FF})
1111     public Function getOnblur() {
1112         return getEventHandler(Event.TYPE_BLUR);
1113     }
1114 
1115     /**
1116      * Sets the {@code onblur} event handler.
1117      * @param blur the {@code onblur} event handler
1118      */
1119     @JsxSetter({CHROME, FF})
1120     public void setOnblur(final Object blur) {
1121         setEventHandler(Event.TYPE_BLUR, blur);
1122     }
1123 
1124     /**
1125      * Returns the {@code oncuechange} event handler.
1126      * @return the {@code oncuechange} event handler
1127      */
1128     @JsxGetter(CHROME)
1129     public Function getOncuechange() {
1130         return getEventHandler("cuechange");
1131     }
1132 
1133     /**
1134      * Sets the {@code oncuechange} event handler.
1135      * @param cuechange the {@code oncuechange} event handler
1136      */
1137     @JsxSetter(CHROME)
1138     public void setOncuechange(final Object cuechange) {
1139         setEventHandler("cuechange", cuechange);
1140     }
1141 
1142     /**
1143      * Returns the {@code ondrop} event handler.
1144      * @return the {@code ondrop} event handler
1145      */
1146     @JsxGetter({CHROME, FF})
1147     public Function getOndrop() {
1148         return getEventHandler("drop");
1149     }
1150 
1151     /**
1152      * Sets the {@code ondrop} event handler.
1153      * @param drop the {@code ondrop} event handler
1154      */
1155     @JsxSetter({CHROME, FF})
1156     public void setOndrop(final Object drop) {
1157         setEventHandler("drop", drop);
1158     }
1159 
1160     /**
1161      * Returns the {@code ondragstart} event handler.
1162      * @return the {@code ondragstart} event handler
1163      */
1164     @JsxGetter({CHROME, FF})
1165     public Function getOndragstart() {
1166         return getEventHandler("dragstart");
1167     }
1168 
1169     /**
1170      * Sets the {@code ondragstart} event handler.
1171      * @param dragstart the {@code ondragstart} event handler
1172      */
1173     @JsxSetter({CHROME, FF})
1174     public void setOndragstart(final Object dragstart) {
1175         setEventHandler("dragstart", dragstart);
1176     }
1177 
1178     /**
1179      * Returns the {@code onmozfullscreenchange} event handler.
1180      * @return the {@code onmozfullscreenchange} event handler
1181      */
1182     @JsxGetter(FF)
1183     public Function getOnmozfullscreenchange() {
1184         return getEventHandler("mozfullscreenchange");
1185     }
1186 
1187     /**
1188      * Sets the {@code onmozfullscreenchange} event handler.
1189      * @param mozfullscreenchange the {@code onmozfullscreenchange} event handler
1190      */
1191     @JsxSetter(FF)
1192     public void setOnmozfullscreenchange(final Object mozfullscreenchange) {
1193         setEventHandler("mozfullscreenchange", mozfullscreenchange);
1194     }
1195 
1196     /**
1197      * Returns the {@code ondurationchange} event handler.
1198      * @return the {@code ondurationchange} event handler
1199      */
1200     @JsxGetter({CHROME, FF})
1201     public Function getOndurationchange() {
1202         return getEventHandler("durationchange");
1203     }
1204 
1205     /**
1206      * Sets the {@code ondurationchange} event handler.
1207      * @param durationchange the {@code ondurationchange} event handler
1208      */
1209     @JsxSetter({CHROME, FF})
1210     public void setOndurationchange(final Object durationchange) {
1211         setEventHandler("durationchange", durationchange);
1212     }
1213 
1214     /**
1215      * Returns the {@code onplaying} event handler.
1216      * @return the {@code onplaying} event handler
1217      */
1218     @JsxGetter({CHROME, FF})
1219     public Function getOnplaying() {
1220         return getEventHandler("playing");
1221     }
1222 
1223     /**
1224      * Sets the {@code onplaying} event handler.
1225      * @param playing the {@code onplaying} event handler
1226      */
1227     @JsxSetter({CHROME, FF})
1228     public void setOnplaying(final Object playing) {
1229         setEventHandler("playing", playing);
1230     }
1231 
1232     /**
1233      * Returns the {@code onload} event handler.
1234      * @return the {@code onload} event handler
1235      */
1236     @JsxGetter({CHROME, FF})
1237     public Function getOnload() {
1238         return getEventHandler(Event.TYPE_LOAD);
1239     }
1240 
1241     /**
1242      * Sets the {@code onload} event handler.
1243      * @param load the {@code onload} event handler
1244      */
1245     @JsxSetter({CHROME, FF})
1246     public void setOnload(final Object load) {
1247         setEventHandler(Event.TYPE_LOAD, load);
1248     }
1249 
1250     /**
1251      * Returns the {@code onended} event handler.
1252      * @return the {@code onended} event handler
1253      */
1254     @JsxGetter({CHROME, FF})
1255     public Function getOnended() {
1256         return getEventHandler("ended");
1257     }
1258 
1259     /**
1260      * Sets the {@code onended} event handler.
1261      * @param ended the {@code onended} event handler
1262      */
1263     @JsxSetter({CHROME, FF})
1264     public void setOnended(final Object ended) {
1265         setEventHandler("ended", ended);
1266     }
1267 
1268     /**
1269      * Returns the {@code onloadeddata} event handler.
1270      * @return the {@code onloadeddata} event handler
1271      */
1272     @JsxGetter({CHROME, FF})
1273     public Function getOnloadeddata() {
1274         return getEventHandler("loadeddata");
1275     }
1276 
1277     /**
1278      * Sets the {@code onloadeddata} event handler.
1279      * @param loadeddata the {@code onloadeddata} event handler
1280      */
1281     @JsxSetter({CHROME, FF})
1282     public void setOnloadeddata(final Object loadeddata) {
1283         setEventHandler("loadeddata", loadeddata);
1284     }
1285 
1286     /**
1287      * Returns the {@code onshow} event handler.
1288      * @return the {@code onshow} event handler
1289      */
1290     @JsxGetter({CHROME, FF})
1291     public Function getOnshow() {
1292         return getEventHandler("show");
1293     }
1294 
1295     /**
1296      * Sets the {@code onshow} event handler.
1297      * @param show the {@code onshow} event handler
1298      */
1299     @JsxSetter({CHROME, FF})
1300     public void setOnshow(final Object show) {
1301         setEventHandler("show", show);
1302     }
1303 
1304     /**
1305      * {@inheritDoc}
1306      */
1307     @Override
1308     @JsxGetter(FF)
1309     public Function getOncopy() {
1310         return getEventHandler("copy");
1311     }
1312 
1313     /**
1314      * {@inheritDoc}
1315      */
1316     @Override
1317     @JsxSetter(FF)
1318     public void setOncopy(final Object copy) {
1319         setEventHandler("copy", copy);
1320     }
1321 
1322     /**
1323      * {@inheritDoc}
1324      */
1325     @Override
1326     @JsxGetter(FF)
1327     public Function getOnpaste() {
1328         return getEventHandler("paste");
1329     }
1330 
1331     /**
1332      * {@inheritDoc}
1333      */
1334     @Override
1335     @JsxSetter(FF)
1336     public void setOnpaste(final Object paste) {
1337         setEventHandler("paste", paste);
1338     }
1339 
1340     /**
1341      * Returns the {@code onmouseout} event handler.
1342      * @return the {@code onmouseout} event handler
1343      */
1344     @JsxGetter({CHROME, FF})
1345     public Function getOnmouseout() {
1346         return getEventHandler(MouseEvent.TYPE_MOUSE_OUT);
1347     }
1348 
1349     /**
1350      * Sets the {@code onmouseout} event handler.
1351      * @param mouseout the {@code onmouseout} event handler
1352      */
1353     @JsxSetter({CHROME, FF})
1354     public void setOnmouseout(final Object mouseout) {
1355         setEventHandler(MouseEvent.TYPE_MOUSE_OUT, mouseout);
1356     }
1357 
1358     /**
1359      * Returns the {@code onsuspend} event handler.
1360      * @return the {@code onsuspend} event handler
1361      */
1362     @JsxGetter({CHROME, FF})
1363     public Function getOnsuspend() {
1364         return getEventHandler("suspend");
1365     }
1366 
1367     /**
1368      * Sets the {@code onsuspend} event handler.
1369      * @param suspend the {@code onsuspend} event handler
1370      */
1371     @JsxSetter({CHROME, FF})
1372     public void setOnsuspend(final Object suspend) {
1373         setEventHandler("suspend", suspend);
1374     }
1375 
1376     /**
1377      * Returns the {@code onvolumechange} event handler.
1378      * @return the {@code onvolumechange} event handler
1379      */
1380     @JsxGetter({CHROME, FF})
1381     public Function getOnvolumechange() {
1382         return getEventHandler("volumechange");
1383     }
1384 
1385     /**
1386      * Sets the {@code onvolumechange} event handler.
1387      * @param volumechange the {@code onvolumechange} event handler
1388      */
1389     @JsxSetter({CHROME, FF})
1390     public void setOnvolumechange(final Object volumechange) {
1391         setEventHandler("volumechange", volumechange);
1392     }
1393 
1394     /**
1395      * Returns the {@code onwaiting} event handler.
1396      * @return the {@code onwaiting} event handler
1397      */
1398     @JsxGetter({CHROME, FF})
1399     public Function getOnwaiting() {
1400         return getEventHandler("waiting");
1401     }
1402 
1403     /**
1404      * Sets the {@code onwaiting} event handler.
1405      * @param waiting the {@code onwaiting} event handler
1406      */
1407     @JsxSetter({CHROME, FF})
1408     public void setOnwaiting(final Object waiting) {
1409         setEventHandler("waiting", waiting);
1410     }
1411 
1412     /**
1413      * Returns the {@code oncanplay} event handler.
1414      * @return the {@code oncanplay} event handler
1415      */
1416     @JsxGetter({CHROME, FF})
1417     public Function getOncanplay() {
1418         return getEventHandler("canplay");
1419     }
1420 
1421     /**
1422      * Sets the {@code oncanplay} event handler.
1423      * @param canplay the {@code oncanplay} event handler
1424      */
1425     @JsxSetter({CHROME, FF})
1426     public void setOncanplay(final Object canplay) {
1427         setEventHandler("canplay", canplay);
1428     }
1429 
1430     /**
1431      * Returns the {@code onmousedown} event handler.
1432      * @return the {@code onmousedown} event handler
1433      */
1434     @JsxGetter({CHROME, FF})
1435     public Function getOnmousedown() {
1436         return getEventHandler(MouseEvent.TYPE_MOUSE_DOWN);
1437     }
1438 
1439     /**
1440      * Sets the {@code onmousedown} event handler.
1441      * @param mousedown the {@code onmousedown} event handler
1442      */
1443     @JsxSetter({CHROME, FF})
1444     public void setOnmousedown(final Object mousedown) {
1445         setEventHandler(MouseEvent.TYPE_MOUSE_DOWN, mousedown);
1446     }
1447 
1448     /**
1449      * Returns the {@code onemptied} event handler.
1450      * @return the {@code onemptied} event handler
1451      */
1452     @JsxGetter({CHROME, FF})
1453     public Function getOnemptied() {
1454         return getEventHandler("emptied");
1455     }
1456 
1457     /**
1458      * Sets the {@code onemptied} event handler.
1459      * @param emptied the {@code onemptied} event handler
1460      */
1461     @JsxSetter({CHROME, FF})
1462     public void setOnemptied(final Object emptied) {
1463         setEventHandler("emptied", emptied);
1464     }
1465 
1466     /**
1467      * {@inheritDoc}
1468      */
1469     @Override
1470     @JsxGetter(CHROME)
1471     public Function getOngotpointercapture() {
1472         return getEventHandler("gotpointercapture");
1473     }
1474 
1475     /**
1476      * {@inheritDoc}
1477      */
1478     @Override
1479     @JsxSetter(CHROME)
1480     public void setOngotpointercapture(final Object gotpointercapture) {
1481         setEventHandler("gotpointercapture", gotpointercapture);
1482     }
1483 
1484     /**
1485      * Returns the {@code onanimationiteration} event handler.
1486      * @return the {@code onanimationiteration} event handler
1487      */
1488     @JsxGetter(FF52)
1489     public Function getOnanimationiteration() {
1490         return getEventHandler("animationiteration");
1491     }
1492 
1493     /**
1494      * Sets the {@code onanimationiteration} event handler.
1495      * @param animationiteration the {@code onanimationiteration} event handler
1496      */
1497     @JsxSetter(FF52)
1498     public void setOnanimationiteration(final Object animationiteration) {
1499         setEventHandler("animationiteration", animationiteration);
1500     }
1501 
1502     /**
1503      * Returns the {@code onwebkittransitionend} event handler.
1504      * @return the {@code onwebkittransitionend} event handler
1505      */
1506     @JsxGetter(FF52)
1507     public Function getOnwebkittransitionend() {
1508         return getEventHandler("webkittransitionend");
1509     }
1510 
1511     /**
1512      * Sets the {@code onwebkittransitionend} event handler.
1513      * @param webkittransitionend the {@code onwebkittransitionend} event handler
1514      */
1515     @JsxSetter(FF52)
1516     public void setOnwebkittransitionend(final Object webkittransitionend) {
1517         setEventHandler("webkittransitionend", webkittransitionend);
1518     }
1519 
1520     /**
1521      * Returns the {@code onanimationstart} event handler.
1522      * @return the {@code onanimationstart} event handler
1523      */
1524     @JsxGetter(FF52)
1525     public Function getOnanimationstart() {
1526         return getEventHandler("animationstart");
1527     }
1528 
1529     /**
1530      * Sets the {@code onanimationstart} event handler.
1531      * @param animationstart the {@code onanimationstart} event handler
1532      */
1533     @JsxSetter(FF52)
1534     public void setOnanimationstart(final Object animationstart) {
1535         setEventHandler("animationstart", animationstart);
1536     }
1537 
1538     /**
1539      * Returns the {@code onwebkitanimationstart} event handler.
1540      * @return the {@code onwebkitanimationstart} event handler
1541      */
1542     @JsxGetter(FF52)
1543     public Function getOnwebkitanimationstart() {
1544         return getEventHandler("webkitanimationstart");
1545     }
1546 
1547     /**
1548      * Sets the {@code onwebkitanimationstart} event handler.
1549      * @param webkitanimationstart the {@code onwebkitanimationstart} event handler
1550      */
1551     @JsxSetter(FF52)
1552     public void setOnwebkitanimationstart(final Object webkitanimationstart) {
1553         setEventHandler("webkitanimationstart", webkitanimationstart);
1554     }
1555 
1556     /**
1557      * Returns the {@code onwebkitanimationiteration} event handler.
1558      * @return the {@code onwebkitanimationiteration} event handler
1559      */
1560     @JsxGetter(FF52)
1561     public Function getOnwebkitanimationiteration() {
1562         return getEventHandler("webkitanimationiteration");
1563     }
1564 
1565     /**
1566      * Sets the {@code onwebkitanimationiteration} event handler.
1567      * @param webkitanimationiteration the {@code onwebkitanimationiteration} event handler
1568      */
1569     @JsxSetter(FF52)
1570     public void setOnwebkitanimationiteration(final Object webkitanimationiteration) {
1571         setEventHandler("webkitanimationiteration", webkitanimationiteration);
1572     }
1573 
1574     /**
1575      * Returns the {@code onanimationend} event handler.
1576      * @return the {@code onanimationend} event handler
1577      */
1578     @JsxGetter(FF52)
1579     public Function getOnanimationend() {
1580         return getEventHandler("animationend");
1581     }
1582 
1583     /**
1584      * Sets the {@code onanimationend} event handler.
1585      * @param animationend the {@code onanimationend} event handler
1586      */
1587     @JsxSetter(FF52)
1588     public void setOnanimationend(final Object animationend) {
1589         setEventHandler("animationend", animationend);
1590     }
1591 
1592     /**
1593      * Returns the {@code onwebkitanimationend} event handler.
1594      * @return the {@code onwebkitanimationend} event handler
1595      */
1596     @JsxGetter(FF52)
1597     public Function getOnwebkitanimationend() {
1598         return getEventHandler("webkitanimationend");
1599     }
1600 
1601     /**
1602      * Sets the {@code onwebkitanimationend} event handler.
1603      * @param webkitanimationend the {@code onwebkitanimationend} event handler
1604      */
1605     @JsxSetter(FF52)
1606     public void setOnwebkitanimationend(final Object webkitanimationend) {
1607         setEventHandler("webkitanimationend", webkitanimationend);
1608     }
1609 
1610     /**
1611      * Returns the {@code ontransitionend} event handler.
1612      * @return the {@code ontransitionend} event handler
1613      */
1614     @JsxGetter(FF52)
1615     public Function getOntransitionend() {
1616         return getEventHandler("transitionend");
1617     }
1618 
1619     /**
1620      * Sets the {@code ontransitionend} event handler.
1621      * @param transitionend the {@code ontransitionend} event handler
1622      */
1623     @JsxSetter(FF52)
1624     public void setOntransitionend(final Object transitionend) {
1625         setEventHandler("transitionend", transitionend);
1626     }
1627 
1628     /**
1629      * {@inheritDoc}
1630      */
1631     @Override
1632     @JsxGetter(FF52)
1633     public Function getOnselectstart() {
1634         return getEventHandler("selectstart");
1635     }
1636 
1637     /**
1638      * {@inheritDoc}
1639      */
1640     @Override
1641     @JsxSetter(FF52)
1642     public void setOnselectstart(final Object selectstart) {
1643         setEventHandler("selectstart", selectstart);
1644     }
1645 
1646     /**
1647      * Returns the {@code onloadend} event handler.
1648      * @return the {@code onloadend} event handler
1649      */
1650     @JsxGetter(FF52)
1651     public Function getOnloadend() {
1652         return getEventHandler("loadend");
1653     }
1654 
1655     /**
1656      * Sets the {@code onloadend} event handler.
1657      * @param loadend the {@code onloadend} event handler
1658      */
1659     @JsxSetter(FF52)
1660     public void setOnloadend(final Object loadend) {
1661         setEventHandler("loadend", loadend);
1662     }
1663 
1664     /**
1665      * Returns the {@code ondragexit} event handler.
1666      * @return the {@code ondragexit} event handler
1667      */
1668     @JsxGetter(FF52)
1669     public Function getOndragexit() {
1670         return getEventHandler("dragexit");
1671     }
1672 
1673     /**
1674      * Sets the {@code ondragexit} event handler.
1675      * @param dragexit the {@code ondragexit} event handler
1676      */
1677     @JsxSetter(FF52)
1678     public void setOndragexit(final Object dragexit) {
1679         setEventHandler("dragexit", dragexit);
1680     }
1681 
1682 }