JBPopup (@NotNull String initialText) { myTextViewer.setPreferredSize(new Dimension(0, 0)); myMainPanel.setBorder(JBUI.Borders.empty(10)); myMainPanel.setBackground(myTextViewer.getBackground()); setContent(myTextViewer, getToolbarActions(), ACTION_PLACE, null); XFullValueEvaluator evaluator = myEvaluator != null ? myEvaluator : new ImmediateFullValueEvaluator(initialText); Runnable hideTextPopupRunnable = myHideRunnable == null ? null : () -> { if (!myTreePopupIsShown) { myHideRunnable.run(); } }; myPopup = createPopup(evaluator, this::resizePopup, hideTextPopupRunnable); myTree = myTreeCreator.createTree(myInitialItem); registerTreeDisposable(myPopup, myTree); setAutoResizeUntilToolbarNotFull(this::resizePopup, myPopup); myPopup.show(new RelativePoint(myEditor.getContentComponent(), myPoint)); return myPopup; }