コード例 #1
0
 public async Task GoDeleteActiveEdges()
 {
     await DeleteActive.InvokeAsync("edge");
 }
コード例 #2
0
        public async Task OnKeyUp(KeyboardEventArgs e)
        {
            string value = e.Key.ToLower();

            if (value == "delete" || value == "backspace")
            {
                await DeleteActive.InvokeAsync("all");
            }
            if (e.CtrlKey)
            {
                if (e.ShiftKey)
                {
                    if (value == "i")
                    {
                        await Activate("nodes");
                    }
                    else if (value == "e")
                    {
                        await Activate("edges");
                    }
                    else if (value == "s")
                    {
                        await SaveAsSVG();
                    }
                }
                else
                {
                    if (value == "c")
                    {
                        Copy();
                    }
                    else if (value == "a")
                    {
                        await Activate("all");
                    }
                }
            }
            else
            {
                if (value == "f")
                {
                    await ChangeMenu.InvokeAsync(NavChoice.File);
                }
                else if (value == "h")
                {
                    await ChangeMenu.InvokeAsync(NavChoice.Home);
                }
                else if (value == "i")
                {
                    await ChangeMenu.InvokeAsync(NavChoice.Insert);
                }
                else if (value == "v")
                {
                    await ChangeMenu.InvokeAsync(NavChoice.View);
                }
                else if (value == "d")
                {
                    await ChangeMenu.InvokeAsync(NavChoice.Design);
                }
                else if (value == "?")
                {
                    await ChangeMenu.InvokeAsync(NavChoice.About);
                }
                else if (value == "x")
                {
                    await ChangeMenu.InvokeAsync(null);
                }
                else if (ActiveGraph.Nodes.Count == 2 && !ActiveGraph.Edges.Any() && value == "c")
                {
                    NewEdge.Tail       = ActiveGraph.Nodes[0];
                    NewEdge.Head       = ActiveGraph.Nodes[1];
                    NewEdge.MultiEdges = EdgeService.MultiGraphEdges(Graph.Edges, NewEdge.Head, NewEdge.Tail, Graph.Directed);
                    if (Graph.Weighted)
                    {
                        NewEdge.GetEdgeWeight = true;
                    }
                    else if (!NewEdge.MultiEdges.Any())
                    {
                        await AddNewEdge(true);
                    }
                }
            }
        }
コード例 #3
0
 public async Task GoDeleteActiveNodes()
 {
     await DeleteActive.InvokeAsync("node");
 }
コード例 #4
0
        public async Task Select(MenuEventArgs <MenuItem> e)
        {
            switch (e.Item.Text)
            {
            case "Copy":
                Copy();
                break;

            case "Paste":
                await Paste();

                break;

            case "Left":
            case "Center":
            case "Right":
            case "Top":
            case "Middle":
            case "Bottom":
                NodeService.Align(ActiveGraph.Nodes, e.Item.Text);
                break;

            case "Delete":
                await DeleteActive.InvokeAsync("all");

                break;

            case "Edit":
            case "Nodes":
            case "Edges":
                await ChangeMenu.InvokeAsync(NavChoice.Design);

                break;

            case "All Nodes":
                await Activate("nodes");

                break;

            case "All Edges":
                await Activate("edges");

                break;

            case "Everything":
                await Activate("all");

                break;

            case "Insert Edge":
                await InsertEdge();

                break;

            case "Insert Node":
                NodeService.AddNode(Graph.Nodes, Options.Default, origin[0] * SVGControl.Scale + SVGControl.Xaxis, origin[1] * SVGControl.Scale + SVGControl.Yaxis);
                await GraphChanged.InvokeAsync(Graph);

                break;

            case "Stop Algorithm":
                if (StartAlgorithm.Done)
                {
                    StartAlgorithm.Clear = true;
                }
                else
                {
                    await Reset();
                }
                break;

            case "Zoom In":
                if (ZoomService.ZoomIn(SVGControl))
                {
                    await SVGControlChanged.InvokeAsync(SVGControl);
                }
                break;

            case "Zoom Out":
                if (ZoomService.ZoomOut(SVGControl))
                {
                    await SVGControlChanged.InvokeAsync(SVGControl);
                }
                break;
            }
        }