diff --git a/platform/vcs-log/graph/src/com/intellij/vcs/log/graph/collapsing/CollapsedActionManager.java b/platform/vcs-log/graph/src/com/intellij/vcs/log/graph/collapsing/CollapsedActionManager.java index def11d41954c..b8fc8a202208 100644 --- a/platform/vcs-log/graph/src/com/intellij/vcs/log/graph/collapsing/CollapsedActionManager.java +++ b/platform/vcs-log/graph/src/com/intellij/vcs/log/graph/collapsing/CollapsedActionManager.java @@ -166,15 +166,6 @@ class CollapsedActionManager { } } - private static LinearGraphAnswer createSelectedAnswer(@NotNull LinearGraph linearGraph, Collection selectedNodeIndexes) { - Set selectedId = ContainerUtil.newHashSet(); - for (Integer nodeIndex : selectedNodeIndexes) { - if (nodeIndex == null) continue; - selectedId.add(linearGraph.getNodeId(nodeIndex)); - } - return new LinearGraphAnswer(null, getCursor(true), null, selectedId); - } - private final static ActionCase CLEAR_HOVER = new ActionCase() { @Nullable @Override @@ -217,7 +208,7 @@ class CollapsedActionManager { GraphFragment fragment = compiledLinearFragmentGenerator.getPartLongFragment(affectedGraphElement); if (fragment == null) return null; Set middleCompiledNodes = compiledFragmentGenerator.getMiddleNodes(fragment.upNodeIndex, fragment.downNodeIndex, false); - return createSelectedAnswer(context.getCompiledGraph(), middleCompiledNodes); + return LinearGraphUtils.createSelectedAnswer(context.getCompiledGraph(), middleCompiledNodes); } GraphFragment fragment = compiledLinearFragmentGenerator.getLongFragment(affectedGraphElement); @@ -321,7 +312,7 @@ class CollapsedActionManager { int downNodeIndex = context.convertToDelegateNodeIndex(assertInt(dottedEdge.getDownNodeIndex())); if (context.getActionType() == GraphAction.Type.MOUSE_OVER) { - return createSelectedAnswer(context.getDelegatedGraph(), ContainerUtil.set(upNodeIndex, downNodeIndex)); + return LinearGraphUtils.createSelectedAnswer(context.getDelegatedGraph(), ContainerUtil.set(upNodeIndex, downNodeIndex)); } Set middleNodes = context.myDelegatedFragmentGenerators.fragmentGenerator.getMiddleNodes(upNodeIndex, downNodeIndex, true); diff --git a/platform/vcs-log/graph/src/com/intellij/vcs/log/graph/linearBek/LinearBekController.java b/platform/vcs-log/graph/src/com/intellij/vcs/log/graph/linearBek/LinearBekController.java index ecd2c32ceefe..043dac1bd883 100644 --- a/platform/vcs-log/graph/src/com/intellij/vcs/log/graph/linearBek/LinearBekController.java +++ b/platform/vcs-log/graph/src/com/intellij/vcs/log/graph/linearBek/LinearBekController.java @@ -32,7 +32,9 @@ import com.intellij.vcs.log.graph.utils.TimestampGetter; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import java.awt.*; import java.util.*; +import java.util.List; public class LinearBekController extends CascadeLinearGraphController { @NotNull private final LinearBekGraph myCompiledGraph; @@ -77,7 +79,7 @@ public class LinearBekController extends CascadeLinearGraphController { if (graphElement instanceof GraphEdge) { GraphEdge edge = (GraphEdge)graphElement; if (edge.getType() == GraphEdgeType.DOTTED){ - return LinearGraphUtils.createCursorAnswer(/*handCursor =*/ true); + return LinearGraphUtils.createSelectedAnswer(myCompiledGraph, ContainerUtil.set(edge.getUpNodeIndex(), edge.getDownNodeIndex())); } } } diff --git a/platform/vcs-log/graph/src/com/intellij/vcs/log/graph/utils/LinearGraphUtils.java b/platform/vcs-log/graph/src/com/intellij/vcs/log/graph/utils/LinearGraphUtils.java index 08b5f5dd1b87..9bda16393d5b 100644 --- a/platform/vcs-log/graph/src/com/intellij/vcs/log/graph/utils/LinearGraphUtils.java +++ b/platform/vcs-log/graph/src/com/intellij/vcs/log/graph/utils/LinearGraphUtils.java @@ -66,8 +66,7 @@ public class LinearGraphUtils { } public static int getNotNullNodeIndex(@NotNull GraphEdge edge) { - if (edge.getUpNodeIndex() != null) - return edge.getUpNodeIndex(); + if (edge.getUpNodeIndex() != null) return edge.getUpNodeIndex(); assert edge.getDownNodeIndex() != null; return edge.getDownNodeIndex(); } @@ -101,8 +100,7 @@ public class LinearGraphUtils { @Override public Integer fun(GraphEdge graphEdge) { if (isEdgeDown(graphEdge, nodeIndex)) { - if (graphEdge.getType() == GraphEdgeType.NOT_LOAD_COMMIT) - return graphEdge.getTargetId(); + if (graphEdge.getType() == GraphEdgeType.NOT_LOAD_COMMIT) return graphEdge.getTargetId(); return graphEdge.getDownNodeIndex(); } return null; @@ -146,11 +144,22 @@ public class LinearGraphUtils { public static Cursor getCursor(boolean hand) { if (hand) { return Cursor.getPredefinedCursor(Cursor.HAND_CURSOR); - } else { + } + else { return Cursor.getDefaultCursor(); } } + public static LinearGraphController.LinearGraphAnswer createSelectedAnswer(@NotNull LinearGraph linearGraph, + @NotNull Collection selectedNodeIndexes) { + Set selectedId = ContainerUtil.newHashSet(); + for (Integer nodeIndex : selectedNodeIndexes) { + if (nodeIndex == null) continue; + selectedId.add(linearGraph.getNodeId(nodeIndex)); + } + return new LinearGraphController.LinearGraphAnswer(null, getCursor(true), null, selectedId); + } + @Nullable public static GraphEdge getEdge(@NotNull LinearGraph graph, int up, int down) { List edges = graph.getAdjacentEdges(up, EdgeFilter.NORMAL_DOWN); @@ -182,5 +191,4 @@ public class LinearGraphUtils { }); return ContainerUtil.newHashSet(result); } - }