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 (physicalPath, context);
+ 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++)
+ for (int i = 0; i < css_files.Length; i++) {
+ ptp.AddDependency (css_files [i]);
css_urls [i] = virtualPath + Path.GetFileName (css_files [i]);
+ }
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 ++) {
- string skin_file_url = UrlUtils.Combine (physicalPath, Path.GetFileName (skin_files [i]));
+ skin_file_url = VirtualPathUtility.Combine (virtualPath, Path.GetFileName (skin_files [i]));
PageThemeFileParser ptfp = new PageThemeFileParser (skin_file_url,
- skin_files[i],
- context);
+ skin_files[i],
+ context);
+ ptp.AddDependency (skin_files [i]);
AspGenerator gen = new AspGenerator (ptfp);
+ ptfp.RootBuilder.Foundry = shared_foundry;
gen.Parse ();
- foreach (object o in ptfp.RootBuilder.Children) {
- if (!(o is ControlBuilder))
- continue;
- ptp.RootBuilder.AppendSubBuilder ((ControlBuilder)o);
- }
+ 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))