public virtual void InsertActivities(System.Workflow.ComponentModel.Design.HitTestInfo insertLocation, ReadOnlyCollection<Activity> activitiesToInsert) { WalkerEventHandler handler = null; if (insertLocation == null) { throw new ArgumentNullException("insertLocation"); } if (activitiesToInsert == null) { throw new ArgumentNullException("activitiesToInsert"); } CompositeActivity parentActivity = base.Activity as CompositeActivity; if (parentActivity == null) { throw new Exception(SR.GetString("Error_DragDropInvalid")); } int num = insertLocation.MapToIndex(); IIdentifierCreationService service = base.GetService(typeof(IIdentifierCreationService)) as IIdentifierCreationService; if (service == null) { throw new InvalidOperationException(SR.GetString("General_MissingService", new object[] { typeof(IIdentifierCreationService).FullName })); } service.EnsureUniqueIdentifiers(parentActivity, activitiesToInsert); foreach (Activity activity2 in activitiesToInsert) { if (activity2 == null) { throw new ArgumentException("activitiesToInsert", SR.GetString("Error_CollectionHasNullEntry")); } if (activity2.Parent == null) { parentActivity.Activities.Insert(num++, activity2); WorkflowDesignerLoader.AddActivityToDesigner(base.Activity.Site, activity2); } } foreach (Activity activity3 in activitiesToInsert) { Walker walker = new Walker(); if (handler == null) { handler = (w, walkerEventArgs) => ExtenderHelpers.FilterDependencyProperties(base.Activity.Site, walkerEventArgs.CurrentActivity); } walker.FoundActivity += handler; walker.Walk(activity3); } }
public virtual void MoveActivities(System.Workflow.ComponentModel.Design.HitTestInfo moveLocation, ReadOnlyCollection<Activity> activitiesToMove) { WalkerEventHandler handler = null; if (moveLocation == null) { throw new ArgumentNullException("moveLocation"); } if (activitiesToMove == null) { throw new ArgumentNullException("activitiesToMove"); } CompositeActivity parentActivity = base.Activity as CompositeActivity; if (parentActivity == null) { throw new Exception(SR.GetString("Error_DragDropInvalid")); } IIdentifierCreationService service = base.GetService(typeof(IIdentifierCreationService)) as IIdentifierCreationService; if (service == null) { throw new InvalidOperationException(SR.GetString("General_MissingService", new object[] { typeof(IIdentifierCreationService).FullName })); } if (!(base.GetService(typeof(IDesignerHost)) is IDesignerHost)) { throw new InvalidOperationException(SR.GetString("General_MissingService", new object[] { typeof(IDesignerHost).FullName })); } int num = moveLocation.MapToIndex(); foreach (Activity activity2 in activitiesToMove) { ActivityDesigner designer = ActivityDesigner.GetDesigner(activity2); if ((designer != null) && (designer.ParentDesigner == this)) { int num2 = parentActivity.Activities.IndexOf(activity2); if (num > num2) { num--; } } CompositeActivity parent = activity2.Parent; int index = parent.Activities.IndexOf(activity2); activity2.Parent.Activities.Remove(activity2); service.EnsureUniqueIdentifiers(parentActivity, new Activity[] { activity2 }); DesignerHelpers.UpdateSiteName(activity2, "_activityonthemove_"); CompositeActivity compositeActivity = activity2 as CompositeActivity; if (compositeActivity != null) { int num4 = 1; foreach (Activity activity5 in Helpers.GetNestedActivities(compositeActivity)) { DesignerHelpers.UpdateSiteName(activity5, "_activityonthemove_" + num4.ToString(CultureInfo.InvariantCulture)); num4++; } } try { parentActivity.Activities.Insert(num++, activity2); } catch (Exception exception) { parent.Activities.Insert(index, activity2); throw exception; } DesignerHelpers.UpdateSiteName(activity2, activity2.Name); if (compositeActivity != null) { foreach (Activity activity6 in Helpers.GetNestedActivities(compositeActivity)) { DesignerHelpers.UpdateSiteName(activity6, activity6.Name); } } } foreach (Activity activity7 in activitiesToMove) { Walker walker = new Walker(); if (handler == null) { handler = delegate (Walker w, WalkerEventArgs walkerEventArgs) { ExtenderHelpers.FilterDependencyProperties(base.Activity.Site, walkerEventArgs.CurrentActivity); TypeDescriptor.Refresh(walkerEventArgs.CurrentActivity); }; } walker.FoundActivity += handler; walker.Walk(activity7); } }
private System.Workflow.ComponentModel.Design.HitTestInfo GetUpdatedLocation(System.Workflow.ComponentModel.Design.HitTestInfo location) { int num = 0; foreach (DesignerView view in this.Views) { if (((view.AssociatedDesigner != null) && (this != view.AssociatedDesigner)) && Helpers.IsActivityLocked(view.AssociatedDesigner.Activity)) { num++; } } return new ConnectorHitTestInfo(this, location.HitLocation, num + location.MapToIndex()); }