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++;
                    }
                }
            }
        }
Beispiel #2
0
 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);
        }
Beispiel #6
0
 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));
 }
Beispiel #10
0
 public AttachPoint(AttachDirection direction, ConnectionViewModel connection, NodeBaseViewModel associatedControl)
 {
     Side            = direction;
     this.Connection = connection;
     this.Control    = associatedControl;
 }