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); } }
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(); } }