public BaseFrameworkElement GetRelativeTargetElement(DocumentNodePath relativeEditingContainerPath) { if (relativeEditingContainerPath.ContainerNode != this.DocumentNode) { return((BaseFrameworkElement)null); } DocumentNodePath containerOwnerPath = relativeEditingContainerPath.GetContainerOwnerPath(); if (containerOwnerPath == null) { return((BaseFrameworkElement)null); } SetterSceneNode setterSceneNode = this.ViewModel.GetSceneNode(containerOwnerPath.Node) as SetterSceneNode; if (setterSceneNode == null) { return(this.ViewModel.GetSceneNode(containerOwnerPath.Node) as BaseFrameworkElement); } IStoryboardContainer storyboardContainer = (IStoryboardContainer)this.ViewModel.GetSceneNode(containerOwnerPath.ContainerNode); SceneNode sceneNode = storyboardContainer.ResolveTargetName(setterSceneNode.Target); if (sceneNode == storyboardContainer) { return(storyboardContainer.TargetElement); } return(sceneNode as BaseFrameworkElement); }
public override IProperty GetPropertyForChild(SceneNode child) { if (child == null) { throw new ArgumentNullException("child"); } if (!(this.DocumentNode is DocumentCompositeNode)) { throw new InvalidOperationException(ExceptionStringTable.SceneNodeMustBeCompositeForLogicalChild); } IProperty property = (IProperty)null; DocumentNodePath documentNodePath = child.DocumentNodePath; if (documentNodePath.ContainerNode == documentNodePath.Node) { SetterSceneNode setterSceneNode = this.ViewModel.GetSceneNode(documentNodePath.ContainerOwner) as SetterSceneNode; if (setterSceneNode != null) { property = (IProperty)setterSceneNode.Property; } } else { property = base.GetPropertyForChild(child); } return(property); }
private void SetSetterValue(DependencyPropertyReferenceStep referenceStep, DocumentNode setterValue) { foreach (SceneNode sceneNode in (IEnumerable <SceneNode>) this.Setters) { SetterSceneNode setterSceneNode = sceneNode as SetterSceneNode; if (setterSceneNode != null && setterSceneNode.Property == referenceStep) { if (setterValue != null) { ((DocumentCompositeNode)setterSceneNode.DocumentNode).Properties[SetterSceneNode.ValueProperty] = setterValue; return; } this.Setters.Remove((SceneNode)setterSceneNode); return; } } if (setterValue == null) { return; } SetterSceneNode setterSceneNode1 = (SetterSceneNode)this.ViewModel.CreateSceneNode(PlatformTypes.Setter); setterSceneNode1.Property = referenceStep; ((DocumentCompositeNode)setterSceneNode1.DocumentNode).Properties[SetterSceneNode.ValueProperty] = setterValue; this.Setters.Add((SceneNode)setterSceneNode1); }
private void ResolveTemplate(SetterSceneNode setter) { DocumentNode node1 = ((DocumentCompositeNode)setter.DocumentNode).Properties[SetterSceneNode.ValueProperty]; if (node1 != null && !PlatformTypes.FrameworkTemplate.IsAssignableFrom((ITypeId)node1.Type)) { DocumentCompositeNode node2 = node1 as DocumentCompositeNode; if (node2 != null) { DocumentNode resourceKey = ResourceNodeHelper.GetResourceKey(node2); if (resourceKey != null) { node1 = this.CreateNode(this.ViewModel.FindResource(this.ViewModel.CreateInstance(new DocumentNodePath(resourceKey, resourceKey)))); } } } if (node1 == null) { return; } ControlTemplateElement controlTemplateElement = this.ViewModel.GetSceneNode(node1) as ControlTemplateElement; if (controlTemplateElement != null) { controlTemplateElement.RenameTemplateIDs(); } ((DocumentCompositeNode)setter.DocumentNode).Properties[SetterSceneNode.ValueProperty] = node1; }
private string GetPropertyName(DocumentNodePath documentNodePath) { SetterSceneNode setterSceneNode = this.Parent as SetterSceneNode; if (setterSceneNode != null && setterSceneNode.Property != null) { return(setterSceneNode.Property.Name); } return(this.GetPropertyNameHelper(documentNodePath) ?? this.TargetType.Name); }
public string GetUndoString(object obj) { SetterSceneNode setterSceneNode = obj as SetterSceneNode; if (setterSceneNode != null) { return(setterSceneNode.Property.Name); } return(""); }
private DocumentNode GetSetterValue(DependencyPropertyReferenceStep referenceStep) { foreach (SceneNode sceneNode in (IEnumerable <SceneNode>) this.Setters) { SetterSceneNode setterSceneNode = sceneNode as SetterSceneNode; if (setterSceneNode != null && setterSceneNode.Property == referenceStep) { return(((DocumentCompositeNode)setterSceneNode.DocumentNode).Properties[SetterSceneNode.ValueProperty]); } } return((DocumentNode)null); }
public BaseFrameworkElement GetRelativeTargetElement(DocumentNodePath relativeEditingContainerPath) { if (relativeEditingContainerPath.ContainerNode != this.DocumentNode) { return((BaseFrameworkElement)null); } DocumentNodePath containerOwnerPath = relativeEditingContainerPath.GetContainerOwnerPath(); if (containerOwnerPath == null) { return((BaseFrameworkElement)null); } SetterSceneNode setterSceneNode = this.ViewModel.GetSceneNode(containerOwnerPath.Node) as SetterSceneNode; if (setterSceneNode != null) { return(((ITriggerContainer)this.ViewModel.GetSceneNode(containerOwnerPath.ContainerNode)).ResolveTargetName(setterSceneNode.Target) as BaseFrameworkElement); } return(this.ViewModel.GetSceneNode(containerOwnerPath.Node) as BaseFrameworkElement); }
private string GetPropertyName(DocumentNodePath documentNodePath) { SetterSceneNode setterSceneNode = (SetterSceneNode)null; DocumentNode documentNode = this.DocumentNode; if (documentNode.Parent == null || documentNode == documentNodePath.ContainerNode) { setterSceneNode = this.ViewModel.GetSceneNode(documentNodePath.ContainerOwner) as SetterSceneNode; } if (documentNode.IsChild) { documentNode = (DocumentNode)documentNode.Parent; } if (documentNode.Parent != null) { setterSceneNode = this.ViewModel.GetSceneNode((DocumentNode)documentNode.Parent) as SetterSceneNode; } if (setterSceneNode != null && setterSceneNode.Property != null) { return(setterSceneNode.Property.Name); } return(this.GetPropertyNameHelper(documentNodePath) ?? this.Type.Name); }
public void SetDocumentNodeValue(DocumentCompositeNode compositeNode, IPropertyId propertyKey, DocumentNode valueNode) { string id = this.GetID(compositeNode); if (id != null) { ISceneNodeCollection <SceneNode> setters = this.Setters; int index = 0; while (index < setters.Count) { if (this.IsSetter((DocumentCompositeNode)setters[index].DocumentNode, id, propertyKey)) { setters.RemoveAt(index); } else { ++index; } } if (valueNode == null) { return; } SetterSceneNode setterSceneNode = (SetterSceneNode)this.ViewModel.CreateSceneNode(typeof(Setter)); if (!this.IsRootNode((DocumentNode)compositeNode)) { setterSceneNode.Target = id; } setterSceneNode.Property = (DependencyPropertyReferenceStep)propertyKey; ((DocumentCompositeNode)setterSceneNode.DocumentNode).Properties[SetterSceneNode.ValueProperty] = valueNode; setters.Add((SceneNode)setterSceneNode); } else { compositeNode.Properties[propertyKey] = valueNode; } }