protected override void OnContainedActivitiesChanged(ActivityCollectionChangeEventArgs listChangeArgs) { if (base.ActiveDesigner == this) { if (((listChangeArgs.Action == ActivityCollectionChangeAction.Add) && (listChangeArgs.AddedItems.Count > 0)) && !Helpers.IsAlternateFlowActivity(listChangeArgs.AddedItems[0])) { System.Workflow.ComponentModel.Design.ItemInfo item = new System.Workflow.ComponentModel.Design.ItemInfo(listChangeArgs.AddedItems[0].GetHashCode()); item.UserData[DesignerUserDataKeys.Activity] = listChangeArgs.AddedItems[0]; if (listChangeArgs.Index < this.previewStrip.Items.Count) { this.previewStrip.Items.Insert(listChangeArgs.Index, item); } else { this.previewStrip.Items.Add(item); } } else if ((listChangeArgs.Action == ActivityCollectionChangeAction.Remove) && (listChangeArgs.RemovedItems.Count > 0)) { int index = this.previewStrip.Items.IndexOf(new System.Workflow.ComponentModel.Design.ItemInfo(listChangeArgs.RemovedItems[0].GetHashCode())); if (index >= 0) { this.previewStrip.Items.RemoveAt(index); } } } base.OnContainedActivitiesChanged(listChangeArgs); }
protected override void OnContainedActivitiesChanging(ActivityCollectionChangeEventArgs listChangeArgs) { base.OnContainedActivitiesChanging(listChangeArgs); if (listChangeArgs.Action == ActivityCollectionChangeAction.Remove) { FreeformActivityDesigner connectorContainer = ConnectionManager.GetConnectorContainer(this); List <Connector> list = new List <Connector>(); for (ActivityDesigner designer2 = this; designer2 != null; designer2 = designer2.ParentDesigner) { FreeformActivityDesigner designer3 = designer2 as FreeformActivityDesigner; if ((designer3 != null) && (designer3.Connectors.Count > 0)) { foreach (Activity activity in listChangeArgs.RemovedItems) { ActivityDesigner designer = ActivityDesigner.GetDesigner(activity); if (!connectorContainer.MovingActivities.Contains(designer)) { foreach (Connector connector in designer3.Connectors) { if ((designer == connector.Source.AssociatedDesigner) || (designer == connector.Target.AssociatedDesigner)) { list.Add(connector); } } } } } } foreach (Connector connector2 in list) { connector2.ParentDesigner.RemoveConnector(connector2); ((IDisposable)connector2).Dispose(); } } }
protected override void OnContainedActivitiesChanging(ActivityCollectionChangeEventArgs listChangeArgs) { base.OnContainedActivitiesChanging(listChangeArgs); if ((listChangeArgs.Action == ActivityCollectionChangeAction.Remove) && (listChangeArgs.RemovedItems[0] != null)) { ActivityDesigner activeDesigner = this.ActiveDesigner; if ((activeDesigner != null) && (listChangeArgs.RemovedItems[0] == activeDesigner.Activity)) { this.ActiveView = this.ValidatedViews[0]; } SecondaryViewProvider.OnViewRemoved(this, listChangeArgs.RemovedItems[0].GetType()); } }
private void OnComponentChanged(object sender, ComponentChangedEventArgs e) { ActivityCollectionChangeEventArgs changeEventArgs = e.OldValue as ActivityCollectionChangeEventArgs; if (changeEventArgs != null) { this.IsDirty = true; } else if (e.Member != null && e.Component is Activity) { WorkflowOutlineNode node = this.activityToNodeMapping[e.Component] as WorkflowOutlineNode; if (node != null && string.Equals(e.Member.Name, "Enabled", StringComparison.Ordinal)) { RefreshNode(node, true); } } }
protected override void OnContainedActivitiesChanging(ActivityCollectionChangeEventArgs listChangeArgs) { base.OnContainedActivitiesChanging(listChangeArgs); if (listChangeArgs.Action == ActivityCollectionChangeAction.Remove && listChangeArgs.RemovedItems[0] != null) { ActivityDesigner activeDesigner = ActiveDesigner; if (activeDesigner != null && listChangeArgs.RemovedItems[0] == activeDesigner.Activity) ActiveView = ValidatedViews[0]; SecondaryViewProvider.OnViewRemoved(this, listChangeArgs.RemovedItems[0].GetType()); } }
private void OnActivityListChanged(object sender, ActivityCollectionChangeEventArgs e) { OnContainedActivitiesChanged(e); }
/// <summary> /// Notifies that number of activities contained within the designers have changed /// </summary> /// <param name="listChangeArgs">ItemListChangeEventArgs containing information about what has changed</param> protected virtual void OnContainedActivitiesChanged(ActivityCollectionChangeEventArgs listChangeArgs) { if (listChangeArgs == null) throw new ArgumentNullException("listChangeArgs"); // Update the status of all the designers foreach (ActivityDesigner activityDesigner in ContainedDesigners) { foreach (DesignerVerb designerVerb in ((IDesigner)activityDesigner).Verbs) { int status = designerVerb.OleStatus; status = 0; } } RefreshDesignerVerbs(); //clear the list of activity designers (force to create the new list the next time it is requested) this.containedActivityDesigners = null; PerformLayout(); }
/// <summary> /// Notifies that number of activities contained within the designers are changing /// </summary> /// <param name="listChangeArgs">ActivityCollectionChangeEventArgs containing information about what is about to change</param> protected virtual void OnContainedActivitiesChanging(ActivityCollectionChangeEventArgs listChangeArgs) { if (listChangeArgs == null) throw new ArgumentNullException("listChangeArgs"); }
protected override void OnContainedActivitiesChanged(ActivityCollectionChangeEventArgs listChangeArgs) { if (ActiveDesigner == this) { if (listChangeArgs.Action == ActivityCollectionChangeAction.Add && listChangeArgs.AddedItems.Count > 0 && !Helpers.IsAlternateFlowActivity(listChangeArgs.AddedItems[0])) { ItemInfo itemToAdd = new ItemInfo(listChangeArgs.AddedItems[0].GetHashCode()); itemToAdd.UserData[DesignerUserDataKeys.Activity] = listChangeArgs.AddedItems[0]; if (listChangeArgs.Index < this.previewStrip.Items.Count) this.previewStrip.Items.Insert(listChangeArgs.Index, itemToAdd); else this.previewStrip.Items.Add(itemToAdd); } else if (listChangeArgs.Action == ActivityCollectionChangeAction.Remove && listChangeArgs.RemovedItems.Count > 0) { int index = this.previewStrip.Items.IndexOf(new ItemInfo(listChangeArgs.RemovedItems[0].GetHashCode())); if (index >= 0) this.previewStrip.Items.RemoveAt(index); } } base.OnContainedActivitiesChanged(listChangeArgs); }
// protected override void OnContainedActivitiesChanging(ActivityCollectionChangeEventArgs listChangeArgs) { base.OnContainedActivitiesChanging(listChangeArgs); if (listChangeArgs.Action == ActivityCollectionChangeAction.Remove) { FreeformActivityDesigner connectorContainer = ConnectionManager.GetConnectorContainer(this); List<Connector> connectorsToDelete = new List<Connector>(); //check if the removed designer is being moved within the same container //in this case dont remove the connector... ActivityDesigner activityDesigner = this; while (activityDesigner != null) { FreeformActivityDesigner freeFormDesigner = activityDesigner as FreeformActivityDesigner; if (freeFormDesigner != null && freeFormDesigner.Connectors.Count > 0) { foreach (Activity activityToRemove in listChangeArgs.RemovedItems) { ActivityDesigner designerToRemove = ActivityDesigner.GetDesigner(activityToRemove); //if the designer is being moved within the same container, ignore it //otherwise remove all related connectors if (!connectorContainer.MovingActivities.Contains(designerToRemove)) { foreach (Connector connector in freeFormDesigner.Connectors) { if (designerToRemove == connector.Source.AssociatedDesigner || designerToRemove == connector.Target.AssociatedDesigner) connectorsToDelete.Add(connector); } } } } activityDesigner = activityDesigner.ParentDesigner; } foreach (Connector connectorToDelete in connectorsToDelete) { connectorToDelete.ParentDesigner.RemoveConnector(connectorToDelete); ((IDisposable)connectorToDelete).Dispose(); } } }