protected virtual object GetNodeValueCore(ModelNode node, ModelValueInfo valueInfo) { if (valueInfo.IsReadOnly) { return(null); } var nodeValue = node.GetValue(valueInfo.Name); return(nodeValue != null && (valueInfo.PropertyType.IsStruct() && nodeValue.Equals(valueInfo.PropertyType.CreateInstance()))? null: nodeValue); }
protected override object GetSynchronizeValuesNodeValue(ModelNode modelNode, ModelValueInfo valueInfo, PropertyDescriptor propertyDescriptor, bool isNullableType, object component) { var overrideViewDesignMode = ((IColumnViewEditor)Control).OverrideViewDesignMode; var synchronizeValuesNodeValue = base.GetSynchronizeValuesNodeValue(modelNode, valueInfo, propertyDescriptor, !overrideViewDesignMode && isNullableType, component); if (overrideViewDesignMode) { return(PropertyDefaultValue(synchronizeValuesNodeValue, modelNode, propertyDescriptor, valueInfo, component)); } return(synchronizeValuesNodeValue); }
object NodeRealValueCore(ModelValueInfo valueInfo, ModelNode node) { var nodeValue = GetNodeValueCore(node, valueInfo); if (nodeValue == null && !valueInfo.IsReadOnly && valueInfo.PropertyType != typeof(string)) { if (valueInfo.PropertyType.IsStruct()) { return(valueInfo.PropertyType.CreateInstance()); } if (valueInfo.PropertyType.IsNullableType()) { return(valueInfo.PropertyType.GetGenericArguments()[0].CreateInstance()); } throw new NotImplementedException(valueInfo.PropertyType.ToString()); } return(nodeValue); }
public static object ChangedValue(this ModelValueInfo modelValueInfo, object value, Type destinationType) { var typeConverter = modelValueInfo.TypeConverter; return(typeConverter != null?typeConverter.ConvertFrom(value) : value.Change(destinationType)); }
protected virtual object GetPropertyValue(object component, PropertyDescriptor propertyDescriptor, ModelValueInfo valueInfo, ModelNode modelNode) { return(propertyDescriptor.GetValue(component)); }
protected virtual object GetSynchronizeValuesNodeValue(ModelNode modelNode, ModelValueInfo valueInfo, PropertyDescriptor propertyDescriptor, bool isNullableType, object component) { return(GetNodeValueCore(modelNode, valueInfo)); }
protected object PropertyDefaultValue(object value, ModelNode node, PropertyDescriptor propertyDescriptor, ModelValueInfo valueInfo, object component) { var defaultValueAttribute = propertyDescriptor.Attributes.OfType <DefaultValueAttribute>().FirstOrDefault(); if (defaultValueAttribute == null) { if (propertyDescriptor.PropertyType.IsStruct()) { return(propertyDescriptor.PropertyType.CreateInstance()); } } else if (defaultValueAttribute.Value.Equals(propertyDescriptor.GetValue(component))) { return(null); } return(NodeRealValueCore(valueInfo, node)); }
protected virtual object GetApplyModelNodeValue(ModelNode node, ModelValueInfo valueInfo) { return(GetNodeValueCore(node, valueInfo)); }
protected virtual PropertyDescriptor GetPropertyDescriptor(PropertyDescriptorCollection properties, ModelValueInfo valueInfo, object component, ModelNode node) { if (component is AppearanceObject) { if (typeof(IModelAppearanceFont).Properties().Select(info => info.Name).Contains(valueInfo.Name)) { return(new FontPropertyDescriptor(valueInfo.Name, new Attribute[0], GetApplyModelNodeValue, node)); } } return(properties.Find(valueInfo.Name, false)); }
bool IsNotExcluded(ModelValueInfo info) { return(!ExcludedNodeMembers.Contains(info.Name)); }
private static bool IsValidInfo(ModelValueInfo info, HashSet <string> properties) { return(!info.IsReadOnly && (info.PropertyType.IsNullableType() || info.PropertyType == typeof(string)) && properties.Contains(info.Name)); }
static bool IsValid(ModelValueInfo modelValueInfo) { return(!_invalidValueInfoNames.Contains(modelValueInfo.Name) && !typeof(IModelNode).IsAssignableFrom(modelValueInfo.PropertyType)); }