private void showBranchPopup(@NotNull Url branchLocation) {
      List<SvnBranchItem> branches = myConfiguration.getBranches(branchLocation);
      List<Object> items = new ArrayList<>(branches);
      items.add(getRefreshMessage());

      JBPopup popup =
        JBPopupFactory.getInstance().createPopupChooserBuilder(items)
                      .setTitle(branchLocation.getTail())
                      .setRenderer(new BranchRenderer())
                      .setResizable(true)
                      .setItemChosenCallback((v) -> {
                        if (getRefreshMessage().equals(v)) {
                          loadBranches(branchLocation, () -> showBranchPopup(branchLocation));
                          return;
                        }
                        SvnBranchItem item = (SvnBranchItem)v;
                        if (item != null) {
                          myCallback.branchSelected(myProject, myConfiguration, item.getUrl(), item.getRevision());
                        }
                      })
                      .setNamerForFiltering(
                        item -> item instanceof SvnBranchItem ? getBranchName((SvnBranchItem)item) : null)
                      .createPopup();
      showPopupAt(popup);
    }
private void showBranchPopup(@NotNull Url branchLocation)