private void showNotification(int number) {
    if (myDisposable.isDisposed()) {
      return;
    }
    String content = JavaDebuggerBundle.message("message.other.threads.reached.breakpoints", number);
    MessageType messageType = MessageType.INFO;

    if (mySession.getXDebugSession() instanceof XDebugSessionImpl session) {
      XDebugSessionTab tab = session.getSessionTab();
      if (tab != null) {
        XFramesView view = tab.getFramesView();
        if (view != null) {
          ComboBox<XExecutionStack> comboBox = view.getThreadComboBox();
          BasicArrowButton arrowButton = UIUtil.findComponentOfType(comboBox, BasicArrowButton.class);

          JComponent target = arrowButton != null ? arrowButton : comboBox;

          BalloonBuilder balloonBuilder = JBPopupFactory.getInstance()
            .createHtmlTextBalloonBuilder(content, messageType, null)
            .setHideOnClickOutside(true)
            .setDisposable(myDisposable)
            .setHideOnFrameResize(false);
          Balloon balloon = balloonBuilder.createBalloon();
          balloon.show(new AnchoredPoint(AnchoredPoint.Anchor.TOP, target), Balloon.Position.above);
          return;
        }
      }
    }

    // Fallback to the whole toolwindow notification
    XDebuggerManagerImpl.getNotificationGroup()
      .createNotification(content, messageType)
      .notify(getProject());
  }
private void showNotification(int number)