From 9e4e4cecc0cb4d3cbaea9bd9652399341f9f4a4c Mon Sep 17 00:00:00 2001 From: Konstantin Kolosovsky Date: Thu, 10 Dec 2015 16:14:16 +0300 Subject: [PATCH] IDEA-149002 Added filtering capability to svn branch selection popup --- .../idea/svn/branchConfig/SelectBranchPopup.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/plugins/svn4idea/src/org/jetbrains/idea/svn/branchConfig/SelectBranchPopup.java b/plugins/svn4idea/src/org/jetbrains/idea/svn/branchConfig/SelectBranchPopup.java index 17c55f036e33..29a5bf65678d 100644 --- a/plugins/svn4idea/src/org/jetbrains/idea/svn/branchConfig/SelectBranchPopup.java +++ b/plugins/svn4idea/src/org/jetbrains/idea/svn/branchConfig/SelectBranchPopup.java @@ -23,6 +23,7 @@ import com.intellij.openapi.ui.popup.util.BaseListPopupStep; import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.ui.components.JBList; +import com.intellij.util.NullableFunction; import com.intellij.util.continuation.ModalityIgnorantBackgroundableTask; import com.intellij.util.text.DateFormatUtil; import com.intellij.util.ui.UIUtil; @@ -98,6 +99,11 @@ public class SelectBranchPopup { return configuration.getTrunkUrl() + " (trunk)"; } + @NotNull + private static String getBranchName(@NotNull SvnBranchItem branch) { + return SVNPathUtil.tail(branch.getUrl()); + } + private static class BranchBasesPopupStep extends BaseListPopupStep { protected final Project myProject; private final VirtualFile myVcsRoot; @@ -253,6 +259,13 @@ public class SelectBranchPopup { } } }) + .setFilteringEnabled(new NullableFunction() { + @Nullable + @Override + public String fun(Object item) { + return item instanceof SvnBranchItem ? getBranchName((SvnBranchItem)item) : null; + } + }) .createPopup(); showPopupAt(popup); } @@ -300,7 +313,7 @@ public class SelectBranchPopup { myDateLabel.setText(""); } else { SvnBranchItem item = (SvnBranchItem) value; - myUrlLabel.setText(SVNPathUtil.tail(item.getUrl())); + myUrlLabel.setText(getBranchName(item)); final long creationMillis = item.getCreationDateMillis(); myDateLabel.setText((creationMillis > 0) ? DateFormatUtil.formatDate(creationMillis) : ""); }