From 3b948c9ce9df3e61d4c2fdcfaa957aa21ab08e1f Mon Sep 17 00:00:00 2001 From: Julia Beliaeva Date: Tue, 5 Feb 2019 18:53:40 +0300 Subject: [PATCH] [vcs-log] extract helper methods to get filtered roots and files --- .../filter/StructureFilterPopupComponent.java | 42 ++++++++++++------- 1 file changed, 26 insertions(+), 16 deletions(-) diff --git a/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/filter/StructureFilterPopupComponent.java b/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/filter/StructureFilterPopupComponent.java index 55fa9ddd67c8..6111f915aa46 100644 --- a/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/filter/StructureFilterPopupComponent.java +++ b/platform/vcs-log/impl/src/com/intellij/vcs/log/ui/filter/StructureFilterPopupComponent.java @@ -66,13 +66,25 @@ class StructureFilterPopupComponent extends FilterPopupComponent getFilterRoots(@Nullable VcsLogRootFilter filter) { + return filter != null ? filter.getRoots() : getAllRoots(); + } + + @NotNull + private static Collection getFilterFiles(@Nullable VcsLogStructureFilter filter) { + return filter != null ? filter.getFiles() : Collections.emptySet(); + } + @NotNull @Override protected String getText(@NotNull FilterPair filter) { - Collection roots = getRootFilter(filter) == null ? getAllRoots() : getRootFilter(filter).getRoots(); - Collection files = getStructureFilter(filter) == null ? Collections.emptySet() : getStructureFilter(filter).getFiles(); - Collection visibleRoots = VcsLogUtil.getAllVisibleRoots(getAllRoots(), getRootFilter(filter), getStructureFilter(filter)); + VcsLogRootFilter rootFilter = getRootFilter(filter); + VcsLogStructureFilter structureFilter = getStructureFilter(filter); + Collection visibleRoots = VcsLogUtil.getAllVisibleRoots(getAllRoots(), rootFilter, structureFilter); + Collection roots = getFilterRoots(rootFilter); + Collection files = getFilterFiles(structureFilter); if (files.isEmpty()) { return getTextFromRoots(roots, visibleRoots.size() == getAllRoots().size()); } @@ -118,8 +130,7 @@ class StructureFilterPopupComponent extends FilterPopupComponent filter) { - return getToolTip(getRootFilter(filter) == null ? getAllRoots() : getRootFilter(filter).getRoots(), - getStructureFilter(filter) == null ? Collections.emptySet() : getStructureFilter(filter).getFiles()); + return getToolTip(getFilterRoots(getRootFilter(filter)), getFilterFiles(getStructureFilter(filter))); } @NotNull @@ -197,9 +208,9 @@ class StructureFilterPopupComponent extends FilterPopupComponent filter = myFilterModel.getFilter(); - if (getRootFilter(filter) != null) { - return getRootFilter(filter).getRoots().contains(root); + VcsLogRootFilter rootFilter = getRootFilter(myFilterModel.getFilter()); + if (rootFilter != null) { + return rootFilter.getRoots().contains(root); } return true; } @@ -207,8 +218,7 @@ class StructureFilterPopupComponent extends FilterPopupComponent roots = getAllRoots(); - FilterPair previousFilter = myFilterModel.getFilter(); - VcsLogRootFilter rootFilter = getRootFilter(previousFilter); + VcsLogRootFilter rootFilter = getRootFilter(myFilterModel.getFilter()); Collection visibleRoots; if (rootFilter == null) { @@ -344,23 +354,23 @@ class StructureFilterPopupComponent extends FilterPopupComponent filter = myFilterModel.getFilter(); + VcsLogStructureFilter structureFilter = getStructureFilter(myFilterModel.getFilter()); Collection files; - if (getStructureFilter(filter) == null) { + if (structureFilter == null) { files = Collections.emptySet(); } else { // for now, ignoring non-existing paths - files = ContainerUtil.mapNotNull(getStructureFilter(filter).getFiles(), FilePath::getVirtualFile); + files = ContainerUtil.mapNotNull(structureFilter.getFiles(), FilePath::getVirtualFile); } VcsStructureChooser chooser = new VcsStructureChooser(project, "Select Files or Folders to Filter by", files, new ArrayList<>(dataPack.getLogProviders().keySet())); if (chooser.showAndGet()) { - VcsLogStructureFilter structureFilter = VcsLogFilterObject.fromVirtualFiles(chooser.getSelectedFiles()); - myFilterModel.setFilter(new FilterPair<>(structureFilter, null)); - myUiProperties.addRecentlyFilteredGroup(myName, VcsLogClassicFilterUi.FileFilterModel.getFilterValues(structureFilter)); + VcsLogStructureFilter newFilter = VcsLogFilterObject.fromVirtualFiles(chooser.getSelectedFiles()); + myFilterModel.setFilter(new FilterPair<>(newFilter, null)); + myUiProperties.addRecentlyFilteredGroup(myName, VcsLogClassicFilterUi.FileFilterModel.getFilterValues(newFilter)); } }