void (@NotNull Project project, @Nullable RelativePoint hyperlinkLocationPoint) { if (myMap.isEmpty()) return; if (myMap.size() == 1) { Map.Entry<VirtualFile, SmartPsiElementPointer<?>> entry = myMap.entrySet().iterator().next(); navigateTo(project, entry.getKey(), entry.getValue()); return; } JFrame frame = WindowManager.getInstance().getFrame(project); int width = frame != null ? frame.getSize().width : 200; JBPopup popup = JBPopupFactory.getInstance() .createPopupChooserBuilder(ContainerUtil.map(myMap.values(), ptr -> ptr.getContainingFile())) .setTitle(ExecutionBundle.message("popup.title.choose.target.file")) .setRenderer(new GotoFileCellRenderer(width)) .setItemChosenCallback(selectedValue -> { VirtualFile file = selectedValue.getVirtualFile(); navigateTo(project, file, myMap.get(file)); }) .createPopup(); if (hyperlinkLocationPoint != null) { popup.show(hyperlinkLocationPoint); } else { popup.showInFocusCenter(); } }