protected internal virtual void OnConnectorChanged(ConnectorEventArgs e) { if (this.ConnectorChanged != null) { this.ConnectorChanged(this, e); } }
protected virtual void OnConnectorRemoved(ConnectorEventArgs e) { if (this.ConnectorRemoved != null) { this.ConnectorRemoved(this, e); } }
protected override void OnConnectorRemoved(ConnectorEventArgs e) { base.OnConnectorRemoved(e); StateDesignerConnector connector = e.Connector as StateDesignerConnector; if (connector == null || string.IsNullOrEmpty(connector.SetStateName) || !this.RootStateDesigner.RemovingSetState) return; DesignerLayoutConnectionPoint sourceDesignerLayoutConnectionPoint = connector.Source as DesignerLayoutConnectionPoint; if (sourceDesignerLayoutConnectionPoint != null) { CompositeActivityDesigner compositeDesigner = StateDesigner.GetDesigner(sourceDesignerLayoutConnectionPoint.EventHandler) as CompositeActivityDesigner; if (compositeDesigner != null && sourceDesignerLayoutConnectionPoint.EventHandler != null) { Activity setStateActivity = StateDesigner.FindActivityByQualifiedName(sourceDesignerLayoutConnectionPoint.EventHandler, connector.SetStateName); if (setStateActivity != null) { List<Activity> activitiesToRemove = new List<Activity>(); activitiesToRemove.Add(setStateActivity); CompositeActivityDesigner setStateParentDesigner = StateDesigner.GetDesigner(setStateActivity.Parent) as CompositeActivityDesigner; if (setStateParentDesigner != null) setStateParentDesigner.RemoveActivities(activitiesToRemove.AsReadOnly()); } } } }
protected override void OnConnectorChanged(ConnectorEventArgs e) { base.OnConnectorChanged(e); Connector connector = e.Connector; StateDesignerConnector stateDesignerConnector = connector as StateDesignerConnector; if (stateDesignerConnector == null) return; if (!stateDesignerConnector.Target.AssociatedDesigner.Activity.QualifiedName.Equals(stateDesignerConnector.TargetStateName)) { StateActivity rootState = (StateActivity)this.RootStateDesigner.Activity; // target state has changed SetStateActivity setState = FindActivityByQualifiedName(rootState, stateDesignerConnector.SetStateName) as SetStateActivity; if (setState != null) { StateActivity targetState = (StateActivity)stateDesignerConnector.Target.AssociatedDesigner.Activity; PropertyDescriptor property = GetPropertyDescriptor(setState, SetStateActivity.TargetStateNamePropertyName); property.SetValue(setState, targetState.QualifiedName); stateDesignerConnector.TargetStateName = targetState.QualifiedName; } } StateDesigner.DesignerLayoutConnectionPoint sourceConnectionPoint = (StateDesigner.DesignerLayoutConnectionPoint)stateDesignerConnector.Source; if (!sourceConnectionPoint.EventHandler.QualifiedName.Equals(stateDesignerConnector.EventHandlerName)) { StateActivity rootState = (StateActivity)this.RootStateDesigner.Activity; // source state has changed SetStateActivity setState = FindActivityByQualifiedName(rootState, stateDesignerConnector.SetStateName) as SetStateActivity; if (setState != null) { IDesignerHost designerHost = GetService(typeof(IDesignerHost)) as IDesignerHost; DesignerTransaction transaction = null; if (designerHost != null) transaction = designerHost.CreateTransaction(SR.GetMoveSetState()); try { CompositeActivityDesigner previousSetStateParentDesigner = (CompositeActivityDesigner)StateDesigner.GetDesigner(setState.Parent); List<Activity> activitiesToRemove = new List<Activity>(); activitiesToRemove.Add(setState); previousSetStateParentDesigner.RemoveActivities(activitiesToRemove.AsReadOnly()); DesignerLayoutConnectionPoint source = (DesignerLayoutConnectionPoint)stateDesignerConnector.Source; CompositeActivityDesigner newSetStateParentDesigner = (CompositeActivityDesigner)StateDesigner.GetDesigner(source.EventHandler); List<Activity> activitiesToInsert = new List<Activity>(); activitiesToInsert.Add(setState); newSetStateParentDesigner.InsertActivities(new HitTestInfo(newSetStateParentDesigner, HitTestLocations.Designer), activitiesToInsert.AsReadOnly()); stateDesignerConnector.EventHandlerName = source.EventHandler.QualifiedName; stateDesignerConnector.SourceStateName = source.EventHandler.Parent.QualifiedName; if (transaction != null) transaction.Commit(); } catch { if (transaction != null) transaction.Cancel(); throw; } } } }
protected override void OnConnectorAdded(ConnectorEventArgs e) { base.OnConnectorAdded(e); StateDesignerConnector connector = e.Connector as StateDesignerConnector; if (connector == null) return; // We need to make sure that the source connection point // is always the event handler DesignerLayoutConnectionPoint sourceDesignerLayoutConnectionPoint = connector.Source as DesignerLayoutConnectionPoint; DesignerLayoutConnectionPoint targetDesignerLayoutConnectionPoint = connector.Target as DesignerLayoutConnectionPoint; if (sourceDesignerLayoutConnectionPoint == null) { Debug.Assert(targetDesignerLayoutConnectionPoint != null); ConnectionPoint source = connector.Source; connector.Source = connector.Target; connector.Target = source; } else { Debug.Assert(targetDesignerLayoutConnectionPoint == null); } ConnectionPoint target = connector.Target; sourceDesignerLayoutConnectionPoint = (DesignerLayoutConnectionPoint)connector.Source; if (this.RootStateDesigner.AddingSetState) { SetStateActivity setState = new SetStateActivity(); setState.TargetStateName = target.AssociatedDesigner.Activity.QualifiedName; CompositeActivityDesigner compositeDesigner = (CompositeActivityDesigner)StateDesigner.GetDesigner(sourceDesignerLayoutConnectionPoint.EventHandler); List<Activity> activitiesToInsert = new List<Activity>(); activitiesToInsert.Add(setState); compositeDesigner.InsertActivities(new HitTestInfo(compositeDesigner, HitTestLocations.Designer), activitiesToInsert.AsReadOnly()); connector.SetStateName = setState.QualifiedName; } connector.TargetStateName = target.AssociatedDesigner.Activity.QualifiedName; connector.SourceStateName = sourceDesignerLayoutConnectionPoint.EventHandler.Parent.QualifiedName; connector.EventHandlerName = sourceDesignerLayoutConnectionPoint.EventHandler.QualifiedName; }
/// <summary> /// Called when a new connector has been added in the freeform designer /// </summary> /// <param name="e">Event args containing connector</param> protected virtual void OnConnectorAdded(ConnectorEventArgs e) { if (ConnectorAdded != null) ConnectorAdded(this, e); }
protected override void OnConnectorRemoved(ConnectorEventArgs e) { base.OnConnectorRemoved(e); StateDesignerConnector connector = e.Connector as StateDesignerConnector; if (((connector != null) && !string.IsNullOrEmpty(connector.SetStateName)) && this.RootStateDesigner.RemovingSetState) { DesignerLayoutConnectionPoint source = connector.Source as DesignerLayoutConnectionPoint; if (((source != null) && (GetDesigner(source.EventHandler) is CompositeActivityDesigner)) && (source.EventHandler != null)) { Activity activity = FindActivityByQualifiedName(source.EventHandler, connector.SetStateName); if (activity != null) { List<Activity> list = new List<Activity> { activity }; CompositeActivityDesigner designer = GetDesigner(activity.Parent) as CompositeActivityDesigner; if (designer != null) { designer.RemoveActivities(list.AsReadOnly()); } } } } }
protected override void OnConnectorChanged(ConnectorEventArgs e) { base.OnConnectorChanged(e); StateDesignerConnector connector = e.Connector as StateDesignerConnector; if (connector != null) { if (!connector.Target.AssociatedDesigner.Activity.QualifiedName.Equals(connector.TargetStateName)) { StateActivity activity = (StateActivity) this.RootStateDesigner.Activity; SetStateActivity component = FindActivityByQualifiedName(activity, connector.SetStateName) as SetStateActivity; if (component != null) { StateActivity activity3 = (StateActivity) connector.Target.AssociatedDesigner.Activity; GetPropertyDescriptor(component, "TargetStateName").SetValue(component, activity3.QualifiedName); connector.TargetStateName = activity3.QualifiedName; } } DesignerLayoutConnectionPoint source = (DesignerLayoutConnectionPoint) connector.Source; if (!source.EventHandler.QualifiedName.Equals(connector.EventHandlerName)) { StateActivity activity4 = (StateActivity) this.RootStateDesigner.Activity; SetStateActivity activity5 = FindActivityByQualifiedName(activity4, connector.SetStateName) as SetStateActivity; if (activity5 != null) { IDesignerHost service = base.GetService(typeof(IDesignerHost)) as IDesignerHost; DesignerTransaction transaction = null; if (service != null) { transaction = service.CreateTransaction(SR.GetMoveSetState()); } try { ((CompositeActivityDesigner) GetDesigner(activity5.Parent)).RemoveActivities(new List<Activity> { activity5 }.AsReadOnly()); DesignerLayoutConnectionPoint point2 = (DesignerLayoutConnectionPoint) connector.Source; CompositeActivityDesigner designer = (CompositeActivityDesigner) GetDesigner(point2.EventHandler); designer.InsertActivities(new System.Workflow.ComponentModel.Design.HitTestInfo(designer, HitTestLocations.Designer), new List<Activity> { activity5 }.AsReadOnly()); connector.EventHandlerName = point2.EventHandler.QualifiedName; connector.SourceStateName = point2.EventHandler.Parent.QualifiedName; if (transaction != null) { transaction.Commit(); } } catch { if (transaction != null) { transaction.Cancel(); } throw; } } } } }
protected override void OnConnectorAdded(ConnectorEventArgs e) { base.OnConnectorAdded(e); StateDesignerConnector connector = e.Connector as StateDesignerConnector; if (connector != null) { DesignerLayoutConnectionPoint source = connector.Source as DesignerLayoutConnectionPoint; ConnectionPoint target = connector.Target; if (source == null) { ConnectionPoint point2 = connector.Source; connector.Source = connector.Target; connector.Target = point2; } ConnectionPoint point3 = connector.Target; source = (DesignerLayoutConnectionPoint) connector.Source; if (this.RootStateDesigner.AddingSetState) { SetStateActivity activity = new SetStateActivity { TargetStateName = point3.AssociatedDesigner.Activity.QualifiedName }; CompositeActivityDesigner designer = (CompositeActivityDesigner) GetDesigner(source.EventHandler); designer.InsertActivities(new System.Workflow.ComponentModel.Design.HitTestInfo(designer, HitTestLocations.Designer), new List<Activity> { activity }.AsReadOnly()); connector.SetStateName = activity.QualifiedName; } connector.TargetStateName = point3.AssociatedDesigner.Activity.QualifiedName; connector.SourceStateName = source.EventHandler.Parent.QualifiedName; connector.EventHandlerName = source.EventHandler.QualifiedName; } }