@Override
  protected void handleButtonDown(int button) {
    if (myState == STATE_INIT) {
      myState = STATE_DRAG;
      deactivateTracker();

      if (handleTracker()) {
        return;
      }

      if (!myArea.isTree()) {
        InputTool tracker = myArea.findTargetTool(myCurrentScreenX, myCurrentScreenY);
        if (tracker != null) {
          setTracker(tracker);
          if (tracker instanceof ResizeTracker) {
            myArea.showSelection(false);
          }
          return;
        }
      }

      RadComponent component = myArea.findTarget(myCurrentScreenX, myCurrentScreenY, null);
      if (component == null || component.isBackground()) {
        if (!myArea.isTree()) {
          MarqueeTracker tracker = new MarqueeTracker();

          // Allow marquee dragging within the root (background) layout, and if you click
          // without dragging, select that background component
          tracker.setSelectBackground(component != null && component.isBackground());

          setTracker(tracker);
        }
      }
      else {
        Point location = component.convertPoint(myArea.getNativeComponent(), myCurrentScreenX, myCurrentScreenY);
        setTracker(component.getDragTracker(location, myInputEvent, myArea.isTree()));
      }
    }
  }
@Override
  protected void handleButtonDown(int button)