public @NotNull AbstractPopup createPopup(Supplier<? extends AbstractPopup> popupSupplier) {
    AbstractPopup popup = popupSupplier.get().init(
      myProject, myComponent, myPreferredFocusedComponent, myRequestFocus, myFocusable, myMovable, myDimensionServiceKey,
      myResizable, myTitle, myCallback, myCancelOnClickOutside, myListeners, myUseDimServiceForXYLocation, myCommandButton,
      myCancelButton, myCancelOnMouseOutCallback, myCancelOnWindow, myTitleIcon, myCancelKeyEnabled, myLocateByContent,
      myPlaceWithinScreen, myMinSize, myAlpha, myMaskProvider, myInStack, myModalContext, myFocusOwners, myAd, myAdAlignment,
      false, myKeyboardActions, mySettingsButtons, myPinCallback, myMayBeParent,
      myShowShadow, myShowBorder, myBorderColor, myCancelOnWindowDeactivation, myKeyEventHandler
    );

    popup.setStretchToOwnerWidth(myStretchToOwnerWidth);
    popup.setStretchToOwnerHeight(myStretchToOwnerHeight);

    popup.setNormalWindowLevel(myNormalWindowLevel);
    popup.setOkHandler(myOkHandler);
    if (myAdvertiser != null) {
      popup.setFooterComponent(myAdvertiser);
    }

    if (myUserData != null) {
      popup.setUserData(myUserData);
    }
    Disposer.register(ApplicationManager.getApplication(), popup);
    return popup;
  }
public @NotNull AbstractPopup createPopup(Supplier<? extends AbstractPopup> popupSupplier)