Exemplo n.º 1
0
        // return true if really something is dropped, otherwise, false.
        bool DoAutoWrapDrop(InsertionPosition insertionPos, IEnumerable <object> droppedObjects)
        {
            List <Activity> activityList = ObjectList2ActivityList(droppedObjects);

            if (activityList.Count == 0)
            {
                return(false);
            }

            AutoWrapEventArgs args = new AutoWrapEventArgs()
            {
                InsertionPosition      = insertionPos,
                ExistingActivity       = this.MyActivity,
                ActivitiesToBeInserted = activityList
            };

            using (ModelEditingScope scope = this.Context.Services.GetService <ModelService>().Root.BeginEdit(SR.WrapInSequenceDescription))
            {
                ModelItem sequenceActivity = WorkflowItemPresenter.AutoWrapInSequenceHandler(this.Context, args);
                if (this.UpdateItem(sequenceActivity, true))
                {
                    scope.Complete();
                    return(true);
                }
                else
                {
                    scope.Revert();
                    return(false);
                }
            }
        }
Exemplo n.º 2
0
        private static ModelItem AutoWrapInSequenceHandler(EditingContext editingContext, AutoWrapEventArgs e)
        {
            Fx.Assert(e.ExistingActivity != null || e.InsertionPosition == InsertionPosition.None, 
                "Existing activity must not be null");

            ModelItem sequence = editingContext.Services.GetService<ModelTreeManager>().CreateModelItem(null, new Sequence());
            foreach (Activity activity in e.ActivitiesToBeInserted)
            {
                sequence.Properties["Activities"].Collection.Add(activity);
            }

            switch (e.InsertionPosition)
            {
                case InsertionPosition.Before:
                    sequence.Properties["Activities"].Collection.Add(e.ExistingActivity);
                    break;
                case InsertionPosition.After:
                    sequence.Properties["Activities"].Collection.Insert(0, e.ExistingActivity);
                    break;
                case InsertionPosition.None:
                    break;
                default:
                    Fx.Assert("Invalid insert position");
                    break;
            }

            return sequence;
        }
Exemplo n.º 3
0
        // return true if really something is dropped, otherwise, false.
        bool DoAutoWrapDrop(InsertionPosition insertionPos, IEnumerable<object> droppedObjects)
        {
            List<Activity> activityList = ObjectList2ActivityList(droppedObjects);
            if (activityList.Count == 0)
            {
                return false;
            }

            AutoWrapEventArgs args = new AutoWrapEventArgs()
            {
                InsertionPosition = insertionPos,
                ExistingActivity = this.MyActivity,
                ActivitiesToBeInserted = activityList
            };

            using (ModelEditingScope scope = this.Context.Services.GetService<ModelService>().Root.BeginEdit(SR.WrapInSequenceDescription))
            {
                ModelItem sequenceActivity = WorkflowItemPresenter.AutoWrapInSequenceHandler(this.Context, args);
                if (this.UpdateItem(sequenceActivity, true))
                {
                    scope.Complete();
                    return true;
                }
                else
                {
                    scope.Revert();
                    return false;
                }
            }
        }
Exemplo n.º 4
0
        private static ModelItem AutoWrapInSequenceHandler(EditingContext editingContext, AutoWrapEventArgs e)
        {
            Fx.Assert(e.ExistingActivity != null || e.InsertionPosition == InsertionPosition.None,
                      "Existing activity must not be null");

            ModelItem sequence = editingContext.Services.GetService <ModelTreeManager>().CreateModelItem(null, new Sequence());

            foreach (Activity activity in e.ActivitiesToBeInserted)
            {
                sequence.Properties["Activities"].Collection.Add(activity);
            }

            switch (e.InsertionPosition)
            {
            case InsertionPosition.Before:
                sequence.Properties["Activities"].Collection.Add(e.ExistingActivity);
                break;

            case InsertionPosition.After:
                sequence.Properties["Activities"].Collection.Insert(0, e.ExistingActivity);
                break;

            case InsertionPosition.None:
                break;

            default:
                Fx.Assert("Invalid insert position");
                break;
            }

            return(sequence);
        }