mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[vcs-log] move util stuff into VcsLogFileFilter
This commit is contained in:
+20
-1
@@ -21,6 +21,7 @@ import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import com.intellij.util.containers.HashSet;
|
||||
import com.intellij.util.containers.MultiMap;
|
||||
import com.intellij.vcs.log.VcsLogFilter;
|
||||
import com.intellij.vcs.log.VcsLogRootFilter;
|
||||
import com.intellij.vcs.log.VcsLogStructureFilter;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
@@ -29,7 +30,15 @@ import org.jetbrains.annotations.Nullable;
|
||||
import java.util.Collection;
|
||||
import java.util.Set;
|
||||
|
||||
public class VcsLogFileFilterUtil {
|
||||
public class VcsLogFileFilter implements VcsLogFilter {
|
||||
@Nullable private final VcsLogStructureFilter myStructureFilter;
|
||||
@Nullable private final VcsLogRootFilter myRootFilter;
|
||||
|
||||
public VcsLogFileFilter(@Nullable VcsLogStructureFilter structureFilter, @Nullable VcsLogRootFilter rootFilter) {
|
||||
myStructureFilter = structureFilter;
|
||||
myRootFilter = rootFilter;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
static Pair<Set<VirtualFile>, MultiMap<VirtualFile, VirtualFile>> collectRoots(@NotNull Collection<VirtualFile> files,
|
||||
@NotNull Set<VirtualFile> roots) {
|
||||
@@ -88,4 +97,14 @@ public class VcsLogFileFilterUtil {
|
||||
Pair<Set<VirtualFile>, MultiMap<VirtualFile, VirtualFile>> rootsAndFiles = collectRootsAndFiles(roots, rootFilter, structureFilter);
|
||||
return ContainerUtil.union(rootsAndFiles.first, rootsAndFiles.second.keySet());
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public VcsLogStructureFilter getStructureFilter() {
|
||||
return myStructureFilter;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public VcsLogRootFilter getRootFilter() {
|
||||
return myRootFilter;
|
||||
}
|
||||
}
|
||||
@@ -188,7 +188,7 @@ class VisiblePackBuilder {
|
||||
private Set<Integer> getMatchingHeads(@NotNull VcsLogRefs refs,
|
||||
@NotNull Set<VirtualFile> vcsRoots,
|
||||
@NotNull VcsLogStructureFilter filter) {
|
||||
Pair<Set<VirtualFile>, MultiMap<VirtualFile, VirtualFile>> roots = VcsLogFileFilterUtil.collectRoots(filter.getFiles(), vcsRoots);
|
||||
Pair<Set<VirtualFile>, MultiMap<VirtualFile, VirtualFile>> roots = VcsLogFileFilter.collectRoots(filter.getFiles(), vcsRoots);
|
||||
return getMatchingHeads(refs, ContainerUtil.union(roots.first, roots.second.keySet()));
|
||||
}
|
||||
|
||||
@@ -257,7 +257,7 @@ class VisiblePackBuilder {
|
||||
VcsLogStructureFilter structureFilter = filterCollection.getStructureFilter();
|
||||
|
||||
Pair<Set<VirtualFile>, MultiMap<VirtualFile, VirtualFile>> selectedRootsAndFiles =
|
||||
VcsLogFileFilterUtil.collectRootsAndFiles(providers.keySet(), rootFilter, structureFilter);
|
||||
VcsLogFileFilter.collectRootsAndFiles(providers.keySet(), rootFilter, structureFilter);
|
||||
|
||||
Collection<List<TimedVcsCommit>> logs = ContainerUtil.newArrayList();
|
||||
for (Map.Entry<VirtualFile, VcsLogProvider> entry : providers.entrySet()) {
|
||||
|
||||
@@ -287,7 +287,7 @@ public class VcsLogClassicFilterUi implements VcsLogFilterUi {
|
||||
if (filter == null) {
|
||||
myVisibleRoots = null;
|
||||
} else {
|
||||
myVisibleRoots = VcsLogFileFilterUtil.collectRoots(roots, filter.getRootFilter(), filter.getStructureFilter());
|
||||
myVisibleRoots = VcsLogFileFilter.collectRoots(roots, filter.getRootFilter(), filter.getStructureFilter());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,41 +0,0 @@
|
||||
/*
|
||||
* Copyright 2000-2014 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.intellij.vcs.log.ui.filter;
|
||||
|
||||
import com.intellij.vcs.log.VcsLogFilter;
|
||||
import com.intellij.vcs.log.VcsLogRootFilter;
|
||||
import com.intellij.vcs.log.VcsLogStructureFilter;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
public class VcsLogFileFilter implements VcsLogFilter {
|
||||
@Nullable private final VcsLogStructureFilter myStructureFilter;
|
||||
@Nullable private final VcsLogRootFilter myRootFilter;
|
||||
|
||||
public VcsLogFileFilter(@Nullable VcsLogStructureFilter structureFilter, @Nullable VcsLogRootFilter rootFilter) {
|
||||
myStructureFilter = structureFilter;
|
||||
myRootFilter = rootFilter;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public VcsLogStructureFilter getStructureFilter() {
|
||||
return myStructureFilter;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public VcsLogRootFilter getRootFilter() {
|
||||
return myRootFilter;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user