示例#1
0
 public PropertyControlCollectionInsertionInfo(DotvvmProperty dotvvmProperty, StyleOverrideOptions type,
                                               ControlResolverMetadata metadata, IStyle innerControlStyle)
 {
     this.dotvvmProperty    = dotvvmProperty;
     this.Type              = type;
     this.metadata          = metadata;
     this.innerControlStyle = innerControlStyle;
 }
示例#2
0
 public PropertyControlCollectionInsertionInfo(DotvvmProperty dotvvmProperty, StyleOverrideOptions type,
                                               ControlResolverMetadata metadata, IStyle innerControlStyle, object[] ctorParameters)
 {
     this.dotvvmProperty    = dotvvmProperty;
     this.Type              = type;
     this.metadata          = metadata;
     this.innerControlStyle = innerControlStyle;
     this.ctorParameters    = ctorParameters;
     this.propertyKind      = DeterminePropertyKind(dotvvmProperty, metadata);
 }
示例#3
0
        public StyleBuilder <T> SetControlProperty <TControlType>(DotvvmProperty property, Action <StyleBuilder <TControlType> > styleBuilder = null,
                                                                  StyleOverrideOptions options = StyleOverrideOptions.Overwrite)
        {
            var innerControlStyleBuilder = new StyleBuilder <TControlType>(null, false);

            styleBuilder?.Invoke(innerControlStyleBuilder);

            style.SetProperties[property] = new CompileTimeStyleBase.PropertyControlCollectionInsertionInfo(property, options,
                                                                                                            new ControlResolverMetadata(typeof(TControlType)), innerControlStyleBuilder.GetStyle());

            return(this);
        }
示例#4
0
 public PropertyInsertionInfo(ResolvedPropertySetter value, StyleOverrideOptions type)
 {
     this.value = value;
     this.Type  = type;
 }
示例#5
0
        public StyleBuilder <T> SetPropertyGroupMember(string prefix, string memberName, object value, StyleOverrideOptions options = StyleOverrideOptions.Overwrite)
        {
            var prop = DotvvmPropertyGroup.GetPropertyGroups(typeof(T)).Single(p => p.Prefixes.Contains(prefix));

            return(SetDotvvmProperty(prop.GetDotvvmProperty(memberName), value, options));
        }
示例#6
0
 public StyleBuilder <T> SetAttribute(string attribute, object value, StyleOverrideOptions options = StyleOverrideOptions.Ignore) =>
 SetPropertyGroupMember("", attribute, value, options);
示例#7
0
 public StyleBuilder <T> SetDotvvmProperty(DotvvmProperty property, object value, StyleOverrideOptions options = StyleOverrideOptions.Overwrite) =>
 SetDotvvmProperty(new ResolvedPropertyValue(property, value), options);
示例#8
0
 public StyleBuilder <T> SetDotvvmProperty(ResolvedPropertySetter setter, StyleOverrideOptions options = StyleOverrideOptions.Overwrite)
 {
     style.SetProperties[setter.Property] = new CompileTimeStyleBase.PropertyInsertionInfo(setter, options);
     return(this);
 }
示例#9
0
        public StyleBuilder <T> SetLiteralControlProperty(DotvvmProperty property, string text, StyleOverrideOptions options = StyleOverrideOptions.Overwrite)
        {
            var innerControlStyleBuilder = new StyleBuilder <RawLiteral>(null, false);

            var ctorParameters = new object[] {
                WebUtility.HtmlEncode(text),
                text,
                String.IsNullOrWhiteSpace(text)
            };

            var value = new CompileTimeStyleBase.PropertyControlCollectionInsertionInfo(property, options,
                                                                                        new ControlResolverMetadata(typeof(RawLiteral)), innerControlStyleBuilder.GetStyle(), ctorParameters);

            style.SetProperties.Add((property, value));;

            return(this);
        }
示例#10
0
        public StyleBuilder <T> SetHtmlControlProperty(DotvvmProperty property, string tag, Action <StyleBuilder <HtmlGenericControl> >?styleBuilder = null, StyleOverrideOptions options = StyleOverrideOptions.Overwrite)
        {
            if (tag == null)
            {
                throw new ArgumentNullException(nameof(tag));
            }

            var innerControlStyleBuilder = new StyleBuilder <HtmlGenericControl>(null, false);

            styleBuilder?.Invoke(innerControlStyleBuilder);

            var value = new CompileTimeStyleBase.PropertyControlCollectionInsertionInfo(property, options,
                                                                                        new ControlResolverMetadata(typeof(HtmlGenericControl)), innerControlStyleBuilder.GetStyle(), ctorParameters: new object[] { tag });

            style.SetProperties.Add((property, value));

            return(this);
        }
示例#11
0
        public StyleBuilder <T> SetProperty <TProperty>(Expression <Func <T, TProperty> > property, TProperty value, StyleOverrideOptions options = StyleOverrideOptions.Overwrite)
        {
            var propertyName = ReflectionUtils.GetMemberFromExpression(property.Body).Name;

            return(SetDotvvmProperty(GetProperty(propertyName) !, value, options));
        }