@Override
  public void navigate(@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();
    }
  }
@Override
  public void navigate(@NotNull Project project, @Nullable RelativePoint hyperlinkLocationPoint)