public SkinBuilder (ThemeProvider provider, Control control, ControlBuilder skinBuilder, string themePath) { throw new NotImplementedException (); }
public override void Init (TemplateParser parser, ControlBuilder parentBuilder, Type type, string tagName, string ID, IDictionary attribs) { base.Init (parser, parentBuilder, type, tagName, ID, attribs); placeHolderID = attribs ["ContentPlaceHolderID"] as string; if (String.IsNullOrEmpty (placeHolderID)) throw new HttpException ("Missing required 'ContentPlaceHolderID' attribute"); }
public SkinBuilder (ThemeProvider provider, Control control, ControlBuilder skinBuilder, string themePath) { //this.provider = provider; this.control = control; //this.skinBuilder = skinBuilder; //this.themePath = themePath; }
public override void Init (TemplateParser parser, ControlBuilder parentBuilder, Type type, string tagName, string ID, IDictionary attribs) { string id = null, s; foreach (object k in attribs.Keys) { s = k as string; if (String.IsNullOrEmpty (s)) continue; if (String.Compare (s, "id", StringComparison.OrdinalIgnoreCase) == 0) { id = attribs [s] as string; break; } } base.Init (parser, parentBuilder, type, tagName, ID, attribs); MasterPageParser mpp = parser as MasterPageParser; if (mpp == null || String.IsNullOrEmpty (id)) return; mpp.AddContentPlaceHolderId (id); }
public override bool AllowControl (Type controlType, ControlBuilder builder) { return true; }
internal override void BuildExpression(BoundPropertyEntry bpe, ControlBuilder controlBuilder, CodeExpression controlReference, CodeStatementCollection methodStatements, CodeStatementCollection statements, CodeLinePragma linePragma, ref bool hasTempObject) { BuildExpressionStatic(bpe, controlBuilder, controlReference, methodStatements, statements, linePragma, bpe.IsEncoded, ref hasTempObject); }
public virtual void AppendSubBuilder(ControlBuilder subBuilder) { }
public virtual void OnAppendToParentBuilder(ControlBuilder parentBuilder) { }
public override void AppendSubBuilder(ControlBuilder subBuilder) { base.AppendSubBuilder(subBuilder); }
// Constructors public ObjectPersistData(ControlBuilder builder, System.Collections.IDictionary builtObjects) {}
public virtual void OnAppendToParentBuilder(ControlBuilder parentBuilder) { }
void CreateControlSkinMethod(ControlBuilder builder) { if (builder.ControlType == null) { return; } EnsureID(builder); CodeMemberMethod method = new CodeMemberMethod(); method.Name = "__BuildControl_" + builder.ID; method.Parameters.Add(new CodeParameterDeclarationExpression(typeof(Control), "ctrl")); mainClass.Members.Add(method); builder.Method = method; builder.MethodStatements = method.Statements; method.ReturnType = new CodeTypeReference(typeof(Control)); // _ctrl = ($controlType)(ctrl); // CodeCastExpression castExpr = new CodeCastExpression(builder.ControlType, new CodeVariableReferenceExpression("ctrl")); method.Statements.Add(new CodeVariableDeclarationStatement(builder.ControlType, "__ctrl")); CodeAssignStatement assign = new CodeAssignStatement(); assign.Left = ctrlVar; assign.Right = castExpr; method.Statements.Add(assign); CreateAssignStatementsFromAttributes(builder); if (builder.Children != null) { foreach (object o in builder.Children) { if (!(o is ControlBuilder)) { continue; } ControlBuilder b = (ControlBuilder)o; if (b.ControlType == null) { continue; } if (b is CollectionBuilder) { PropertyInfo itemsProp = null; try { itemsProp = b.GetType().GetProperty("Items"); } catch (Exception) {} if (itemsProp != null) { /* emit a prop.Clear call before populating the collection */; CodePropertyReferenceExpression prop = new CodePropertyReferenceExpression(ctrlVar, b.TagName); CodePropertyReferenceExpression items = new CodePropertyReferenceExpression(prop, "Items"); method.Statements.Add(new CodeMethodInvokeExpression(items, "Clear")); } } CreateControlTree(b, false, builder.ChildrenAsProperties); AddChildCall(builder, b); } } builder.Method.Statements.Add(new CodeMethodReturnStatement(ctrlVar)); }
// Methods public virtual void ParseComplete(ControlBuilder rootBuilder) {}
public static ControlBuilder CreateBuilderFromType(TemplateParser parser, ControlBuilder parentBuilder, Type type, string tagName, string id, System.Collections.IDictionary attribs, int line, string sourceFileName) {}
void AddStatementsFromDirective(ControlBuilder builder, CodeMemberMethod method, ILocation location) { #if NET_2_0 AssignPropertyWithExpression <string> (method, "ResponseEncoding", pageParser.ResponseEncoding, location); AssignPropertyWithExpression <int> (method, "CodePage", pageParser.CodePage, location); AssignPropertyWithExpression <int> (method, "LCID", pageParser.LCID, location); #else AssignPropertyWithExpression(method, "ResponseEncoding", pageParser.ResponseEncoding, location); AssignPropertyWithExpression(method, "CodePage", pageParser.CodePage, location); AssignPropertyWithExpression(method, "LCID", pageParser.LCID, location); #endif string contentType = pageParser.ContentType; if (contentType != null) { method.Statements.Add(AddLinePragma(CreatePropertyAssign("ContentType", contentType), location)); } #if !NET_2_0 if (pageParser.OutputCache) { CodeMethodReferenceExpression init = new CodeMethodReferenceExpression(null, "InitOutputCache"); CodeMethodInvokeExpression invoke = new CodeMethodInvokeExpression(init, OutputCacheParams()); method.Statements.Add(AddLinePragma(invoke, builder)); } #endif string culture = pageParser.Culture; if (culture != null) { method.Statements.Add(AddLinePragma(CreatePropertyAssign("Culture", culture), location)); } culture = pageParser.UICulture; if (culture != null) { method.Statements.Add(AddLinePragma(CreatePropertyAssign("UICulture", culture), location)); } string errorPage = pageParser.ErrorPage; if (errorPage != null) { method.Statements.Add(AddLinePragma(CreatePropertyAssign("ErrorPage", errorPage), location)); } if (pageParser.HaveTrace) { CodeAssignStatement stmt = new CodeAssignStatement(); stmt.Left = new CodePropertyReferenceExpression(thisRef, "TraceEnabled"); stmt.Right = new CodePrimitiveExpression(pageParser.Trace); method.Statements.Add(AddLinePragma(stmt, location)); } if (pageParser.TraceMode != TraceMode.Default) { CodeAssignStatement stmt = new CodeAssignStatement(); CodeTypeReferenceExpression tm = new CodeTypeReferenceExpression("System.Web.TraceMode"); stmt.Left = new CodePropertyReferenceExpression(thisRef, "TraceModeValue"); stmt.Right = new CodeFieldReferenceExpression(tm, pageParser.TraceMode.ToString()); method.Statements.Add(AddLinePragma(stmt, location)); } if (pageParser.NotBuffer) { CodeAssignStatement stmt = new CodeAssignStatement(); stmt.Left = new CodePropertyReferenceExpression(thisRef, "Buffer"); stmt.Right = new CodePrimitiveExpression(false); method.Statements.Add(AddLinePragma(stmt, location)); } #if NET_2_0 if (!pageParser.EnableEventValidation) { CodeAssignStatement stmt = new CodeAssignStatement(); CodePropertyReferenceExpression prop; prop = new CodePropertyReferenceExpression(thisRef, "EnableEventValidation"); stmt.Left = prop; stmt.Right = new CodePrimitiveExpression(pageParser.EnableEventValidation); method.Statements.Add(AddLinePragma(stmt, location)); } if (pageParser.MaintainScrollPositionOnPostBack) { CodeAssignStatement stmt = new CodeAssignStatement(); CodePropertyReferenceExpression prop; prop = new CodePropertyReferenceExpression(thisRef, "MaintainScrollPositionOnPostBack"); stmt.Left = prop; stmt.Right = new CodePrimitiveExpression(pageParser.MaintainScrollPositionOnPostBack); method.Statements.Add(AddLinePragma(stmt, location)); } #endif }
public TextControlBuilder(ControlBuilder <TElementdata, TContextData, TParentBuilderType> controlBuilder, string renderedElement) { ControlBuilder = controlBuilder; controlBuilder.Element.RenderedElement = renderedElement; }
internal CodeStatement AddLinePragma(CodeExpression expression, ControlBuilder builder) { return(AddLinePragma(new CodeExpressionStatement(expression), builder)); }
public virtual void Init(TemplateParser parser, ControlBuilder parentBuilder, Type type, string tagName, string ID, System.Collections.IDictionary attribs) { }
public override void Init(TemplateParser parser, ControlBuilder parentBuilder, Type type, string tagName, string id, System.Collections.IDictionary attribs) { base.Init(parser, parentBuilder, type, tagName, id, attribs); }
// Constructors public SkinBuilder(ThemeProvider provider, Control control, ControlBuilder skinBuilder, string themePath) { }
public override void AppendSubBuilder (ControlBuilder subBuilder) { throw new HttpException ("LiteralControlBuilder should never be called"); }
public override void OnAppendToParentBuilder(ControlBuilder parentBuilder) { base.OnAppendToParentBuilder(parentBuilder); }
protected internal override void CreateMethods() { CodeMemberField fld; CodeMemberProperty prop; /* override the following abstract PageTheme properties: * protected abstract string AppRelativeTemplateSourceDirectory { get; } * protected abstract IDictionary ControlSkins { get; } * protected abstract string[] LinkedStyleSheets { get; } */ /* ControlSkins */ fld = new CodeMemberField(typeof(HybridDictionary), "__controlSkins"); fld.Attributes = MemberAttributes.Private; fld.InitExpression = new CodeObjectCreateExpression(typeof(HybridDictionary)); mainClass.Members.Add(fld); prop = new CodeMemberProperty(); prop.Name = "ControlSkins"; prop.Attributes = MemberAttributes.Family | MemberAttributes.Override; prop.Type = new CodeTypeReference(typeof(IDictionary)); prop.GetStatements.Add(new CodeMethodReturnStatement(new CodeVariableReferenceExpression("__controlSkins"))); mainClass.Members.Add(prop); /* LinkedStyleSheets */ fld = new CodeMemberField(typeof(string[]), "__linkedStyleSheets"); fld.Attributes = MemberAttributes.Private; fld.InitExpression = CreateLinkedStyleSheets(); mainClass.Members.Add(fld); prop = new CodeMemberProperty(); prop.Name = "LinkedStyleSheets"; prop.Attributes = MemberAttributes.Family | MemberAttributes.Override; prop.Type = new CodeTypeReference(typeof(string[])); prop.GetStatements.Add(new CodeMethodReturnStatement(new CodeVariableReferenceExpression("__linkedStyleSheets"))); mainClass.Members.Add(prop); /* AppRelativeTemplateSourceDirectory */ prop = new CodeMemberProperty(); prop.Name = "AppRelativeTemplateSourceDirectory"; prop.Attributes = MemberAttributes.Family | MemberAttributes.Override; prop.Type = new CodeTypeReference(typeof(string)); prop.GetStatements.Add(new CodeMethodReturnStatement( new CodePrimitiveExpression( VirtualPathUtility.ToAbsolute(parser.BaseVirtualDir)))); mainClass.Members.Add(prop); ControlBuilder builder = parser.RootBuilder; if (builder.Children != null) { foreach (object o in builder.Children) { if (!(o is ControlBuilder)) { continue; } if (o is CodeRenderBuilder) { continue; } ControlBuilder b = (ControlBuilder)o; CreateControlSkinMethod(b); } } }
public static ControlBuilder CreateBuilderFromType(TemplateParser parser, ControlBuilder parentBuilder, Type type, string tagName, string id, System.Collections.IDictionary attribs, int line, string sourceFileName) { }
public virtual bool AllowControl(Type controlType, ControlBuilder builder) {}
public override void Init(TemplateParser parser, ControlBuilder parentBuilder, Type type, string tagName, string id, IDictionary attribs) { base.Init(parser, parentBuilder, type, tagName, id, attribs); _typeName = (string)attribs["typename"]; }
public override void Init(TemplateParser parser, ControlBuilder parentBuilder, Type type, string tagName, string id, System.Collections.IDictionary attribs) { var newType = typeof(/*here you can put a JsRegisterDecorator type*/); base.Init(parser, parentBuilder, t, tagName, id, attribs); }
public override void AppendSubBuilder(ControlBuilder subBuilder) { throw new HttpException("LiteralControlBuilder should never be called"); }
public virtual void Init(TemplateParser parser, ControlBuilder parentBuilder, Type type, string tagName, string id, System.Collections.IDictionary attribs) { }
public override bool AllowControl(Type controlType, ControlBuilder builder) { return(true); }
public virtual void AppendSubBuilder(ControlBuilder subBuilder) { }
public override void AppendSubBuilder(ControlBuilder subBuilder) { throw new HttpException(SR.GetString(SR.Control_does_not_allow_children, ControlType.ToString())); }