1 16 package com.google.gwt.user.client.ui; 17 18 import com.google.gwt.user.client.DOM; 19 import com.google.gwt.user.client.Event; 20 21 import java.util.ArrayList ; 22 import java.util.Iterator ; 23 24 29 public class KeyboardListenerCollection extends ArrayList { 30 31 37 public static int getKeyboardModifiers(Event event) { 38 return (DOM.eventGetShiftKey(event) ? KeyboardListener.MODIFIER_SHIFT : 0) 39 | (DOM.eventGetMetaKey(event) ? KeyboardListener.MODIFIER_META : 0) 40 | (DOM.eventGetCtrlKey(event) ? KeyboardListener.MODIFIER_CTRL : 0) 41 | (DOM.eventGetAltKey(event) ? KeyboardListener.MODIFIER_ALT : 0); 42 } 43 44 51 public void fireKeyboardEvent(Widget sender, Event event) { 52 int modifiers = getKeyboardModifiers(event); 53 54 switch (DOM.eventGetType(event)) { 55 case Event.ONKEYDOWN: 56 fireKeyDown(sender, (char)DOM.eventGetKeyCode(event), modifiers); 57 break; 58 59 case Event.ONKEYUP: 60 fireKeyUp(sender, (char)DOM.eventGetKeyCode(event), modifiers); 61 break; 62 63 case Event.ONKEYPRESS: 64 fireKeyPress(sender, (char)DOM.eventGetKeyCode(event), modifiers); 65 break; 66 } 67 } 68 69 80 public void fireKeyDown(Widget sender, char keyCode, int modifiers) { 81 for (Iterator it = iterator(); it.hasNext();) { 82 KeyboardListener listener = (KeyboardListener) it.next(); 83 listener.onKeyDown(sender, keyCode, modifiers); 84 } 85 } 86 87 98 public void fireKeyPress(Widget sender, char key, int modifiers) { 99 for (Iterator it = iterator(); it.hasNext();) { 100 KeyboardListener listener = (KeyboardListener) it.next(); 101 listener.onKeyPress(sender, key, modifiers); 102 } 103 } 104 105 116 public void fireKeyUp(Widget sender, char keyCode, int modifiers) { 117 for (Iterator it = iterator(); it.hasNext();) { 118 KeyboardListener listener = (KeyboardListener) it.next(); 119 listener.onKeyUp(sender, keyCode, modifiers); 120 } 121 } 122 } 123 | Popular Tags |