protected void processMouseMotionEvent(MouseEvent e) {
   MouseEvent transformedEvent = transformMouseEvent(e);
   if (mouseEnteredComponent == null) {
     mouseEnteredComponent = mouseCurrentComponent;
   }
   switch (e.getID()) {
     case MouseEvent.MOUSE_MOVED:
       if (mouseCurrentComponent != mouseEnteredComponent) {
         dispatchMouseEvent(
             createEnterExitEvent(mouseEnteredComponent, MouseEvent.MOUSE_EXITED, e));
         dispatchMouseEvent(
             createEnterExitEvent(mouseCurrentComponent, MouseEvent.MOUSE_ENTERED, e));
       }
       break;
     case MouseEvent.MOUSE_DRAGGED:
       if (mouseDraggedComponent == null) {
         mouseDraggedComponent = mouseEnteredComponent;
       }
       if (mouseEnteredComponent == mouseDraggedComponent
           && mouseCurrentComponent != mouseDraggedComponent) {
         dispatchMouseEvent(
             createEnterExitEvent(mouseDraggedComponent, MouseEvent.MOUSE_EXITED, e));
       } else if (mouseEnteredComponent != mouseDraggedComponent
           && mouseCurrentComponent == mouseDraggedComponent) {
         dispatchMouseEvent(
             createEnterExitEvent(mouseDraggedComponent, MouseEvent.MOUSE_ENTERED, e));
       }
       if (mouseDraggedComponent != null) {
         transformedEvent.setSource(mouseDraggedComponent);
       }
       break;
   }
   mouseEnteredComponent = mouseCurrentComponent;
   // dispatch MouseMotionEvent
   MouseMotionListener[] mouseMotionListeners =
       transformedEvent.getComponent().getMouseMotionListeners();
   for (MouseMotionListener listener : mouseMotionListeners) {
     // skip all ToolTipManager's related listeners
     if (!listener.getClass().getName().startsWith("javax.swing.ToolTipManager")) {
       switch (transformedEvent.getID()) {
         case MouseEvent.MOUSE_MOVED:
           listener.mouseMoved(transformedEvent);
           break;
         case MouseEvent.MOUSE_DRAGGED:
           listener.mouseDragged(transformedEvent);
           break;
         default:
           throw new AssertionError();
       }
     }
   }
   super.processMouseMotionEvent(e);
 }
    protected void processMouseMotionEvent(MouseEvent e) {
      super.processMouseMotionEvent(e);

      if (!isShowing()) return;

      if (MouseEvent.MOUSE_DRAGGED == e.getID() && myWasPressedOnMe) {
        myDragging = true;
        setCursor(getResizeCursor());
        myGlassPane.setCursor(getResizeCursor(), myListener);

        myPoint = SwingUtilities.convertPoint(this, e.getPoint(), ThreeComponentsSplitter.this);
        if (getOrientation()) {
          if (getHeight() > 0 || myDividerZone > 0) {
            if (myIsFirst) {
              setFirstSize(Math.max(getMinSize(myFirstComponent), myPoint.y));
            } else {
              setLastSize(
                  Math.max(
                      getMinSize(myLastComponent),
                      ThreeComponentsSplitter.this.getHeight() - myPoint.y - getDividerWidth()));
            }
          }
        } else {
          if (getWidth() > 0 || myDividerZone > 0) {
            if (myIsFirst) {
              setFirstSize(Math.max(getMinSize(myFirstComponent), myPoint.x));
            } else {
              setLastSize(
                  Math.max(
                      getMinSize(myLastComponent),
                      ThreeComponentsSplitter.this.getWidth() - myPoint.x - getDividerWidth()));
            }
          }
        }
        ThreeComponentsSplitter.this.doLayout();
      } else if (MouseEvent.MOUSE_MOVED == e.getID()) {
        if (myGlassPane != null) {
          if (isInside(e.getPoint())) {
            myGlassPane.setCursor(getResizeCursor(), myListener);
            e.consume();
          } else {
            myGlassPane.setCursor(null, myListener);
          }
        }
      }

      if (myWasPressedOnMe) {
        e.consume();
      }
    }