private void UpdateCurrentContent() { var nodeSelector = RestrictVisibility ? OriginalGraph.GetNodeSelector(SelectedNodeIds, NodeVisitStopFunction, NodeVisitAcceptFunction) : null; CurrentDotContent = OriginalGraph.ToDot(new DotFormatOptions { NodeSelector = nodeSelector }); if (UpdateCurrentImage) { CurrentImage = GraphParser.GetGraphImage(CurrentDotContent); } CurrentDotLayoutContent = GraphParser.GetGraphLayoutDot(CurrentDotContent); CurrentLayoutGraph = GraphParser.GetGraph(CurrentDotLayoutContent); if (CurrentWpfGraph != null) { CurrentWpfGraph.Changed -= CurrentWpfGraphChanged; } CurrentWpfGraph = new WpfGraph(CurrentLayoutGraph, SelectedNodeIds); CurrentWpfGraph.Changed += CurrentWpfGraphChanged; if (IsConnectedComponentsEnabled) { CurrentConnectedComponents = GetConnectedComponents(CurrentLayoutGraph); } }
public SimpleController() { if (Environment.GetCommandLineArgs().Length <= 1) { throw new ArgumentException("No filename argument given!"); } var filename = Environment.GetCommandLineArgs()[1]; var dotContent = File.ReadAllText(filename); try { GraphParser.CheckSyntax(dotContent); } catch (Exception e) { throw new ArgumentException("Invalid graph syntax:" + Environment.NewLine + e.Message); } var graph = GraphParser.GetGraph(dotContent); var layoutGraph = GraphParser.GetGraphLayout(graph.ToDot()); Graph = new WpfGraph(layoutGraph); }