[vcs-log] select dotted edge that was created by linear bek to indicate that it can expand

This commit is contained in:
Julia Beliaeva
2015-02-02 16:45:57 +03:00
parent faab411f31
commit c895cb4e4d
3 changed files with 19 additions and 18 deletions
@@ -166,15 +166,6 @@ class CollapsedActionManager {
}
}
private static LinearGraphAnswer createSelectedAnswer(@NotNull LinearGraph linearGraph, Collection<Integer> selectedNodeIndexes) {
Set<Integer> 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<Integer> 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<Integer> middleNodes = context.myDelegatedFragmentGenerators.fragmentGenerator.getMiddleNodes(upNodeIndex, downNodeIndex, true);
@@ -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()));
}
}
}
@@ -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<Integer> selectedNodeIndexes) {
Set<Integer> 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<GraphEdge> edges = graph.getAdjacentEdges(up, EdgeFilter.NORMAL_DOWN);
@@ -182,5 +191,4 @@ public class LinearGraphUtils {
});
return ContainerUtil.newHashSet(result);
}
}