public void updatePosition(long startFromMinutes, long durationInMinutes) {
    if (startFromMinutes < 0) {
      startFromMinutes = 0;
    }
    top = weekGrid.getPixelTopFor((int) startFromMinutes);

    getElement().getStyle().setTop(top, Unit.PX);
    if (durationInMinutes > 0) {
      int heightMinutes =
          weekGrid.getPixelLengthFor((int) startFromMinutes, (int) durationInMinutes);
      setHeight(heightMinutes);
    } else {
      setHeight(-1);
    }

    boolean multiRowCaption = (durationInMinutes > 30);
    updateCaptions(multiRowCaption);
  }