示例#1
0
        public void window_loaded_prev1(object sender, RoutedEventArgs e)
        {
            GraphViewer graphViewer = new GraphViewer();

            graphViewer.BindToPanel(panel);
            //panel.LastChildFill = true;
            panel.Background = Brushes.LightGray;
            Graph graph = new Graph();
            //graph.Attr.LayerDirection = LayerDirection.LR;

            var edge = graph.AddEdge("A", "B");

            //edge.DrawEdgeDelegate = edge_rendering_delegate;
            edge.UserData     = "center_of";
            graphViewer.Graph = graph;
            this.MouseWheel  += MouseWheelEventHandler;
            //panel.MouseWheel += MouseWheelEventHandler;
            //graphViewer.GraphCanvas.MouseWheel += MouseWheelEventHandler;
            var gv = graphViewer;

            _graphViewer = gv;

            GVH.addNode(gv, "55", 0, 0);
            GVH.addLineEdge2(gv, "B", "55");
            graph.GeometryGraph.UpdateBoundingBox();
            //DebugV.D.tag = 1;
            gv.SetInitialTransform();
            //gv.GraphCanvas.Background = Brushes.Red;
            var ov = gv.GraphCanvas.Focus();
        }
        protected override void OnStartup(StartupEventArgs e)
        {
#if DEBUG
            Microsoft.Msagl.GraphViewerGdi.DisplayGeometryGraph.SetShowFunctions();
#endif

            appWindow = new Window {
                Title   = "WpfApplicationSample",
                Content = mainGrid,
                WindowStartupLocation = WindowStartupLocation.CenterScreen,
                WindowState           = WindowState.Normal
            };

            SetupToolbar();
            graphViewerPanel.ClipToBounds = true;
            mainGrid.Children.Add(toolBar);
            toolBar.VerticalAlignment = VerticalAlignment.Top;
            graphViewer.ObjectUnderMouseCursorChanged += graphViewer_ObjectUnderMouseCursorChanged;

            mainGrid.Children.Add(graphViewerPanel);
            graphViewer.BindToPanel(graphViewerPanel);

            SetStatusBar();
            graphViewer.MouseDown += WpfApplicationSample_MouseDown;
            appWindow.Loaded      += (a, b) => CreateAndLayoutAndDisplayGraph(null, null);

            //CreateAndLayoutAndDisplayGraph(null,null);
            //graphViewer.MainPanel.MouseLeftButtonUp += TestApi;
            appWindow.Show();
        }
示例#3
0
        void LoadData(string DatFile)
        {
            uniqD = new Dictionary <long, long>();

            using (var fs = File.OpenRead(DatFile))
            {
                using (var br = new BinaryReader(fs))
                {
                    graphViewer = new GraphViewer();
                    graphViewer.LayoutEditingEnabled = false;
                    graphViewer.BindToPanel(gvPanel);

                    var          dgraph = new Drawing.Graph();
                    Drawing.Edge edg    = null;

                    while (fs.Position < fs.Length - 128)
                    {
                        var tid      = br.ReadInt32();
                        var flags    = br.ReadInt32();
                        var rip      = br.ReadInt64();
                        var rsp      = br.ReadInt64();
                        var from_rip = br.ReadInt64();

                        if (!uniqD.ContainsKey(from_rip))
                        {
                            uniqD.Add(from_rip, rip);
                            edg = dgraph.AddEdge(from_rip.ToString("X"), rip.ToString("X"), rip.ToString("X"));
                        }
                    }

                    graphViewer.Graph = dgraph;
                }
            }
        }
示例#4
0
        private void MainWindow_Loaded(object sender, RoutedEventArgs e)
        {
            Panel.Children.Clear();
            var         nodes       = main.storedata.scenicnode;
            GraphViewer graphViewer = new GraphViewer();

            graphViewer.BindToPanel(Panel);
            Microsoft.Msagl.Drawing.Graph graph = new Microsoft.Msagl.Drawing.Graph();

            foreach (var node in nodes)
            {
                if (node.edges.Count == 0)
                {
                    graph.AddNode(new Node(node.name));
                }
                foreach (var edge in node.edges)
                {
                    graph.AddEdge(node.name, edge.GetDest(nodes).name);
                }
            }
            //graph.AddEdge("A", "B");
            foreach (var node in graph.Nodes)
            {
                node.Attr.Shape       = Microsoft.Msagl.Drawing.Shape.Circle;
                node.Attr.Color       = Microsoft.Msagl.Drawing.Color.Purple;
                node.Attr.LabelMargin = 10;
            }
            graph.Attr.LayerDirection = LayerDirection.LR;
            graphViewer.Graph         = graph; // throws exception
        }
        private void DisplayRealGraph()
        {
            _graph.CreateGeometryGraph();

            foreach (var navigationPoint in airfield.NavigationGraph.Vertices)
            {
                var dnode = _graph.Nodes.FirstOrDefault(node => node.Id.Equals(navigationPoint.Name));
                if (dnode != null)
                {
                    dnode.GeometryNode.BoundaryCurve = CreateLabelAndBoundary(navigationPoint, dnode);
                }
                else
                {
                    MessageBox.Show($"Error Displaying {navigationPoint.Name}", "Display Error", MessageBoxButton.OK, MessageBoxImage.Error);
                }
            }

            LayoutHelpers.RouteAndLabelEdges(_graph.GeometryGraph, settings, _graph.GeometryGraph.Edges);

            _graphViewer = new GraphViewer
            {
                LayoutEditingEnabled  = false,
                NeedToCalculateLayout = false
            };

            _graphViewer.BindToPanel(GraphPanel);
            _graphViewer.MouseDown += MouseDownHandler;
            _graphViewer.MouseUp   += MouseUpHandler;
            _graphViewer.Graph      = _graph;
        }
示例#6
0
        private void MainWindow_Loaded(object sender, RoutedEventArgs e)
        {
            ViewModel        = new AutomatonViewModel();
            this.DataContext = ViewModel;

            graphViewer = new GraphViewer();
            graphViewer.BindToPanel(graphViewPanel);
        }
示例#7
0
        private void btnRender_Click(object sender, RoutedEventArgs e)
        {
            if (string.IsNullOrWhiteSpace(SymFile) || string.IsNullOrWhiteSpace(TraceFile))
            {
                return;
            }

            string source, target;

            graphViewer = new GraphViewer();
            graphViewer.LayoutEditingEnabled = false;
            graphViewer.BindToPanel(gvPanel);
            Drawing.Edge edg              = null;
            var          dgraph           = new Drawing.Graph();
            var          sugiyamaSettings = (SugiyamaLayoutSettings)dgraph.LayoutAlgorithmSettings;

            sugiyamaSettings.NodeSeparation *= 2;
            sugiyamaSettings.EdgeRoutingSettings.EdgeRoutingMode = EdgeRoutingMode.Rectilinear;

            var tot = new totts(SymFile, TraceFile);

            var blocks = tot.GetBlocks();

            foreach (var block in blocks)
            {
                if (block == null)
                {
                    break;
                }
                source = block.StepEvent.FROM_RIP.ToString("X");
                target = block.StepEvent.RIP.ToString("X");

                //var edge = new Drawing.Edge(source, "", target);
                edg = dgraph.AddEdge(source, target);
            }
            foreach (var block in blocks)
            {
                var blockLabel = new StringBuilder();
                foreach (var line in block.Lines.Values)
                {
                    blockLabel.Append($"{line.Address:X} \t + {line.NasmDisLine}");
                }

                var node = dgraph.FindNode(block.StepEvent.FROM_RIP.ToString("X"));
                if (node == null)
                {
                    continue;
                }

                node.LabelText       = blockLabel.ToString();
                node.Label.FontSize  = 10;
                node.Label.FontName  = "New Courier";
                node.Label.FontColor = Drawing.Color.Blue;
            }
            dgraph.Attr.LayerDirection         = Drawing.LayerDirection.TB;
            dgraph.Attr.OptimizeLabelPositions = false;
            graphViewer.Graph = dgraph;
        }
示例#8
0
 public MainWindow()
 {
     InitializeComponent();
     DataContext        = new DijkstraViewModel();
     gviewer            = new GraphViewer();
     gviewer.MouseDown += Gviewer_MouseDown;
     gviewer.BindToPanel(viewerPanel);
     gviewer.PopupMenus();
 }
        private void Window_Initialized(object sender, System.EventArgs e)
        {
            Graph graph = new Graph();

            viewer = new GraphViewer();
            viewer.BindToPanel(dock);
            graph.Attr.LayerDirection = LayerDirection.TB;
            viewer.Graph = graph;
        }
示例#10
0
        public EditorView()
        {
            InitializeComponent();

            Loaded += EditorView_Loaded;
            masterViewer.BindToPanel(targetBox);
            masterViewer.MouseDown += MasterViewer_MouseDown;
            masterViewer.MouseUp   += MasterViewer_MouseUp;
            masterViewer.co
        }
示例#11
0
        public void SetGraph(Graph graph)
        {
            graph.IsVisible = true;

            GraphViewer graphViewer = new GraphViewer();

            graphViewer.BindToPanel(Panel);

            graphViewer.Graph = graph;
        }
示例#12
0
        public MainWindow()
        {
            InitializeComponent();

            _graphViewer.MouseUp += OnMouseCursorChanged;
            _graphViewer.BindToPanel(dockPanel);
#if DEBUG
            txtPath.Text = @"C:\Users\Administrator\Downloads\DevOps\Build\Scripts\Code\PackageRelease.proj";
#endif
        }
        private void MainWindow_Loaded(object sender, RoutedEventArgs e)
        {
            GraphViewer graphViewer = new GraphViewer();

            graphViewer.BindToPanel(Panel);
            Graph graph = new Graph();

            graph.AddEdge("A", "B");
            graph.Attr.LayerDirection = LayerDirection.LR;
            graphViewer.Graph         = graph; // throws exception
        }
示例#14
0
        private void MainWindow_Loaded(object sender, RoutedEventArgs e)
        {
            graphViewer = new GraphViewer();
            graphViewer.BindToPanel(GraphDockPanel);


            graphViewer.ObjectUnderMouseCursorChanged += GraphViewer_ObjectUnderMouseCursorChanged;
            graphViewer.MouseUp += GraphViewer_MouseUp;


            DrawGraph();
        }
示例#15
0
        //RangeSlider edgeRangeSlider;

        protected override void OnStartup(StartupEventArgs e)
        {
#if DEBUG
            Microsoft.Msagl.GraphViewerGdi.DisplayGeometryGraph.SetShowFunctions();
#endif

            appWindow = new Window {
                Title   = "My app for testing wpf graph control",
                Content = dockPanel,
                WindowStartupLocation = WindowStartupLocation.CenterScreen,
                WindowState           = WindowState.Normal
            };

            SetupToolbar();
            graphViewerPanel.ClipToBounds = true;
            dockPanel.Children.Add(toolBar);
            SetUpStatusBar();

            dockPanel.LastChildFill = true;
            dockPanel.Children.Add(graphViewerPanel);
            graphViewer.BindToPanel(graphViewerPanel);
            dockPanel.Loaded += GraphViewerLoaded;
            argsParser        = SetArgsParser(Args);
            //graphViewer.MainPanel.MouseLeftButtonUp += TestApi;
            TrySettingGraphViewerLargeLayoutThresholdAndSomeOtherLgSettings();
            if (argsParser.OptionIsUsed(ExitAfterLgLayoutOption))
            {
                graphViewer.DefaultLargeLayoutSettings.ExitAfterInit = true;
            }
            if (argsParser.OptionIsUsed(BackgroundImageOption))
            {
                graphViewer.DefaultLargeLayoutSettings.BackgroundImage = argsParser.GetValueOfOptionWithAfterString(BackgroundImageOption);
            }
            if (argsParser.OptionIsUsed(DrawBackgrounImageOption))
            {
                graphViewer.DefaultLargeLayoutSettings.DrawBackgroundImage = true;
            }
            graphViewer.ViewChangeEvent += GraphViewerViewChangeEvent;
            graphViewer.ObjectUnderMouseCursorChanged += GvObjectUnderMouseCursorChanged;
            graphViewer.MouseDown += GraphViewerMouseDown;
            graphViewer.MouseMove += GraphViewerMouseMove;


            var msaglFile = argsParser.GetValueOfOptionWithAfterString(SaveMsaglOption);
            if (msaglFile != null)
            {
                graphViewer.MsaglFileToSave = msaglFile;
            }

            graphViewer.GraphChanged += graphViewer_GraphChanged;
            //graphViewer.LayoutEditingEnabled = false;
            appWindow.Show();
        }
示例#16
0
        public GraphUserControl(GraphUserControlView view)
        {
            InitializeComponent();
            graphViewerPanel.ClipToBounds = true;
            this.view = view;
            graphViewer.BindToPanel(graphViewerPanel);
            mainGrid.Children.Clear();
            mainGrid.Children.Add(graphViewerPanel);

            Loaded            += (a, b) => RenderViewGraph();
            view.OnViewUpdate += RenderViewGraph;
        }
        private void SetGraph(Graph graph)
        {
            if (graph == null)
            {
                dockPanel.Children.Clear();
                return;
            }
            var graphViewer = new GraphViewer();

            graphViewer.BindToPanel(dockPanel);
            graphViewer.Graph = graph;
        }
示例#18
0
        public MainView()
        {
            InitializeComponent();

            GraphPanel.ClipToBounds = true;

            GraphViewer = new GraphViewer();
            GraphViewer.BindToPanel(GraphPanel);
            GraphViewer.Graph = new Graph();

            Loaded += (sender, args) => SetupBinding();
        }
示例#19
0
        private void DisplayAbstractGraph()
        {
            _graphViewer = new GraphViewer
            {
                LayoutEditingEnabled = false,
            };

            _graphViewer.BindToPanel(GraphPanel);
            _graphViewer.MouseDown += MouseDownHandler;
            _graphViewer.MouseUp   += MouseUpHandler;
            _graphViewer.Graph      = _graph;
        }
示例#20
0
        //AutomaticGraphLayoutControl graphControl = new AutomaticGraphLayoutControl();
        public EditTreeView()
        {
            InitializeComponent();

            //Funktionalität aus WpfGraphControl.GraphViewer.BindToPanel()
            //graphViewerPanel.Children.Add(((ViewModels.EditTreeViewModel)DataContext).graphViewer.GraphCanvas);
            //((ViewModels.EditTreeViewModel)DataContext).graphViewer.GraphCanvas.UpdateLayout();

            graphViewer.ObjectUnderMouseCursorChanged += GraphViewer_ObjectUnderMouseCursorChanged;
            graphViewer.BindToPanel(graphViewerPanel);
            graphViewer.MouseDown += GraphViewer_MouseDown;
            //Loaded += (a, b) => EditTreeView_Loaded(null, null);
        }
示例#21
0
        /// <summary>
        /// Initializes a new instance of the <see cref="windowDemoControl"/> class.
        /// </summary>
        public windowDemoControl()
        {
            this.InitializeComponent();

            graphViewerPanel.ClipToBounds = true;
            //mainGrid.Height = 300;
            //mainGrid.Width = 300;
            mainGrid.Children.Add(graphViewerPanel);
            graphViewer.BindToPanel(graphViewerPanel);

            //graphViewer.MouseDown += WpfApplicationSample_MouseDown;
            //this.myGrid.Children.Add(mainGrid);
        }
示例#22
0
        public MainWindow()
        {
            InitializeComponent();

            AllowDrop  = true;
            DragEnter += MainWindow_DragEnter;
            Drop      += MainWindow_Drop;

            // Initialize Views
            GraphViewer.BindToPanel(GraphViewerContainer);
            GraphViewer.GraphChanged     += Viewer_GraphChanged;
            treeView.SelectedItemChanged += TreeView_SelectedItemChanged;
        }
示例#23
0
        private void MainWindow_Loaded(object sender, System.Windows.RoutedEventArgs e)
        {
            graphViewer = new GraphViewer();
            graphViewer.BindToPanel(GraphDockPanel);


            graphViewer.ObjectUnderMouseCursorChanged += GraphViewer_ObjectUnderMouseCursorChanged;
            graphViewer.MouseUp += GraphViewer_MouseUp;


            graph = GraphCore.LoadGraphFromFile(@"C:\Users\rnamedyn\Downloads\Telegram Desktop\bez cyklu.txt");

            DrawGraph();
        }
        /// <summary>
        /// Constructeur
        /// </summary>
        public Visualisation()
        {
            this.DataContext = this;
            InitializeComponent();

            viewer1 = new GraphViewer();
            viewer1.RunLayoutAsync = true;

            viewer1.BindToPanel(this.grapheContainer1);

            viewer2 = new GraphViewer();
            viewer2.RunLayoutAsync = true;
            viewer2.BindToPanel(this.grapheContainer2);
        }
示例#25
0
        public GraphControl(GraphProvider echoGraph, ITheme theme, FontSettings font)
        {
            InitializeComponent();

            // could set LastChildFill to true, doesn't seem to matter
            Panel.HorizontalAlignment = HorizontalAlignment.Center;
            Panel.VerticalAlignment   = VerticalAlignment.Center;

            var viewer = new GraphViewer();

            viewer.BindToPanel(Panel);
            viewer.Graph = echoGraph.ToMicrosoftGraph(theme, font);

            viewer.NodeToCenterWithScale(viewer.Graph.Nodes.OrderBy(n => n.UserData is long u ? u : long.MaxValue).First(), 1);
        }
示例#26
0
        public MainWindow()
        {
            InitializeComponent();


            calculate.Click    += CalculateOnClick;
            calculate.Content   = "Calculate";
            calculate.IsEnabled = false;
            Loaded += Window_Loaded;
            graphViewerPanel.ClipToBounds = true;
            mainGrid.Children.Add(toolBar);
            toolBar.VerticalAlignment = VerticalAlignment.Top;
            toolBar.Items.Add(calculate);
            mainGrid.Children.Add(graphViewerPanel);
            graphViewer.BindToPanel(graphViewerPanel);
            Content = mainGrid;
        }
示例#27
0
        private void MainWindow_Loaded(object sender, RoutedEventArgs e)
        {
            _viewer.BindToPanel(Panel);
            Graph graph = new Graph
            {
                Attr =
                {
                    LayerDirection         = LayerDirection.TB,
                    OptimizeLabelPositions = true
                }
            };

            _viewer.Graph = graph;

            _corruptionMonitorActor = actorSystem
                                      .ActorOf(Props.Create(() => new CorruptionMonitorActor(_viewer))
                                               .WithDispatcher("akka.actor.synchronized-dispatcher"), "Printer");
        }
示例#28
0
        private void InitControls()
        {
            //panel.LastChildFill = true;
            GraphViewer graphViewer = new GraphViewer();

            graphViewer.BindToPanel(panel);

            panel.Background = Brushes.LightGray;
            panel.Focusable  = true;
            panel.UpdateLayout();
            _graphViewer = graphViewer;

            nodeAttrGroup.Visibility = Visibility.Hidden;
            //propertyPanel.UpdateLayout();
            //edgeAttrGroup.Visibility = Visibility.Hidden;
            edgeEditor.Visibility = Visibility.Visible;
            global_graphViewer    = _graphViewer;
        }
示例#29
0
        public MainWindow(Automaton automaton)
        {
            _automaton            = automaton ?? throw new ArgumentNullException(nameof(automaton));
            Title                 = "MainWindow";
            Content               = mainGrid;
            WindowStartupLocation = WindowStartupLocation.CenterScreen;
            WindowState           = WindowState.Normal;

            graphViewerPanel.ClipToBounds              = true;
            graphViewer.ObjectUnderMouseCursorChanged += graphViewer_ObjectUnderMouseCursorChanged;

            mainGrid.Children.Add(graphViewerPanel);
            graphViewer.BindToPanel(graphViewerPanel);

            SetStatusBar();
            graphViewer.MouseDown += MainWindow_MouseDown;
            Loaded += (a, b) => CreateAndLayoutAndDisplayGraph(null, null);
        }
示例#30
0
        public Toolbox()
        {
            InitializeComponent();
            Loaded += Toolbox_Loaded;

            parallelViewer.BindToPanel(PanelParallel);
            parallelViewer.LayoutEditingEnabled = false;
            parallelViewer.MouseDown           += ParallelViewer_MouseDown;

            alternativeViewer.BindToPanel(PanelAlternative);
            alternativeViewer.LayoutEditingEnabled = false;
            alternativeViewer.MouseDown           += AlternativeViewer_MouseDown;

            discreteViewer.BindToPanel(PanelDiscrete);
            discreteViewer.LayoutEditingEnabled = false;
            discreteViewer.MouseDown           += DiscreteViewer_MouseDown;

            continuousViewer.BindToPanel(PanelContinuous);
            continuousViewer.LayoutEditingEnabled = false;
            continuousViewer.MouseDown           += ContinuousViewer_MouseDown;
        }