]> O.S.I.I.S - jp/crow.git/commitdiff
replace StyleAttribute=>DefaultStyle
authorjpbruyere <jp.bruyere@hotmail.com>
Thu, 25 Feb 2016 10:35:03 +0000 (11:35 +0100)
committerjpbruyere <jp.bruyere@hotmail.com>
Thu, 25 Feb 2016 10:35:03 +0000 (11:35 +0100)
src/GraphicObjects/GraphicObject.cs
src/GraphicObjects/TemplatedControl.cs

index 23748b3a1120f2251470c7bd02a72d5c525d00df..e8453937751a9e3dc880df0849d43af891fd7fae 100644 (file)
@@ -438,7 +438,7 @@ namespace Crow
                                        (LogicalParent as GraphicObject).DataSource : dataSource;
                        }
                }
-               [XmlAttributeAttribute][DefaultValue(null)]
+               [XmlAttributeAttribute]
                public virtual string Style {
                        get { return style; }
                        set {
@@ -484,8 +484,6 @@ namespace Crow
 
                        il.Emit(OpCodes.Nop);
 
-                       StyleAttribute[] style = thisType.GetCustomAttributes().OfType<StyleAttribute>().ToArray();
-
                        foreach (PropertyInfo pi in thisType.GetProperties(BindingFlags.Public | BindingFlags.Instance)) {
                                string name = "";
                                object defaultValue = null;
@@ -504,16 +502,17 @@ namespace Crow
                                        else
                                                name = xaa.AttributeName;
                                }
-
-                               StyleAttribute piStyle = style.Where(s => s.PropertyName == pi.Name).FirstOrDefault();
-                               if (piStyle != null){
-                                       defaultValue = piStyle.DefaultValue;
+                               if (name == "Style"){
+                                       //retrieve default value from class attribute
+                                       DefaultStyle defStyle = thisType.GetCustomAttribute<DefaultStyle>();
+                                       if (defStyle != null)
+                                               defaultValue = defStyle.Path;
                                }else{
                                        DefaultValueAttribute dv = (DefaultValueAttribute)pi.GetCustomAttribute (typeof(DefaultValueAttribute));
                                        if (dv == null)
                                                continue;
                                        defaultValue = dv.Value;
-                               }                               
+                               }
                                #endregion
 
                                il.Emit (OpCodes.Ldarg_0);
index c1c48fc73fe47c93263e2bf93d022f7bccdfc272..f09d10aa721ed5c1d4c9f91352f592dbf3100104 100644 (file)
@@ -28,7 +28,7 @@ using System.Diagnostics;
 
 namespace Crow
 {
-//     [AttributeUsage(AttributeTargets.Class)]
+       [AttributeUsage(AttributeTargets.Class)]
        public class TemplateAttribute : Attribute
        {
                public string Path = "";
@@ -38,14 +38,9 @@ namespace Crow
                }
        }
        [AttributeUsage(AttributeTargets.Class)]
-       public class StyleAttribute : Attribute
+       public class DefaultStyle : TemplateAttribute
        {
-               public string PropertyName = "";
-               public object DefaultValue = null;
-               public StyleAttribute(string _property, object _defValue){
-                       PropertyName = _property;
-                       DefaultValue = _defValue;
-               }
+               public DefaultStyle(string path) : base(path){}
        }
        [AttributeUsage(AttributeTargets.Class)]
        public class DefaultTemplate : TemplateAttribute
@@ -53,11 +48,6 @@ namespace Crow
                public DefaultTemplate(string path) : base(path){}
        }
        [AttributeUsage(AttributeTargets.Class)]
-       public class DefaultOverlayTemplate : TemplateAttribute
-       {
-               public DefaultOverlayTemplate(string path) : base(path){}
-       }
-       [AttributeUsage(AttributeTargets.Class)]
        public class DefaultItemTemplate : TemplateAttribute
        {
                public DefaultItemTemplate(string path) : base(path){}