public void onMouseDown(MouseDownEvent event) {
    startX = event.getClientX();
    startY = event.getClientY();
    if (isDisabled() || event.getNativeButton() != NativeEvent.BUTTON_LEFT) {
      return;
    }

    clickTarget = Element.as(event.getNativeEvent().getEventTarget());
    mouseMoveCanceled = false;

    if (weekGrid.getCalendar().isEventMoveAllowed() || clickTargetsResize()) {
      moveRegistration = addMouseMoveHandler(this);
      setFocus(true);
      try {
        startYrelative = (int) ((double) event.getRelativeY(caption) % slotHeight);
        startXrelative =
            (event.getRelativeX(weekGrid.getElement()) - weekGrid.timebar.getOffsetWidth())
                % getDateCellWidth();
      } catch (Exception e) {
        GWT.log("Exception calculating relative start position", e);
      }
      mouseMoveStarted = false;
      Style s = getElement().getStyle();
      s.setZIndex(1000);
      startDatetimeFrom = (Date) calendarEvent.getStartTime().clone();
      startDatetimeTo = (Date) calendarEvent.getEndTime().clone();
      Event.setCapture(getElement());
    }

    // make sure the right cursor is always displayed
    if (clickTargetsResize()) {
      addGlobalResizeStyle();
    }

    /*
     * We need to stop the event propagation or else the WeekGrid
     * range select will kick in
     */
    event.stopPropagation();
    event.preventDefault();
  }
Example #2
0
  public void attachWidgetToMouse(
      MouseDownEvent event,
      Widget w,
      MouseMoveHandler mouseMoveHandler,
      MouseUpHandler mouseUpHandler) {
    this.mouseMoveHandler = mouseMoveHandler;
    this.mouseUpHandler = mouseUpHandler;
    if (widget == w) return;

    clearWidgetFromMouse();
    widget = w;

    if (widget != null) {
      height = w.getOffsetHeight();
      width = w.getOffsetWidth();
      offsetX = event.getRelativeX(w.getElement());
      offsetY = event.getRelativeY(w.getElement());
      parent.add(widget);
      parent.setWidgetTopHeight(widget, event.getClientY() - offsetY, Unit.PX, height, Unit.PX);
      parent.setWidgetLeftWidth(widget, event.getClientX() - offsetX, Unit.PX, width, Unit.PX);
      attachHandlers();
    }
  }