public override bool CanInsertActivities(System.Workflow.ComponentModel.Design.HitTestInfo insertLocation, ReadOnlyCollection <Activity> activitiesToInsert)
        {
            if (insertLocation == null)
            {
                throw new ArgumentNullException("insertLocation");
            }
            if (activitiesToInsert == null)
            {
                throw new ArgumentNullException("activitiesToInsert");
            }
            ActivityDesigner designer = (this.ActiveView != null) ? this.ActiveView.AssociatedDesigner : null;

            if (designer != this)
            {
                return(false);
            }
            IList <System.Type> activityTypes = SecondaryViewProvider.GetActivityTypes(this);

            foreach (Activity activity in activitiesToInsert)
            {
                if (activity == null)
                {
                    throw new ArgumentException("activitiesToInsert", SR.GetString("Error_CollectionHasNullEntry"));
                }
                if (activityTypes.Contains(activity.GetType()))
                {
                    return(false);
                }
            }
            return(base.CanInsertActivities(this.GetUpdatedLocation(insertLocation), activitiesToInsert));
        }
        protected override void OnActivityChanged(ActivityChangedEventArgs e)
        {
            ReadOnlyCollection <DesignerView> views  = SecondaryViewProvider.GetViews(this);
            ReadOnlyCollection <DesignerView> onlys2 = this.Views;

            if (views.Count != onlys2.Count)
            {
                this.views = null;
                base.PerformLayout();
            }
            base.OnActivityChanged(e);
        }
 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());
     }
 }
예제 #4
0
        public override bool CanInsertActivities(HitTestInfo insertLocation, ReadOnlyCollection <Activity> activitiesToInsert)
        {
            if (insertLocation == null)
            {
                throw new ArgumentNullException("insertLocation");
            }

            if (activitiesToInsert == null)
            {
                throw new ArgumentNullException("activitiesToInsert");
            }

            ActivityDesigner hostedDesigner = (ActiveView != null) ? ActiveView.AssociatedDesigner : null;

            if (hostedDesigner != this)
            {
                return(false);
            }

            IList <Type> secondaryViewTypes = SecondaryViewProvider.GetActivityTypes(this);

            foreach (Activity activity in activitiesToInsert)
            {
                if (activity == null)
                {
                    throw new ArgumentException("activitiesToInsert", SR.GetString(SR.Error_CollectionHasNullEntry));
                }

                if (secondaryViewTypes.Contains(activity.GetType()))
                {
                    return(false);
                }
            }

            return(base.CanInsertActivities(GetUpdatedLocation(insertLocation), activitiesToInsert));
        }