private void HighlightNode(INode node, string name, bool addAnnotation) { if (addAnnotation) { if (ycompClient.dumpInfo.IsExcludedGraph()) { ycompClient.AddNodeEvenIfGraphExcluded(node); } ycompClient.ChangeNode(node, realizers.MatchedNodeRealizer); renderRecorder.AddNodeAnnotation(node, name); } else { ycompClient.ChangeNode(node, null); ycompClient.AnnotateElement(node, null); renderRecorder.RemoveNodeAnnotation(node); } }
// applies changes recorded so far, leaving a graph without visible changes behind (e.g. no annotations) public void ApplyChanges(YCompClient ycompClient) { foreach (INode node in addedNodes.Keys) { ycompClient.ChangeNode(node, null); ycompClient.AnnotateElement(node, null); } foreach (IEdge edge in addedEdges.Keys) { ycompClient.ChangeEdge(edge, null); ycompClient.AnnotateElement(edge, null); } foreach (String edgeName in deletedEdges) { ycompClient.DeleteEdge(edgeName); } foreach (String nodeName in deletedNodes) { ycompClient.DeleteNode(nodeName); } foreach (INode node in retypedNodes.Keys) { ycompClient.ChangeNode(node, null); } foreach (IEdge edge in retypedEdges.Keys) { ycompClient.ChangeEdge(edge, null); } foreach (INode node in annotatedNodes.Keys) { ycompClient.AnnotateElement(node, null); } foreach (IEdge edge in annotatedEdges.Keys) { ycompClient.AnnotateElement(edge, null); } }
public void MarkMatch(IMatch match, String nodeRealizerName, String edgeRealizerName) { foreach (INode node in match.Nodes) { ycompClient.ChangeNode(node, nodeRealizerName); } foreach (IEdge edge in match.Edges) { ycompClient.ChangeEdge(edge, edgeRealizerName); } MarkMatches(match.EmbeddedGraphs, nodeRealizerName, edgeRealizerName); foreach (IMatches iteratedsMatches in match.Iterateds) { MarkMatches(iteratedsMatches, nodeRealizerName, edgeRealizerName); } MarkMatches(match.Alternatives, nodeRealizerName, edgeRealizerName); MarkMatches(match.Independents, nodeRealizerName, edgeRealizerName); }