public RootBuilder (TemplateParser parser) { foundry = new AspComponentFoundry (); line = 1; fileName = parser.InputFile; Init (parser, null, null, null, null, null); }
public static Type GetCompiledType (string theme, HttpContext context) { string virtualPath = "~/App_Themes/" + theme + "/"; string physicalPath = context.Request.MapPath (virtualPath); if (!Directory.Exists (physicalPath)) throw new HttpException (String.Format ("Theme '{0}' cannot be found in the application or global theme directories.", theme)); string [] skin_files = Directory.GetFiles (physicalPath, "*.skin"); PageThemeParser ptp = new PageThemeParser (new VirtualPath (virtualPath), context); string[] css_files = Directory.GetFiles (physicalPath, "*.css"); string[] css_urls = new string[css_files.Length]; for (int i = 0; i < css_files.Length; i++) { ptp.AddDependency (css_files [i]); css_urls [i] = virtualPath + Path.GetFileName (css_files [i]); } Array.Sort (css_urls, StringComparer.OrdinalIgnoreCase); ptp.LinkedStyleSheets = css_urls; AspComponentFoundry shared_foundry = new AspComponentFoundry (); ptp.RootBuilder = new RootBuilder (); string skin_file_url; for (int i = 0; i < skin_files.Length; i ++) { skin_file_url = VirtualPathUtility.Combine (virtualPath, Path.GetFileName (skin_files [i])); PageThemeFileParser ptfp = new PageThemeFileParser (new VirtualPath (skin_file_url), skin_files[i], context); ptp.AddDependency (skin_files [i]); AspGenerator gen = new AspGenerator (ptfp); ptfp.RootBuilder.Foundry = shared_foundry; gen.Parse (); if (ptfp.RootBuilder.Children != null) foreach (object o in ptfp.RootBuilder.Children) { if (!(o is ControlBuilder)) continue; ptp.RootBuilder.AppendSubBuilder ((ControlBuilder)o); } foreach (string ass in ptfp.Assemblies) if (!ptp.Assemblies.Contains (ass)) ptp.AddAssemblyByFileName (ass); } PageThemeCompiler compiler = new PageThemeCompiler (ptp); return compiler.GetCompiledType (); }
protected override TemplateParser CreateParser (VirtualPath virtualPath, string inputFile, HttpContext context) { string vp = VirtualPathUtility.AppendTrailingSlash (virtualPath.Original); string physicalPath = virtualPath.PhysicalPath; if (!Directory.Exists (physicalPath)) throw new HttpException (String.Concat ("Theme '", virtualPath.Original ,"' cannot be found in the application or global theme directories.")); PageThemeParser ptp = new PageThemeParser (virtualPath, context); string[] css_files = Directory.GetFiles (physicalPath, "*.css"); string[] css_urls = new string [css_files.Length]; for (int i = 0; i < css_files.Length; i++) { css_urls [i] = VirtualPathUtility.Combine (vp, Path.GetFileName (css_files [i])); ptp.AddDependency (css_urls [i]); } Array.Sort (css_urls, StringComparer.OrdinalIgnoreCase); ptp.LinkedStyleSheets = css_urls; AspComponentFoundry shared_foundry = new AspComponentFoundry (); ptp.RootBuilder = new RootBuilder (); string [] skin_files = Directory.GetFiles (physicalPath, "*.skin"); string skin_file_url; AspGenerator generator; foreach (string skin_file in skin_files) { skin_file_url = VirtualPathUtility.Combine (vp, Path.GetFileName (skin_file)); PageThemeFileParser ptfp = new PageThemeFileParser (new VirtualPath (skin_file_url), skin_file, context); ptp.AddDependency (skin_file_url); generator = new AspGenerator (ptfp, shared_foundry); generator.Parse (); if (ptfp.RootBuilder.Children != null) foreach (object o in ptfp.RootBuilder.Children) { if (!(o is ControlBuilder)) continue; ptp.RootBuilder.AppendSubBuilder ((ControlBuilder)o); } foreach (string ass in ptfp.Assemblies) if (!ptp.Assemblies.Contains (ass)) ptp.AddAssemblyByFileName (ass); } return ptp; }
public AspGenerator (TemplateParser tparser, AspComponentFoundry componentFoundry) : this (tparser) { this.componentFoundry = componentFoundry; }
protected override TemplateParser CreateParser(VirtualPath virtualPath, string inputFile, HttpContext context) { string vp = VirtualPathUtility.AppendTrailingSlash(virtualPath.Original); string physicalPath = virtualPath.PhysicalPath; if (!Directory.Exists(physicalPath)) { throw new HttpException(String.Concat("Theme '", virtualPath.Original, "' cannot be found in the application or global theme directories.")); } PageThemeParser ptp = new PageThemeParser(virtualPath, context); string[] css_files = Directory.GetFiles(physicalPath, "*.css"); string[] css_urls = new string [css_files.Length]; for (int i = 0; i < css_files.Length; i++) { css_urls [i] = VirtualPathUtility.Combine(vp, Path.GetFileName(css_files [i])); ptp.AddDependency(css_urls [i]); } Array.Sort(css_urls, StringComparer.OrdinalIgnoreCase); ptp.LinkedStyleSheets = css_urls; AspComponentFoundry shared_foundry = new AspComponentFoundry(); ptp.RootBuilder = new RootBuilder(); string [] skin_files = Directory.GetFiles(physicalPath, "*.skin"); string skin_file_url; AspGenerator generator; foreach (string skin_file in skin_files) { skin_file_url = VirtualPathUtility.Combine(vp, Path.GetFileName(skin_file)); PageThemeFileParser ptfp = new PageThemeFileParser(new VirtualPath(skin_file_url), skin_file, context); ptp.AddDependency(skin_file_url); generator = new AspGenerator(ptfp, shared_foundry); generator.Parse(); if (ptfp.RootBuilder.Children != null) { foreach (object o in ptfp.RootBuilder.Children) { if (!(o is ControlBuilder)) { continue; } ptp.RootBuilder.AppendSubBuilder((ControlBuilder)o); } } foreach (string ass in ptfp.Assemblies) { if (!ptp.Assemblies.Contains(ass)) { ptp.AddAssemblyByFileName(ass); } } } return(ptp); }
public RootBuilder () { foundry = new AspComponentFoundry (); Line = 1; }