Ejemplo n.º 1
0
  @Override
  public void onBrowserEvent(Event event) {

    if (!this.isEnabled()) {
      event.stopPropagation();
      return;
    }
    switch (DOM.eventGetType(event)) {
      case Event.ONTOUCHSTART:
        {
          onTouchStart(event);
          event.stopPropagation();
          break;
        }
      case Event.ONTOUCHEND:
        {
          onTouchEnd(event);
          event.stopPropagation();
          break;
        }
      case Event.ONTOUCHMOVE:
        {
          onTouchMove(event);
          event.stopPropagation();
          break;
        }
      case Event.ONMOUSEUP:
        {
          Log.debug("touch up");
          // because Event.ONCLICK always came twice on desktop browsers oO
          onClick(event);
          event.stopPropagation();
          break;
        }
      case Event.ONMOUSEDOWN:
        {
          event.stopPropagation();
          break;
        }
      default:
        {
          // Let parent handle event if not one of the above (?)
          try {
            super.onBrowserEvent(event);
          } catch (Throwable t) {
            Log.debug(DOM.eventGetType(event) + "event failed");
          }
        }
    }
  }
Ejemplo n.º 2
0
  private void onClick(Event event) {
    event.stopPropagation();
    event.preventDefault();

    if (touchHandled) {
      // if the touch is already handled, we are on a device that supports
      // touch (so you aren't in the desktop browser)

      touchHandled = false; // reset for next press
      clickHandled = true; // ignore future ClickEvents
    } else if (!clickHandled) {
      // Press not handled yet
      fireFastClickEvent();
    }

    super.onBrowserEvent(event);
  }