コード例 #1
0
        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);
            }
        }
コード例 #2
0
        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);
        }