public DocumentPrimitiveNode CreateBasicNode(SampleBasicType sampleType, string value) { string str = value; if (sampleType == SampleBasicType.Image) { str = this.DataSet.AddOrUpdateAssetFile(value); } DocumentNodeStringValue documentNodeStringValue = new DocumentNodeStringValue(str); return(this.XamlDocumentContext.CreateNode(sampleType.TypeId, (IDocumentNodeValue)documentNodeStringValue)); }
public override bool Equals(object obj) { if (this == obj) { return(true); } DocumentNodeStringValue documentNodeStringValue = obj as DocumentNodeStringValue; if (documentNodeStringValue != null) { return(documentNodeStringValue.value == this.value); } return(false); }
public virtual string GetValueAsString(DocumentNode node) { ITypeId type = node.Type; Type targetType = node.TargetType; DocumentPrimitiveNode documentPrimitiveNode = node as DocumentPrimitiveNode; DocumentCompositeNode documentCompositeNode = node as DocumentCompositeNode; if (documentPrimitiveNode != null) { DocumentNodeStringValue value = documentPrimitiveNode.Value as DocumentNodeStringValue; TypeConverter valueConverter = documentPrimitiveNode.ValueConverter; if (value != null && valueConverter != null && valueConverter.CanConvertFrom(typeof(string))) { if (typeof(Vector3DCollection) == targetType) { Vector3DCollection vector3DCollections = (Vector3DCollection)valueConverter.ConvertFromInvariantString(value.Value); return(PointSerializationHelper.GetVector3DCollectionAsString(vector3DCollections)); } if (typeof(Point3DCollection) == targetType) { Point3DCollection point3DCollections = (Point3DCollection)valueConverter.ConvertFromInvariantString(value.Value); return(PointSerializationHelper.GetPoint3DCollectionAsString(point3DCollections)); } if (typeof(PointCollection) == targetType) { PointCollection pointCollections = (PointCollection)valueConverter.ConvertFromInvariantString(value.Value); return(PointSerializationHelper.GetPointCollectionAsString(pointCollections)); } } } else if (documentCompositeNode != null) { if (PlatformTypes.PathGeometry.IsAssignableFrom(type)) { return(PathGeometrySerializationHelper.SerializeAsAttribute(documentCompositeNode)); } if (PlatformTypes.PathFigureCollection.IsAssignableFrom(type)) { return(PathGeometrySerializationHelper.SerializeAsAttribute(documentCompositeNode)); } if (PlatformTypes.DoubleCollection.IsAssignableFrom(type)) { return(PointSerializationHelper.SerializeDoubleCollectionAsAttribute(documentCompositeNode)); } } return(null); }
public override bool Instantiate(IInstanceBuilderContext context, ViewNode viewNode) { IPropertyId sitePropertyKey; DocumentPrimitiveNode documentNode = viewNode.DocumentNode as DocumentPrimitiveNode; if (documentNode != null) { DocumentNodeStringValue value = documentNode.Value as DocumentNodeStringValue; if (value != null) { if (viewNode.Parent == null || !viewNode.IsProperty) { sitePropertyKey = null; } else { sitePropertyKey = viewNode.SitePropertyKey; } IPropertyId propertyProperty = sitePropertyKey; if (viewNode.Parent != null) { IPropertyValueTypeMetadata metadata = viewNode.Parent.DocumentNode.Type.Metadata as IPropertyValueTypeMetadata; IPropertyValueTypeMetadata propertyValueTypeMetadatum = metadata; if (metadata != null) { propertyProperty = propertyValueTypeMetadatum.PropertyProperty; } } if (this.ShouldUseDesignTimeUri(propertyProperty)) { Uri uri = new Uri(value.Value, UriKind.RelativeOrAbsolute); Uri uri1 = viewNode.DocumentNode.Context.MakeDesignTimeUri(uri); if (!context.IsSerializationScope) { viewNode.Instance = uri1; } else { viewNode.Instance = DocumentNodeUtilities.NewUriDocumentNode(context.DocumentContext, uri1); } viewNode.InstanceState = InstanceState.Valid; } } } return(base.Instantiate(context, viewNode)); }
private bool AppliesToImpl(DocumentNode node) { if (PlatformTypes.FontFamily.IsAssignableFrom((ITypeId)node.Type)) { DocumentPrimitiveNode documentPrimitiveNode = node as DocumentPrimitiveNode; if (documentPrimitiveNode != null) { DocumentNodeStringValue documentNodeStringValue = documentPrimitiveNode.Value as DocumentNodeStringValue; if (documentNodeStringValue != null) { FontFamily oldFontFamily; FontFamily newFontFamily; FontEmbedder.CreateFontFamilyChange(this.FontFamilyChangeModel.FontChangeType, this.FontFamilyChangeModel.ProjectFont, node.Context, out oldFontFamily, out newFontFamily); return(FontEmbedder.AreFontsEqual(new FontFamily(FontFamilyHelper.EnsureFamilyName(documentNodeStringValue.Value)), oldFontFamily, node.Context)); } } } return(false); }
private Uri GetUriPropertyValue(DocumentNode node, IPropertyId propertyKey) { DocumentCompositeNode documentCompositeNode = node as DocumentCompositeNode; if (documentCompositeNode != null) { DocumentPrimitiveNode documentPrimitiveNode = documentCompositeNode.Properties[propertyKey] as DocumentPrimitiveNode; if (documentPrimitiveNode != null) { DocumentNodeStringValue documentNodeStringValue = documentPrimitiveNode.Value as DocumentNodeStringValue; if (documentNodeStringValue != null) { Uri result = (Uri)null; if (Uri.TryCreate(documentNodeStringValue.Value, UriKind.RelativeOrAbsolute, out result)) { return(node.Context.MakeDesignTimeUri(result)); } } } } return((Uri)null); }
public List <ViewNode> Validate(IInstanceBuilderContext context, out List <ExpressionSite> sites) { ExpressionSite expressionSite; bool flag; DocumentNode item; DocumentNode documentNode; DocumentNode item1; List <DocumentNode> documentNodes = new List <DocumentNode>(); List <ViewNode> viewNodes = new List <ViewNode>(); List <ViewNode> viewNodes1 = new List <ViewNode>(); sites = new List <ExpressionSite>(); ExpressionEvaluator expressionEvaluator = new ExpressionEvaluator(context.DocumentRootResolver); foreach (KeyValuePair <DocumentNode, List <ViewNode> > keyValuePair in this) { DocumentNode key = keyValuePair.Key; viewNodes1.Clear(); foreach (ViewNode value in keyValuePair.Value) { ViewNode parent = value.Parent; if (parent != null) { DocumentNode documentNode1 = parent.DocumentNode; if (!value.IsProperty) { int num = value.Parent.Children.IndexOf(value); expressionSite = new ExpressionSite(num); } else { expressionSite = new ExpressionSite(value.SitePropertyKey); } bool flag1 = ExpressionCache.HasInvalidAncestor(context, parent, out flag); if (!flag) { continue; } if (!flag1) { DocumentNodePath correspondingNodePath = context.ViewNodeManager.GetCorrespondingNodePath(parent); DocumentCompositeNode node = (DocumentCompositeNode)correspondingNodePath.Node; if (expressionSite.IsProperty) { item = node.Properties[expressionSite.PropertyKey]; } else if (node.Children == null) { if (expressionSite.ChildIndex < node.ConstructorArguments.Count) { documentNode = node.ConstructorArguments[expressionSite.ChildIndex]; } else { documentNode = null; } item = documentNode; } else { if (expressionSite.ChildIndex < node.Children.Count) { item1 = node.Children[expressionSite.ChildIndex]; } else { item1 = null; } item = item1; } DocumentNode documentNode2 = value.DocumentNode; bool flag2 = true; if (item != null) { if (!DocumentNodeUtilities.IsBinding(value.DocumentNode)) { flag2 = false; documentNode2 = expressionEvaluator.EvaluateExpression(correspondingNodePath, item); } else { IPropertyId propertyId = value.DocumentNode.TypeResolver.ResolveProperty(Microsoft.Expression.DesignModel.Metadata.KnownProperties.BindingElementNameProperty); if (propertyId != null) { DocumentNode item2 = ((DocumentCompositeNode)value.DocumentNode).Properties[propertyId]; if (item2 != null) { DocumentPrimitiveNode documentPrimitiveNode = item2 as DocumentPrimitiveNode; if (documentPrimitiveNode != null) { DocumentNodeStringValue documentNodeStringValue = documentPrimitiveNode.Value as DocumentNodeStringValue; if (documentNodeStringValue != null) { string str = documentNodeStringValue.Value; object obj = context.NameScope.FindName(str); if (obj != null) { ViewNode viewNode = context.InstanceDictionary.GetViewNode(obj, false); InstanceState invalid = InstanceState.Invalid; if (viewNode != null && !ExpressionCache.HasInvalidAncestor(context, viewNode, out flag)) { invalid = viewNode.InstanceState; } if (invalid != InstanceState.Invalid && (invalid.InvalidProperties == null || !invalid.InvalidProperties.Contains(viewNode.DocumentNode.NameProperty))) { documentNode2 = viewNode.DocumentNode; flag2 = false; } else if (parent.Instance is VisualBrush && expressionSite.IsProperty && Microsoft.Expression.DesignModel.Metadata.KnownProperties.VisualBrushVisualProperty.Equals(expressionSite.PropertyKey)) { BindingOperations.ClearBinding((VisualBrush)parent.Instance, VisualBrush.VisualProperty); } } } } } } } } if (key != item == (documentNode2 != null) && (documentNode2 == null || documentNode2 == key) && !flag2) { continue; } viewNodes1.Add(value); viewNodes.Add(parent); sites.Add(expressionSite); } else { viewNodes1.Add(value); } } else { viewNodes1.Add(value); } } if (viewNodes1.Count != keyValuePair.Value.Count) { this.PurgePartialEntry(keyValuePair.Value, viewNodes1); } else { documentNodes.Add(keyValuePair.Key); } } foreach (DocumentNode documentNode3 in documentNodes) { base.Remove(documentNode3); } return(viewNodes); }