jaroslav@435: /** jaroslav@435: * Back 2 Browser Bytecode Translator jaroslav@1787: * Copyright (C) 2012-2015 Jaroslav Tulach jaroslav@435: * jaroslav@435: * This program is free software: you can redistribute it and/or modify jaroslav@435: * it under the terms of the GNU General Public License as published by jaroslav@435: * the Free Software Foundation, version 2 of the License. jaroslav@435: * jaroslav@435: * This program is distributed in the hope that it will be useful, jaroslav@435: * but WITHOUT ANY WARRANTY; without even the implied warranty of jaroslav@435: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the jaroslav@435: * GNU General Public License for more details. jaroslav@435: * jaroslav@435: * You should have received a copy of the GNU General Public License jaroslav@435: * along with this program. Look for COPYING file in the top folder. jaroslav@435: * If not, see http://opensource.org/licenses/GPL-2.0. jaroslav@435: */ jaroslav@435: package org.apidesign.bck2brwsr.htmlpage.api; jaroslav@435: jaroslav@435: /** Type of events to use in connection with {@link On} annotation. jaroslav@435: * jaroslav@435: * @author Jaroslav Tulach jaroslav@435: */ jaroslav@435: public enum OnEvent { jaroslav@435: ABORT("onabort"), jaroslav@435: BLUR("onblur"), jaroslav@435: CAN_PLAY("oncanplay"), jaroslav@435: CAN_PLAY_THROUGH("oncanplaythrough"), jaroslav@530: CHANGE("onchange"), jaroslav@435: CLICK("onclick"), jaroslav@435: CONTEXT_MENU("oncontextmenu"), jaroslav@435: DBL_CLICK("ondblclick"), jaroslav@435: DRAG("ondrag"), jaroslav@435: DRAG_END("ondragend"), jaroslav@435: DRAG_ENTER("ondragenter"), jaroslav@435: DRAG_LEAVE("ondragleave"), jaroslav@435: DRAG_OVER("ondragover"), jaroslav@435: DRAG_START("ondragstart"), jaroslav@435: DROP("ondrop"), jaroslav@435: DURATION_CHANGE("ondurationchange"), jaroslav@435: EMPTIED("onemptied"), jaroslav@435: ENDED("onended"), jaroslav@435: ERROR("onerror"), jaroslav@435: FOCUS("onfocus"), jaroslav@435: FORM_CHANGE("onformchange"), jaroslav@435: FORM_INPUT("onforminput"), jaroslav@435: INPUT("oninput"), jaroslav@435: INVALID("oninvalid"), jaroslav@435: KEY_DOWN("onkeydown"), jaroslav@435: KEY_PRESS("onkeypress"), jaroslav@435: KEY_UP("onkeyup"), jaroslav@435: LOAD("onload"), jaroslav@435: LOADED_DATA("onloadeddata"), jaroslav@435: LOADED_META_DATA("onloadedmetadata"), jaroslav@435: LOAD_START("onloadstart"), jaroslav@435: MOUSE_DOWN("onmousedown"), jaroslav@435: MOUSE_MOVE("onmousemove"), jaroslav@435: MOUSE_OUT("onmouseout"), jaroslav@435: MOUSE_OVER("onmouseover"), jaroslav@435: MOUSE_UP("onmouseup"), jaroslav@435: MOUSE_WHEEL("onmousewheel"), jaroslav@435: PAUSE("onpause"), jaroslav@435: PLAY("onplay"), jaroslav@435: PLAYING("onplaying"), jaroslav@435: PROGRESS("onprogress"), jaroslav@435: RATE_CHANGE("onratechange"), jaroslav@435: READY_STATE_CHANGE("onreadystatechange"), jaroslav@435: SCROLL("onscroll"), jaroslav@435: SEEKED("onseeked"), jaroslav@435: SEEKING("onseeking"), jaroslav@435: SELECT("onselect"), jaroslav@435: SHOW("onshow"), jaroslav@435: STALLED("onstalled"), jaroslav@435: SUBMIT("onsubmit"), jaroslav@435: SUSPEND("onsuspend"), jaroslav@435: TIME_UPDATE("ontimeupdate"), jaroslav@435: VOLUME_CHANGE("onvolumechange"), jaroslav@435: WAITING("onwaiting"); jaroslav@435: jaroslav@435: final String id; jaroslav@435: jaroslav@435: private OnEvent(String id) { jaroslav@435: this.id = id; jaroslav@435: } jaroslav@435: jaroslav@530: /** The name of property this event is referenced by from an {@link Element}. jaroslav@530: * For {@link OnEvent#CHANGE}, it is onchange. jaroslav@530: */ jaroslav@530: public String getElementPropertyName() { jaroslav@530: return id; jaroslav@530: } jaroslav@530: jaroslav@435: /** What should happen when this even happen on one jaroslav@435: * of associated elements. Continue by calling {@link OnController#perform(java.lang.Runnable)} jaroslav@435: * method. jaroslav@435: * jaroslav@435: * @param elmnts one or more elements jaroslav@435: * @return controller with perform method. jaroslav@435: */ jaroslav@435: public OnController of(Element... elmnts) { jaroslav@435: return new OnController(this, elmnts); jaroslav@435: } jaroslav@435: }