package tv.dyndns.kishibe.qmaclone.client; import com.google.gwt.dom.client.NativeEvent; import com.google.gwt.user.client.Event; import com.google.gwt.user.client.Event.NativePreviewEvent; import com.google.gwt.user.client.Event.NativePreviewHandler; /** * ドキュメントが受け取ったキーイベントを処理するためのハンドラ抽象クラス * * @author nodchip */ public abstract class GlobalKeyEventHandler implements NativePreviewHandler { protected abstract void onKeyPress(char ch); @Override public final void onPreviewNativeEvent(NativePreviewEvent event) { if (event.getTypeInt() != Event.ONKEYPRESS) { return; } char ch = getCharCode(event.getNativeEvent()); onKeyPress(ch); } private native char getCharCode(NativeEvent e)/*-{ return e.charCode || e.keyCode; }-*/; }