void UpdateAttachPointOrder() { foreach (var direction in AttachPoints) { List <Tuple <AttachPoint, NodeBaseViewModel> > apByPositionOfConnectedTo = new List <Tuple <AttachPoint, NodeBaseViewModel> >(); foreach (var ap in direction.Value) { ConnectionViewModel cvm = ap.Connection; if (cvm != null) { NodeBaseViewModel connTo = (cvm.AttachPointFrom == ap) ? cvm.To : cvm.From; apByPositionOfConnectedTo.Add(Tuple.Create(ap, connTo)); } } int n = 0; if (direction.Key == AttachDirection.Left || direction.Key == AttachDirection.Right) { foreach (var tuple in apByPositionOfConnectedTo.OrderBy(a => a.Item2.Location.Y)) { tuple.Item1.Order = n++; } } else if (direction.Key == AttachDirection.Top || direction.Key == AttachDirection.Bottom) { foreach (var tuple in apByPositionOfConnectedTo.OrderBy(a => a.Item2.Location.X)) { tuple.Item1.Order = n++; } } } }
public void SelectConnection(ConnectionViewModel edge) { SelectedCommand.HandleConnectionClick(edge); if (ConnectionSelected != null) { ConnectionSelected(this, edge); } }
internal virtual void RaiseConnectionRemoved(ConnectionViewModel connection) { Connections.Remove(connection); if (isInitialized) { OnConnectionRemoved(connection); } }
internal void RaiseConnectionAdded(ConnectionViewModel connection) { Connections.Add(connection); if (isInitialized) { OnConnectionAdded(connection); } }
public AttachPoint Attach(AttachDirection direction, ConnectionViewModel connection, NodeBaseViewModel associatedControl) { AttachPoint attachPoint = new AttachPoint(direction, connection, associatedControl); attachPoint.DirectionChanging += attachPoint_DirectionChanging; AttachPoints[direction].Add(attachPoint); UpdateAttachPoints(); return(attachPoint); }
public void RemoveConnection(ConnectionViewModel edge) { edge.Dispose(); if (edge.FromDescriptor != null) { AttachDescriptors.Remove(edge.FromDescriptor); } if (edge.ToDescriptor != null) { AttachDescriptors.Remove(edge.ToDescriptor); } Edges.Remove(edge); edge.From.RaiseConnectionRemoved(edge); edge.To.RaiseConnectionRemoved(edge); }
protected virtual void OnConnectionRemoved(ConnectionViewModel connection) { }
protected virtual void OnConnectionAdded(ConnectionViewModel connection) { }
public AttachPoint Attach(AttachDirection direction, ConnectionViewModel connection, NodeBaseViewModel node) { return(AttachPlacement.Attach(direction, connection, node)); }
public AttachPoint(AttachDirection direction, ConnectionViewModel connection, NodeBaseViewModel associatedControl) { Side = direction; this.Connection = connection; this.Control = associatedControl; }