Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        public static object ChangedValue(this ModelValueInfo modelValueInfo, object value, Type destinationType)
        {
            var typeConverter = modelValueInfo.TypeConverter;

            return(typeConverter != null?typeConverter.ConvertFrom(value) : value.Change(destinationType));
        }
Exemplo n.º 5
0
 protected virtual object GetPropertyValue(object component, PropertyDescriptor propertyDescriptor, ModelValueInfo valueInfo, ModelNode modelNode)
 {
     return(propertyDescriptor.GetValue(component));
 }
Exemplo n.º 6
0
 protected virtual object GetSynchronizeValuesNodeValue(ModelNode modelNode, ModelValueInfo valueInfo, PropertyDescriptor propertyDescriptor, bool isNullableType, object component)
 {
     return(GetNodeValueCore(modelNode, valueInfo));
 }
Exemplo n.º 7
0
        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));
        }
Exemplo n.º 8
0
 protected virtual object GetApplyModelNodeValue(ModelNode node, ModelValueInfo valueInfo)
 {
     return(GetNodeValueCore(node, valueInfo));
 }
Exemplo n.º 9
0
 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));
 }
Exemplo n.º 10
0
 bool IsNotExcluded(ModelValueInfo info)
 {
     return(!ExcludedNodeMembers.Contains(info.Name));
 }
Exemplo n.º 11
0
 private static bool IsValidInfo(ModelValueInfo info, HashSet <string> properties)
 {
     return(!info.IsReadOnly && (info.PropertyType.IsNullableType() || info.PropertyType == typeof(string)) && properties.Contains(info.Name));
 }
Exemplo n.º 12
0
 static bool IsValid(ModelValueInfo modelValueInfo)
 {
     return(!_invalidValueInfoNames.Contains(modelValueInfo.Name) && !typeof(IModelNode).IsAssignableFrom(modelValueInfo.PropertyType));
 }