package org.tessell.model.dsl; import java.util.List; import org.tessell.gwt.user.client.ui.IsWidget; import com.google.gwt.event.dom.client.KeyDownEvent; import com.google.gwt.event.shared.HandlerRegistration; public class KeyDownBinder extends EventBinder { private final IsWidget keyDownable; private final List<Integer> charFilter; public KeyDownBinder(final Binder b, final IsWidget keyDownable, final List<Integer> charFilter) { super(b); this.keyDownable = keyDownable; this.charFilter = charFilter; } @Override protected HandlerRegistration hookUpRunnable(final Runnable runnable) { return keyDownable.addDomHandler(e -> { if (charFilter == null || charFilter.contains(e.getNativeKeyCode())) { runnable.run(); } } , KeyDownEvent.getType()); } @Override protected HandlerRegistration hookUpEventRunnable(final DomEventRunnable runnable) { return keyDownable.addDomHandler(e -> { if (charFilter == null || charFilter.contains(e.getNativeKeyCode())) { runnable.run(e); } } , KeyDownEvent.getType()); } }