public static void CopyBehaviorNodes(SceneViewModel viewModel, IList <BehaviorBaseNode> behaviorNodes) { PastePackage pastePackage = new PastePackage(viewModel); using (viewModel.ForceBaseValue()) { foreach (SceneNode childPropertyNode in (IEnumerable <BehaviorBaseNode>)behaviorNodes) { if (ProjectNeutralTypes.Behavior.IsAssignableFrom((ITypeId)childPropertyNode.Type)) { pastePackage.AddChildPropertyNode(childPropertyNode); } else { BehaviorTriggerActionNode triggerActionNode1 = (BehaviorTriggerActionNode)childPropertyNode; BehaviorTriggerBaseNode behaviorTriggerBaseNode = (BehaviorTriggerBaseNode)triggerActionNode1.Parent; if (behaviorTriggerBaseNode.Actions.Count > 1) { DocumentNode node1 = triggerActionNode1.DocumentNode.Clone(viewModel.Document.DocumentContext); BehaviorTriggerActionNode triggerActionNode2 = (BehaviorTriggerActionNode)viewModel.GetSceneNode(node1); DocumentNode node2 = behaviorTriggerBaseNode.DocumentNode.Clone(viewModel.Document.DocumentContext); behaviorTriggerBaseNode = (BehaviorTriggerBaseNode)viewModel.GetSceneNode(node2); behaviorTriggerBaseNode.Actions.Clear(); behaviorTriggerBaseNode.Actions.Add((SceneNode)triggerActionNode2); } pastePackage.AddChildPropertyNode((SceneNode)behaviorTriggerBaseNode); } } } pastePackage.SendToClipboard(); }
public static void CopyPropertyNodes(SceneViewModel viewModel, IList <SceneNode> nodes) { if (nodes.Count == 0) { return; } PastePackage pastePackage = new PastePackage(viewModel); using (viewModel.ForceBaseValue()) pastePackage.AddChildPropertyNodes(nodes); pastePackage.SendToClipboard(); }
public static void CopyElements(SceneViewModel viewModel, List <SceneElement> elements) { if (elements.Count == 0 || !CopyCommand.ElementsHaveSameParent((ICollection <SceneElement>)elements)) { return; } PerformanceUtility.StartPerformanceSequence(PerformanceEvent.CopyElements); SceneNode parent = elements[0].Parent; PastePackage pastePackage = new PastePackage(viewModel); using (viewModel.ForceBaseValue()) pastePackage.AddElements(elements, true); pastePackage.SendToClipboard(); PerformanceUtility.EndPerformanceSequence(PerformanceEvent.CopyElements); }
private bool CopyResourceCore() { if (this.resourceManager.SelectedResourceContainers.Count == 0 && this.resourceManager.SelectedResourceItems.Count == 1) { ResourceEntryItem resourceEntryItem = this.resourceManager.SelectedResourceItems[0] as ResourceEntryItem; if (resourceEntryItem != null) { SceneViewModel viewModel = resourceEntryItem.Container.ViewModel; PastePackage pastePackage = new PastePackage(viewModel); pastePackage.AddResource(viewModel.GetSceneNode((DocumentNode)resourceEntryItem.Resource.ResourceNode) as DictionaryEntryNode); pastePackage.SendToClipboard(); return(true); } } return(false); }
public static void CopyKeyframes(SceneViewModel viewModel, SceneElement targetElement, ICollection <KeyFrameSceneNode> keyframes) { if (keyframes.Count == 0) { return; } List <KeyFrameSceneNode> list = new List <KeyFrameSceneNode>(keyframes.Count); foreach (KeyFrameSceneNode keyFrameSceneNode in (IEnumerable <KeyFrameSceneNode>)keyframes) { if (keyFrameSceneNode.KeyFrameAnimation.TargetElement == targetElement) { list.Add(keyFrameSceneNode); } } PastePackage pastePackage = new PastePackage(viewModel); pastePackage.AddKeyframes((ICollection <KeyFrameSceneNode>)list); pastePackage.SendToClipboard(); }