2006-03-13 Chris Toshok * TemplateControlCompiler.cs (InitMethod): when generating the call to ApplyStyleSheetSkin, don't just blindly pass "this" as the argument to it. Only do that if the class we're compiling is actually a subclass of Page. If it's not, pass this.Page. 2006-03-07 Chris Toshok * AspGenerator.cs: refactor the parsing code so that we can initiate parsing from outside this class. * PageCompiler.cs (PrependStatementsToFrameworkInitialize): new method, add our StyleSheetTheme assignment here. (AppendStatementsToFrameworkInitialize): rename AddStatements* to this. * TemplateControlCompiler.cs (EnsureID): make protected. (CreateAssignStatementsFromAttributes): same (AddChildCall): same. (CreateControlTree): same. (CreateFrameworkInitializeMethod): change "AddStatementsToFrameworkInitialize" to "AppendStatementsToFrameworkInitialize", and add call to "PrependStatementsToFrameworkInitialize" before the generation of "base.FrameworkInitialize()." * PageThemeCompiler.cs (CreateControlSkinMethod): remove spew. 2006-03-07 Chris Toshok * ThemeDirectoryCompiler.cs: new file. * PageThemeCompiler.cs: new file. 2006-03-07 Chris Toshok * BaseCompiler.cs: fix typo in "initialize" in multiple places. (Init): move the CreateMethods call here. 2006-03-02 Chris Toshok * TemplateControlCompiler.cs (InitMethod): emit an assignment for SkinID just after the creation of our object, and right after that call "_ctrl.ApplyStyleSheetSkin (page)". (CreateAssignStatementsFromAttributes): split out the majority of this code to CreateAssignStatementFromAttribute, and change this method to simply a loop over the attribute keys. In the 2.0 case, skip the SkinID property, since that's handled explicitly in InitMethod. * PageCompiler.cs (AddStatementsToInitMethod): emit assignments for Theme and StyleSheetTheme. 2006-02-23 Chris Toshok * TemplateControlCompiler.cs (AddContentTemplateInvocation): track change from ContentControlBuilderInternal to ContentBuilderInternal. (AddCodeRender): same. 2006-02-16 Gonzalo Paniagua Javier * AssemblyBuilder.cs: * BuildManager.cs: compile the assembly from AssemblyBuilder and use GetGeneratedType() on the BuildProvider instead of loading the assembly and trying a wild guess at the type name. 2006-02-14 Gonzalo Paniagua Javier * GlobalAsaxCompiler.cs: * PageCompiler.cs: * TemplateControlCompiler.cs: CreateMethods is now internal. * WebServiceBuildProvider.cs: * PageBuildProvider.cs: * UserControlBuildProvider.cs: * WebHandlerBuildProvider.cs: new build providers. * BuildProvider.cs: add assemblies. * BaseCompiler.cs: expose the provider and the compile unit through properties. 2006-02-10 Gonzalo Paniagua Javier * CompilerType.cs: implemented. * AssemblyBuilder.cs: implemented most of it. * WebServiceCompiler.cs: * CachingCompiler.cs: update 2.0 compiler instance creation code. * ClientBuildManager.cs: implemented some of its methods. Not yet ready. * BuildManager.cs: the more interesting methods are implemented now. * BaseCompiler.cs: delete the temporary files in case of error. * BuildProvider.cs: implemented the Get*Compiler* protected methods. 2006-02-07 Chris Toshok * TemplateControlCompiler.cs (AddParsedSubObjectStmt): append the calls to AddParsedSubObject to a special statement collection -- builder.flushOutputStatements -- not to builder.method.Statements. (InitMethod): initially, set flushOutputStatements to method.Statements. If we're dealing with a ContentPlaceHolder, set flushOutputStatements to be the else block of a conditional we create. This causes the compiled control to fall back to the ContentPlaceHolder's child controls in case there's no corresponding Content template. (AddChildCall): use methodStatements instead of method.Statements. (CreateControlTree): same. * PageCompiler.cs (CreatePropertyAssign): factor out the string,string implementation and add one that also takes a CodeExpression; make the string,string implementation call the three arg one with thisRef. (AddStatementsToInitMethod): make use of the 3-arg form of CreatePropertyAssign to reduce code. Also, add support for setting the page's Title from the parser's Title. 2006-02-07 Chris Toshok * UserControlCompiler.cs (AddStatementsToInitMethod): emit code to assign __ctrl.MasterPageFile to our master page, if we have one. * PageCompiler.cs (CreateContructor): remove the MasterPageFile assignment from here. (AddStatementsToInitMethod): and move it here. * TemplateControlCompiler.cs (InitMethod): in the case where builder is a RootBuilder (we're building the __BuildControlTree method), call a virtual method so that subclasses can add their own statements to the method (used by both Page and MasterPage); Also, in the RootBuilder case, the argument should be the parser.ClassName type (the class we're building); lastly, expand the ContentPlaceHolder logic to include all the ContentTemplates/InstantiateIn magic. (AddStatementsToInitMethod): empty virtual method. (AddContentTemplateInvocation): ContentControlBuilder -> ContentControlBuilderInternal. (CreateControlTree): same. (CallBaseFrameworkInitialize): new function, create call to base.FrameworkInitialize. (CreateFrameworkInitializeMethod): call CallBaseFrameworkIniitialize. 2006-02-06 Gonzalo Paniagua Javier * IgnoreFileBuildProvider.cs: it's not public. * BuildProvider.cs: mostly implemented. 2006-02-01 Chris Toshok * WebServiceCompiler.cs: CONFIGURATION_2_0 => NET_2_0, and use GetSection instead of GetWebApplicationSection. * CachingCompiler.cs: same. * AspGenerator.cs: same. * BaseCompiler.cs: same. 2006-01-23 Gonzalo Paniagua Javier * AspGenerator.cs: ignore 'thead'. Fixes bug #77326. 2006-01-22 Chris Toshok * IgnoreFileBuildProvider.cs: build provider which does nothing. 2006-01-22 Chris Toshok * AspComponentFoundry.cs (.ctor): use a 2.0 friendly form of the Hashtable ctor to silence a couple of warning. (CompoundFoundry.ctor): same * Directive.cs (InitHash): use a 2.0 friendly form of the Hashtable ctor to silence a couple of warning. * TagAttributes.cs (MakeHash): use a 2.0 friendly form of the Hashtable ctor to silence a warning. (GetDictionary): same. 2006-01-22 Chris Toshok * AppSettingsExpressionBuilder.cs: implement this, patterning it after an example on msdn. Also, enable the ExpressionEditor attribute, but use the string rather than the Type overload so we won't have yet another circular dep. * ConnectionStringsExpressionBuilder.cs: partial implementation. Same deal with the ExpressionEditor attribute. * ResourceExpressionBuilder.cs: same deal with the ExpressionEditor attribute. 2006-01-20 Chris Toshok * ResourceExpressionBuilder.cs (ParseExpression): implement. * ResourceExpressionFields.cs: implement. 2006-01-20 Chris Toshok * ClientBuildManagerParameter.cs: implement. * ClientBuildManagerCallback.cs: this class contains an empty default implementation. 2006-01-10 Gonzalo Paniagua Javier * AspGenerator.cs: add support for 'src' in