package com.dragome.render.html.renderers; import org.w3c.dom.events.Event; import org.w3c.dom.events.EventListener; import org.w3c.dom.events.KeyboardEvent; import com.dragome.guia.components.interfaces.VisualComponent; import com.dragome.guia.events.listeners.interfaces.BlurListener; import com.dragome.guia.events.listeners.interfaces.ClickListener; import com.dragome.guia.events.listeners.interfaces.DoubleClickListener; import com.dragome.guia.events.listeners.interfaces.InputListener; import com.dragome.guia.events.listeners.interfaces.KeyDownListener; import com.dragome.guia.events.listeners.interfaces.KeyPressListener; import com.dragome.guia.events.listeners.interfaces.KeyUpListener; import com.dragome.guia.events.listeners.interfaces.MouseDownListener; import com.dragome.guia.events.listeners.interfaces.MouseOutListener; import com.dragome.guia.events.listeners.interfaces.MouseOverListener; import com.dragome.guia.events.listeners.interfaces.MouseUpListener; import com.dragome.web.enhancers.jsdelegate.JsCast; public class MultipleEventListener<T> implements EventListener { private final VisualComponent visualComponent; public static final String KEYPRESS= "keypress"; public static final String KEYDOWN= "keydown"; public static final String KEYUP= "keyup"; public static final String INPUT= "input"; public static final String BLUR= "blur"; public static final String MOUSEOUT= "mouseout"; public static final String MOUSEOVER= "mouseover"; public static final String MOUSEDOWN= "mousedown"; public static final String MOUSEUP= "mouseup"; public static final String DBLCLICK= "dblclick"; public static final String CLICK= "click"; public MultipleEventListener(VisualComponent visualComponent) { this.visualComponent= visualComponent; } public void handleEvent(Event event) { String type= event.getType(); if (type.equals(CLICK)) visualComponent.getListener(ClickListener.class).clickPerformed(visualComponent); else if (type.equals(DBLCLICK)) visualComponent.getListener(DoubleClickListener.class).doubleClickPerformed(visualComponent); else if (type.equals(MOUSEOVER)) visualComponent.getListener(MouseOverListener.class).mouseOverPerformed(visualComponent); else if (type.equals(MOUSEOUT)) visualComponent.getListener(MouseOutListener.class).mouseOutPerformed(visualComponent); else if (type.equals(MOUSEDOWN)) visualComponent.getListener(MouseDownListener.class).mouseDownPerformed(null); else if (type.equals(MOUSEUP)) visualComponent.getListener(MouseUpListener.class).mouseUpPerformed(visualComponent); else if (type.equals(BLUR)) visualComponent.getListener(BlurListener.class).blurPerformed(visualComponent); else if (type.equals(INPUT)) visualComponent.getListener(InputListener.class).inputPerformed(visualComponent); else { KeyboardEvent keyboardEvent= JsCast.castTo(event, KeyboardEvent.class); if (type.equals(KEYUP)) visualComponent.getListener(KeyUpListener.class).keyupPerformed(visualComponent, keyboardEvent.getKeyCode()); else if (type.equals(KEYDOWN)) visualComponent.getListener(KeyDownListener.class).keydownPerformed(visualComponent, keyboardEvent.getKeyCode()); else if (type.equals(KEYPRESS)) visualComponent.getListener(KeyPressListener.class).keypressPerformed(visualComponent, keyboardEvent.getKeyCode()); } } }