using System; using System.Collections.Generic; using System.Text; using System.Windows; using AIStudio.Wpf.DiagramDesigner.Algorithms; namespace AIStudio.Wpf.DiagramDesigner.Demo.ViewModels { class ReconnectLinksToClosestPortsViewModel : BaseViewModel { public ReconnectLinksToClosestPortsViewModel() { Title = "Reconnect links"; Info = "An example of reconnecting links to the closest ports."; _service.ColorViewModel.FillColor.Color = System.Windows.Media.Colors.Orange; DiagramViewModel = new DiagramViewModel(); DiagramViewModel.PageSizeType = PageSizeType.Custom; DiagramViewModel.PageSize = new Size(double.NaN, double.NaN); DefaultDesignerItemViewModel node1 = new DefaultDesignerItemViewModel() { Left = 50, Top = 50, Text = "1" }; DiagramViewModel.DirectAddItemCommand.Execute(node1); DefaultDesignerItemViewModel node2 = new DefaultDesignerItemViewModel() { Left = 300, Top = 300, Text = "2" }; DiagramViewModel.DirectAddItemCommand.Execute(node2); DefaultDesignerItemViewModel node3 = new DefaultDesignerItemViewModel() { Left = 300, Top = 50, Text = "3" }; DiagramViewModel.DirectAddItemCommand.Execute(node3); ConnectionViewModel connector1 = new ConnectionViewModel(node1.RightConnector, node2.LeftConnector, DrawMode.ConnectingLineSmooth, RouterMode.RouterNormal); DiagramViewModel.DirectAddItemCommand.Execute(connector1); ConnectionViewModel connector2 = new ConnectionViewModel(node2.RightConnector, node3.RightConnector, DrawMode.ConnectingLineStraight, RouterMode.RouterOrthogonal); DiagramViewModel.DirectAddItemCommand.Execute(connector2); ReconnectLinksCommand = new SimpleCommand(ReconnectLinks); DiagramViewModel.ClearSelectedItemsCommand.Execute(null); } public SimpleCommand ReconnectLinksCommand { get; private set; } protected void ReconnectLinks(object para) => DiagramViewModel.ReconnectLinksToClosestPorts(); } }