diff --git a/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/filter/BranchFilterPopupComponent.java b/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/filter/BranchFilterPopupComponent.java index 64cf48910e4a..62e3ffdbcfd3 100644 --- a/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/filter/BranchFilterPopupComponent.java +++ b/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/filter/BranchFilterPopupComponent.java @@ -110,7 +110,7 @@ public class BranchFilterPopupComponent extends MultipleValueFilterPopupComponen @NotNull @Override public AnAction createAction(@NotNull String name) { - return new PredefinedValueAction(Collections.singletonList(name)) { + return new PredefinedValueAction(name) { @Override public void actionPerformed(@NotNull AnActionEvent e) { myFilterModel.setFilter(myFilterModel.createFilter(myValues)); // does not add to recent @@ -126,7 +126,7 @@ public class BranchFilterPopupComponent extends MultipleValueFilterPopupComponen @NotNull @Override protected AnAction createCollapsedAction(String actionName) { - return createPredefinedValueAction(Collections.singletonList(actionName)); // adds to recent + return new PredefinedValueAction(actionName); // adds to recent } } } diff --git a/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/filter/BranchPopupBuilder.java b/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/filter/BranchPopupBuilder.java index a73ffe42eb33..07eb471a322d 100644 --- a/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/filter/BranchPopupBuilder.java +++ b/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/filter/BranchPopupBuilder.java @@ -127,10 +127,7 @@ public abstract class BranchPopupBuilder { private static void putActionsForReferences(List references, Groups actions) { for (final RefGroup refGroup : references) { if (refGroup instanceof SingletonRefGroup) { - String name = refGroup.getName(); - if (!actions.singletonGroups.contains(name)) { - actions.singletonGroups.add(name); - } + actions.singletonGroups.add(refGroup.getName()); } else if (refGroup.isExpanded()) { addToGroup(refGroup, actions.expandedGroups); @@ -142,20 +139,9 @@ public abstract class BranchPopupBuilder { } private static void addToGroup(final RefGroup refGroup, TreeMap> groupToAdd) { - TreeSet existingGroup = groupToAdd.get(refGroup.getName()); - - TreeSet actions = new TreeSet<>(); + TreeSet groupActions = groupToAdd.computeIfAbsent(refGroup.getName(), key -> new TreeSet<>()); for (VcsRef ref : refGroup.getRefs()) { - actions.add(ref.getName()); - } - - if (existingGroup == null) { - groupToAdd.put(refGroup.getName(), actions); - } - else { - for (String action : actions) { - existingGroup.add(action); - } + groupActions.add(ref.getName()); } } } diff --git a/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/filter/MultipleValueFilterPopupComponent.java b/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/filter/MultipleValueFilterPopupComponent.java index 64f06bf85dcf..52fbca05a873 100644 --- a/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/filter/MultipleValueFilterPopupComponent.java +++ b/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/filter/MultipleValueFilterPopupComponent.java @@ -84,11 +84,6 @@ abstract class MultipleValueFilterPopupComponent ex return StringUtil.join(values, ", "); } - @NotNull - protected AnAction createPredefinedValueAction(@NotNull List values) { - return new PredefinedValueAction(values); - } - @NotNull protected AnAction createSelectMultipleValuesAction() { return new SelectMultipleValuesAction(); @@ -105,6 +100,10 @@ abstract class MultipleValueFilterPopupComponent ex @NotNull protected final List myValues; + public PredefinedValueAction(@NotNull String value) { + this(Collections.singletonList(value)); + } + public PredefinedValueAction(@NotNull List values) { super(null, tooltip(values), null); getTemplatePresentation().setText(displayableText(values), false); diff --git a/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/filter/UserFilterPopupComponent.java b/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/filter/UserFilterPopupComponent.java index 65fca30b3871..9c526ec0ca65 100644 --- a/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/filter/UserFilterPopupComponent.java +++ b/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/filter/UserFilterPopupComponent.java @@ -63,7 +63,7 @@ class UserFilterPopupComponent extends MultipleValueFilterPopupComponent