예제 #1
0
        public static TimelineActionNode CreateActionForOperation(TimelineOperation timelineOperation, SceneViewModel sceneViewModel)
        {
            switch (timelineOperation)
            {
            case TimelineOperation.Begin:
                return((TimelineActionNode)BeginActionNode.Factory.Instantiate(sceneViewModel));

            case TimelineOperation.Pause:
                return((TimelineActionNode)PauseActionNode.Factory.Instantiate(sceneViewModel));

            case TimelineOperation.SkipToFill:
                return((TimelineActionNode)SkipToFillActionNode.Factory.Instantiate(sceneViewModel));

            case TimelineOperation.Stop:
                return((TimelineActionNode)StopActionNode.Factory.Instantiate(sceneViewModel));

            case TimelineOperation.Remove:
                return((TimelineActionNode)RemoveActionNode.Factory.Instantiate(sceneViewModel));

            case TimelineOperation.Resume:
                return((TimelineActionNode)ResumeActionNode.Factory.Instantiate(sceneViewModel));

            default:
                return((TimelineActionNode)null);
            }
        }
예제 #2
0
        private void OperationsView_CurrentChanged(object sender, EventArgs e)
        {
            TimelineOperation timelineOperation = (TimelineOperation)this.operationsView.CurrentItem;

            if (timelineOperation == this.TimelineAction.TimelineOperation)
            {
                return;
            }
            using (SceneEditTransaction editTransaction = this.SceneNode.ViewModel.CreateEditTransaction(StringTable.TriggerChangeUndoUnit))
            {
                TimelineActionNode actionForOperation = TimelineActionNode.CreateActionForOperation(timelineOperation, this.SceneNode.ViewModel);
                actionForOperation.TargetTimeline = this.TimelineAction.TargetTimeline;
                TriggersHelper.ReplaceSceneNode((SceneNode)this.TimelineAction, (SceneNode)actionForOperation);
                actionForOperation.TargetTimeline.UpdateActionNames();
                this.EnsureProperActions(actionForOperation.FindSceneNodeTypeAncestor <TriggerBaseNode>(), actionForOperation.TargetTimeline);
                editTransaction.Commit();
            }
        }