@Override
 public void addNotify() {
   super.addNotify();
   myGlassPane = IdeGlassPaneUtil.find(this);
   myDisposable = Disposer.newDisposable();
   myGlassPane.addMouseMotionPreprocessor(myListener, myDisposable);
   myGlassPane.addMousePreprocessor(myListener, myDisposable);
 }
    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();
      }
    }
 @Override
 public void addNotify() {
   super.addNotify();
   if (!ScreenUtil.isStandardAddRemoveNotify(this)) return;
   myGlassPane = IdeGlassPaneUtil.find(this);
   if (myGlassPane != null) {
     myGlassPane.addMouseMotionPreprocessor(this, myDisposable);
   }
 }
 protected void processMouseEvent(MouseEvent e) {
   super.processMouseEvent(e);
   if (!isShowing()) {
     return;
   }
   switch (e.getID()) {
     case MouseEvent.MOUSE_ENTERED:
       setCursor(getResizeCursor());
       break;
     case MouseEvent.MOUSE_EXITED:
       if (!myDragging) {
         setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
       }
       break;
     case MouseEvent.MOUSE_PRESSED:
       if (isInside(e.getPoint())) {
         myWasPressedOnMe = true;
         myGlassPane.setCursor(getResizeCursor(), myListener);
         e.consume();
       } else {
         myWasPressedOnMe = false;
       }
       break;
     case MouseEvent.MOUSE_RELEASED:
       if (myWasPressedOnMe) {
         e.consume();
       }
       if (isInside(e.getPoint())) {
         myGlassPane.setCursor(getResizeCursor(), myListener);
       }
       myWasPressedOnMe = false;
       myDragging = false;
       myPoint = null;
       break;
     case MouseEvent.MOUSE_CLICKED:
       if (e.getClickCount() == 2) {
         center();
       }
       break;
   }
 }
    private void _processMouseEvent(MouseEvent e) {
      MouseEvent event = getTargetEvent(e);
      if (event == null) {
        myGlassPane.setCursor(null, myListener);
        return;
      }

      processMouseEvent(event);
      if (event.isConsumed()) {
        e.consume();
      }
    }
 private void init() {
   myGlassPane = IdeGlassPaneUtil.find(this);
   myGlassPane.addMouseMotionPreprocessor(myListener, this);
   myGlassPane.addMousePreprocessor(myListener, this);
 }