List of usage examples for com.google.gwt.dom.client AreaElement is
public static boolean is(Node node)
From source file:org.eclipse.che.ide.keybinding.KeyBindingManager.java
License:Open Source License
@Inject public KeyBindingManager(ActionManager actionManager, Provider<PerspectiveManager> perspectiveManager) { this.actionManager = actionManager; this.perspectiveManager = perspectiveManager; addScheme(new SchemeImpl(SCHEME_GLOBAL_ID, "Global")); addScheme(new SchemeImpl(SCHEME_ECLIPSE_ID, "Eclipse Scheme")); //TODO check user settings activeScheme = SCHEME_ECLIPSE_ID;//from w w w. j av a2 s .c om presentationFactory = new PresentationFactory(); // Attach the listeners. final Element documentElement = Elements.getDocument().getDocumentElement(); EventListener downListener = new EventListener() { @Override public void handleEvent(Event event) { SignalEvent signalEvent = SignalEventUtils.create(event, false); if (signalEvent == null) { return; } /* Temporary solution to prevent calling actions if focus is in input element. The problem in that, some actions, may be bound to Ctrl+C/X/V/Z or Delete so We should allow browser to process event natively instead of calling actions. Need to be reworked in nearest future. */ final JavaScriptObject jso = (JavaScriptObject) event.getTarget(); if (InputElement.is(jso) || AreaElement.is(jso)) { return; } //handle event in active scheme int digest = CharCodeWithModifiers.computeKeyDigest(signalEvent); preventDefaultBrowserAction((KeyboardEvent) event, digest); List<String> actionIds = getActive().getActionIds(digest); if (!actionIds.isEmpty()) { runActions(actionIds, event); } //else handle event in global scheme else if (!(actionIds = getGlobal().getActionIds(digest)).isEmpty()) { runActions(actionIds, event); } //default, lets this event handle other part of the IDE } }; if (UserAgent.isFirefox()) { // firefox fires keypress events documentElement.addEventListener(Event.KEYPRESS, downListener, true); } else { //webkit fires keydown events documentElement.addEventListener(Event.KEYDOWN, downListener, true); } }