void (@NotNull MouseEvent event, @NotNull Project project, @Nullable Editor editor, JComponent component, @Nullable Runnable cancelCallback) { Dimension size = DimensionService.getInstance().getSize(FULL_VALUE_POPUP_DIMENSION_KEY, project); if (size == null) { Dimension frameSize = Objects.requireNonNull(WindowManager.getInstance().getFrame(project)).getSize(); size = new Dimension(frameSize.width / 2, frameSize.height / 2); } component.setPreferredSize(size); JBPopup popup = createValuePopup(project, component, cancelCallback); if (editor == null) { Rectangle bounds = new Rectangle(event.getLocationOnScreen(), size); ScreenUtil.fitToScreenVertical(bounds, 5, 5, true); if (size.width != bounds.width || size.height != bounds.height) { size = bounds.getSize(); component.setPreferredSize(size); } popup.showInScreenCoordinates(event.getComponent(), bounds.getLocation()); } else { popup.showInBestPositionFor(editor); } }