internal void AddTriggerNode() { Type newClrObject = ClrNewObjectDialog.CreateNewClrObject(this.sceneViewModel, this.sceneViewModel.ProjectContext.ResolveType(ProjectNeutralTypes.BehaviorTriggerBase).RuntimeType, true); if (!(newClrObject != (Type)null)) { return; } using (SceneEditTransaction editTransaction = this.sceneViewModel.CreateEditTransaction(StringTable.AddBehaviorCommandTriggerUndo)) { BehaviorTriggerBaseNode behaviorTriggerBaseNode = (BehaviorTriggerBaseNode)this.sceneViewModel.CreateSceneNode(newClrObject); InvokeCommandActionNode commandActionNode = (InvokeCommandActionNode)this.sceneViewModel.CreateSceneNode(ProjectNeutralTypes.InvokeCommandAction); commandActionNode.CommandName = this.CategoryName; behaviorTriggerBaseNode.Actions.Add((SceneNode)commandActionNode); if (ProjectNeutralTypes.BehaviorEventTriggerBase.IsAssignableFrom((ITypeId)behaviorTriggerBaseNode.Type)) { SceneNode sceneNode = (SceneNode)this.behaviorNode; while (sceneNode != null && !(sceneNode is SceneElement)) { sceneNode = sceneNode.Parent; } if (sceneNode != null) { sceneNode.EnsureNamed(); ((BehaviorEventTriggerBaseNode)behaviorTriggerBaseNode).SourceName = sceneNode.Name; } } this.behaviorNode.GetCollectionForProperty(BehaviorHelper.BehaviorTriggersProperty).Add((SceneNode)behaviorTriggerBaseNode); editTransaction.Commit(); } this.Rebuild(); this.TriggerNodeView.MoveCurrentToLast(); }
public BindingSceneNode CreateElementNameBinding(SceneNode targetNode) { BindingSceneNode binding = (BindingSceneNode)this.ViewModel.CreateSceneNode(PlatformTypes.Binding); ReferenceStep selectedBindingField = this.SelectedBindingField; targetNode.EnsureNamed(); binding.ElementName = targetNode.Name; binding.SetPath(selectedBindingField.Name); this.SetAdvancedPropertiesIfNeeded(binding); return(binding); }
public static void FixElementNameBindingsInStoredProperties(SceneNode source, SceneNode target, Dictionary <IPropertyId, SceneNode> properties) { foreach (KeyValuePair <IPropertyId, SceneNode> keyValuePair in properties) { BindingSceneNode bindingSceneNode = keyValuePair.Value as BindingSceneNode; if (bindingSceneNode != null && bindingSceneNode.SupportsElementName && bindingSceneNode.ElementName == source.Name) { target.EnsureNamed(); bindingSceneNode.ElementName = target.Name; } } }
private static void CreateAndSetElementNameBinding(string propertyName, SceneNode node, Action <BindingSceneNode> setValue) { string description = string.Format((IFormatProvider)CultureInfo.CurrentCulture, StringTable.PropertyChangeUndoDescription, new object[1] { (object)propertyName }); SceneViewModel viewModel = node.ViewModel; using (SceneEditTransaction editTransaction = viewModel.CreateEditTransaction(description)) { node.EnsureNamed(); editTransaction.Update(); BindingSceneNode bindingSceneNode = viewModel.CreateSceneNode(PlatformTypes.Binding) as BindingSceneNode; bindingSceneNode.ElementName = node.Name; setValue(bindingSceneNode); editTransaction.Commit(); } }