// ------------------------------ // protected // ------------------------------ // === AbstractConnection ========== // --- event --- protected virtual void OnConnectableChanged(ConnectableChangedEventArgs e) { var handler = ConnectableChanged; if (handler != null) { handler(this, e); } }
// === AbstractConnection ========== protected override void OnConnectableChanged(ConnectableChangedEventArgs e) { base.OnConnectableChanged(e); if (e.OldValue != null) { e.OldValue.BoundsChanged -= HandleConnectableBoundsChanged; var oldNode = e.OldValue as INode; if (oldNode != null) { oldNode.MaxSizeChanged -= HandleNodeMaxSizeChanged; } } if (e.NewValue != null) { e.NewValue.BoundsChanged += HandleConnectableBoundsChanged; var newNode = e.NewValue as INode; if (newNode != null) { newNode.MaxSizeChanged += HandleNodeMaxSizeChanged; } } if ( _router == null && e.NewValue != null && ( (e.Kind == ConnectionAnchorKind.Source && e.NewValue == Target) || (e.Kind == ConnectionAnchorKind.Target && e.NewValue == Source) ) ) { SetEdgePoints(EdgeUtil.GetLoopPoints(Source.Bounds)); } if (_router != null && IsValidEdge) { using (DirtManager.BeginDirty()) { _router.Route(this); } } }