Package org.waveprotocol.wave.client.common.util

Examples of org.waveprotocol.wave.client.common.util.SignalEvent


  public void testIsAccelerator() {
    // Test alt+input and alt+shift+input keys - These are normal input on mac,
    // and accelerators on
    // other platforms
    for (int c = 'a'; c <= 'z'; c++) {
      SignalEvent signal = FakeSignalEvent.createKeyPress(KeySignalType.INPUT, c,
          EnumSet.of(KeyModifier.ALT));
      // mac
      assertFalse(EditorEventHandler.isAcceleratorInner(signal, true, false));
      assertFalse(EditorEventHandler.isAcceleratorInner(signal, true, true));
      // other platforms
      assertTrue(EditorEventHandler.isAcceleratorInner(signal, false, false));
      assertTrue(EditorEventHandler.isAcceleratorInner(signal, false, true));
    }

    // Test a few others such as `, - and ;
    // mac
    String otherInputKeys = "`-;";
    for (char c : otherInputKeys.toCharArray()) {
      SignalEvent signal = FakeSignalEvent.createKeyPress(KeySignalType.INPUT, c,
          EnumSet.of(KeyModifier.ALT));
      assertFalse(EditorEventHandler.isAcceleratorInner(signal, true, false));
      assertFalse(EditorEventHandler.isAcceleratorInner(signal, true, true));

      // with alt+shift
      SignalEvent altShift = FakeSignalEvent.createKeyPress(KeySignalType.INPUT, c,
          EnumSet.of(KeyModifier.ALT, KeyModifier.SHIFT));
      assertFalse(EditorEventHandler.isAcceleratorInner(altShift, true, false));
      assertFalse(EditorEventHandler.isAcceleratorInner(altShift, true, true));
    }
View Full Code Here


    return addItem(EscapeUtils.fromString(title), callback);
  }

  @Override
  public void onBrowserEvent(Event event) {
    SignalEvent sEvent = SignalEventImpl.create(event, true);

    if (sEvent != null) {
      handleEventInner(event);
    }
View Full Code Here

   * @param acceleratorEvent Must be a key event AND isAccelerator(event) == true
   * @return whether we should cancel the browser's default action
   */
  private boolean shouldCancelAcceleratorBrowserDefault(SignalEvent acceleratorEvent) {
    // (more verbose name in argument to remind us of the constraint).
    SignalEvent event = acceleratorEvent;

    // First, handle non-combo events (here they should only be "NOEFFECT" keys)
    // We use blacklisting for these.
    // TODO(danilatos/mtsui): Switch to whitelisting as well?
    if (KeyModifier.NONE.check(event)) {
      if (event.getKeyCode() == EventWrapper.KEY_INSERT) {
        // Cancel INSERT to prevent overwrite mode, for now
        // (Happens in IE).
        return true;
      } else {
        // Other things like ESC, TAB, function keys, etc are OK.
        return cancelUnsafeKeyEvents;
      }
    }

    if (isAllowableCombo(event)) {
      // We can safely ignore
      logger.trace().log("Allowing event");
      return false;
    }

    if (logger.trace().shouldLog()) {
      logger.trace().log("unsafe combo: ", event.getType(), event.getKeyCode());
    }
    return cancelUnsafeKeyEvents;
  }
View Full Code Here

    int lowLevelType = event.getTypeInt();

    // TODO(danilatos): Insert this logic deeply rather than
    // sprinkling it in event handlers. Also the return value
    // of onEventPreview is the reverse of signal handlers.
    SignalEvent signal = SignalEventImpl.create(event, false);
    if (signal == null) {
      return;
    }

    // Key events (excluding escape) and mousewheel events use hideTopmostAutoHiderForKeyEvent
    if (lowLevelType == Event.ONMOUSEWHEEL || signal.isKeyEvent()) {
      if (hideTopmostAutoHiderForKeyEvent(false)) {
        // TODO(user): We don't call previewEvent.cancel() here, since for the floating-buttons
        // menu we want, for example, space-bar to still shift focus to the next blip.
        // The to-do is to audit the previewEvent.cancel call below and see why it's there (and if
        // it's not needed, eliminate it).
        return;
      }
    }

    // Pressing escape at any time causes us to close and discard the event.
    if (signal.getKeySignalType() == KeySignalType.NOEFFECT &&
        event.getKeyCode() == KeyCodes.KEY_ESCAPE) {
      if (hideTopmostAutoHiderForKeyEvent(true)) {
        previewEvent.cancel();
        return;
      }
    }

    // Click events and mouse-wheel events that fall through use hideAllAfter.
    if (lowLevelType == Event.ONMOUSEDOWN || lowLevelType == Event.ONMOUSEWHEEL) {
      hideAllAfter(signal.getTarget());
    }

    // Otherwise we don't do anything and the event continues as usual.
  }
View Full Code Here

          Element target = realEvent.getEventTarget().cast();
          if (!"body".equals(target.getTagName().toLowerCase())) {
            return;
          }
          // Test that the event is meaningful (and stop bubbling if it is not).
          SignalEvent signal = SignalEventImpl.create(realEvent.<Event>cast(), true);
          if (signal != null) {
            KeyCombo key = EventWrapper.getKeyCombo(signal);
            if (globalHandler.onKeySignal(key)) {
              event.preventDefault();
            }
View Full Code Here

    eventTestLog.getStyle().setBorderWidth(1, Unit.PX);
    eventTestLog.getStyle().setBorderStyle(BorderStyle.SOLID);
    for (String event : new String[] {"keydown", "keypress", "keyup"}) {
      DomHelper.registerEventHandler(eventText.getElement(), event, new JavaScriptEventListener() {
        public void onJavaScriptEvent(String name, Event event) {
          SignalEvent signal = SignalEventImpl.create(event, true);
          if (signal == null) {
            return;
          }

          addInfo(EventInfo.TYPE, name);
          addInfo(EventInfo.KEYSIGNAL, signal.getKeySignalType().toString());
          addInfo(EventInfo.KEYCODE, Integer.toString(signal.getKeyCode()));
          addInfo(EventInfo.GETSHIFT, signal.getShiftKey() + "");
          addInfo(EventInfo.GETALT, signal.getAltKey() + "");
          addInfo(EventInfo.GETCTRL, signal.getCtrlKey() + "");
          addInfo(EventInfo.GETMETA, signal.getMetaKey() + "");
          addInfo(EventInfo.GETCOMMAND, signal.getCommandKey() + "");

          eventTestLog.appendChild(Document.get().createBRElement());
        }

        private void addInfo(EventInfo info, String value) {
View Full Code Here

    }

    EventListener signalEventListener = new EventListener() {
      @Override
      public void handleEvent(Event event) {
        SignalEvent signalEvent = SignalEventUtils.create(event);
        if (signalEvent != null) {
          processSignalEvent(signalEvent);
        } else if ("keyup".equals(event.getType())) {
          boolean handled = dispatchKeyUp(event);
          if (handled) {
View Full Code Here

      // experience inside the Tree (e.g. debugger's RemoteObjectTree).

      getElement().addEventListener(Event.CLICK, new TreeNodeEventListener(true) {
        @Override
        protected void onTreeNodeBodyChildEvent(Event evt, Element treeNodeBody) {
          SignalEvent signalEvent =
              SignalEventImpl.create((com.google.gwt.user.client.Event) evt, true);

          // Select the node.
          dispatchNodeSelectedEvent(treeNodeBody, signalEvent, css);

          // Don't dispatch a node action if there is a modifier key depressed.
          if (!(signalEvent.getCommandKey() || signalEvent.getShiftKey())) {
            dispatchNodeActionEvent(treeNodeBody, css);
           
            TreeNodeElement<D> node = getTreeNodeFromTreeNodeBody(treeNodeBody, css);
            if (node.hasChildrenContainer()) {
              dispatchExpansionEvent(node, css);
View Full Code Here

 
  /**
   * Tests a scheme with no modes installed
   */
  public void testNoModes() {
    SignalEvent sig = new TestSignalEvent('a'); // user typed an "a" character
    assertFalse(sendSignal(sig)); // returns false when no modes are installed
  }
View Full Code Here

    checkAutoindenter(text, 1, 0, 2, 0, TRIGGER_ENTER, text, false);
  }

  public void testInsertLine() {
    String text = "  ThreadUtils.runInParallel(\n    function() {\n    },\n  );\n";
    SignalEvent trigger = TestCutPasteEvent.create("  driverF.login(LOGIN_F, PASS);\n");
    String expected = "  ThreadUtils.runInParallel(\n    function() {\n"
        + "  driverF.login(LOGIN_F, PASS);\n    },\n  );\n";
    checkAutoindenter(text, 2, 0, 2, 0, trigger, expected, false);
  }
View Full Code Here

TOP

Related Classes of org.waveprotocol.wave.client.common.util.SignalEvent

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.