[log] move a method to VcsLogUtil.

This commit is contained in:
Kirill Likhodedov
2013-10-21 17:40:09 +04:00
parent e7575430df
commit 6eebae87c7
2 changed files with 52 additions and 21 deletions
@@ -0,0 +1,50 @@
/*
* Copyright 2000-2013 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.impl;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.util.containers.MultiMap;
import com.intellij.vcs.log.VcsRef;
import org.jetbrains.annotations.NotNull;
import java.util.Collection;
import java.util.Comparator;
import java.util.Map;
import java.util.TreeMap;
/**
* @author Kirill Likhodedov
*/
public class VcsLogUtil {
@NotNull
public static MultiMap<VirtualFile, VcsRef> groupRefsByRoot(@NotNull Collection<VcsRef> refs) {
MultiMap<VirtualFile, VcsRef> map = new MultiMap<VirtualFile, VcsRef>() {
@Override
protected Map<VirtualFile, Collection<VcsRef>> createMap() {
return new TreeMap<VirtualFile, Collection<VcsRef>>(new Comparator<VirtualFile>() { // TODO common to VCS root sorting method
@Override
public int compare(VirtualFile o1, VirtualFile o2) {
return o1.getPresentableUrl().compareTo(o2.getPresentableUrl());
}
});
}
};
for (VcsRef ref : refs) {
map.putValue(ref.getRoot(), ref);
}
return map;
}
}
@@ -2,7 +2,6 @@ package com.intellij.vcs.log.ui.frame;
import com.google.common.collect.Ordering;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.util.containers.MultiMap;
import com.intellij.util.ui.UIUtil;
import com.intellij.vcs.log.RefGroup;
import com.intellij.vcs.log.VcsLogProvider;
@@ -10,6 +9,7 @@ import com.intellij.vcs.log.VcsLogRefManager;
import com.intellij.vcs.log.VcsRef;
import com.intellij.vcs.log.data.VcsLogDataHolder;
import com.intellij.vcs.log.graph.render.PrintParameters;
import com.intellij.vcs.log.impl.VcsLogUtil;
import com.intellij.vcs.log.ui.VcsLogUI;
import com.intellij.vcs.log.ui.render.RefPainter;
import org.jetbrains.annotations.NotNull;
@@ -85,7 +85,7 @@ public class BranchesPanel extends JPanel {
Collection<VcsRef> allRefs = myDataHolder.getDataPack().getRefsModel().getBranches();
List<VcsRef> refsToShow = new ArrayList<VcsRef>();
for (Map.Entry<VirtualFile, Collection<VcsRef>> entry : groupByRoot(allRefs).entrySet()) {
for (Map.Entry<VirtualFile, Collection<VcsRef>> entry : VcsLogUtil.groupRefsByRoot(allRefs).entrySet()) {
VirtualFile root = entry.getKey();
Collection<VcsRef> refs = entry.getValue();
VcsLogProvider provider = myDataHolder.getLogProvider(root);
@@ -103,23 +103,4 @@ public class BranchesPanel extends JPanel {
return refsToShow;
}
@NotNull
private static MultiMap<VirtualFile, VcsRef> groupByRoot(@NotNull Collection<VcsRef> refs) {
MultiMap<VirtualFile, VcsRef> map = new MultiMap<VirtualFile, VcsRef>() {
@Override
protected Map<VirtualFile, Collection<VcsRef>> createMap() {
return new TreeMap<VirtualFile, Collection<VcsRef>>(new Comparator<VirtualFile>() { // TODO common to VCS root sorting method
@Override
public int compare(VirtualFile o1, VirtualFile o2) {
return o1.getPresentableUrl().compareTo(o2.getPresentableUrl());
}
});
}
};
for (VcsRef ref : refs) {
map.putValue(ref.getRoot(), ref);
}
return map;
}
}