void (@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); }