private string BuildSourceTabs(string id, string wId, ExampleConfig cfg, DirectoryInfo dir) { List <string> files = cfg != null ? cfg.OuterFiles : new List <string>(); FileInfo[] filesInfo = dir.GetFiles(); List <FileInfo> fileList = new List <FileInfo>(filesInfo); int dIndex = 0; for (int ind = 0; ind < fileList.Count; ind++) { if (fileList[ind].Name.ToLower() == "default.aspx") { dIndex = ind; } } if (dIndex > 0) { FileInfo fi = fileList[dIndex]; fileList.RemoveAt(dIndex); fileList.Insert(0, fi); } foreach (string file in files) { fileList.Add(new FileInfo(file)); } DirectoryInfo[] resources = dir.GetDirectories("resources", SearchOption.TopDirectoryOnly); if (resources.Length > 0) { GetSubFiles(fileList, resources[0]); } TabPanel tabs = new TabPanel { ID = "tpw" + id, Border = false, ActiveTabIndex = 0 }; int i = 0; foreach (FileInfo fileInfo in fileList) { if (excludeList.Contains(fileInfo.Name) || excludeExtensions.Contains(fileInfo.Extension.ToLower())) { continue; } Panel panel = new Panel(); panel.ID = "tptw" + id + i++; panel.Title = fileInfo.Name; panel.CustomConfig.Add(new ConfigItem("url", UIHelpers.PhysicalToVirtual(fileInfo.FullName), ParameterMode.Value)); switch (fileInfo.Extension) { case ".aspx": case ".ascx": panel.Icon = Icon.PageWhiteCode; break; case ".cs": panel.Icon = Icon.PageWhiteCsharp; break; case ".xml": case ".xsl": panel.Icon = Icon.ScriptCodeRed; break; case ".js": panel.Icon = Icon.Script; break; case ".css": panel.Icon = Icon.Css; break; } panel.Loader = new ComponentLoader(); panel.Loader.Url = UIHelpers.ApplicationRoot + "/GenerateSource.ashx"; panel.Loader.Mode = LoadMode.Frame; panel.Loader.Params.Add(new Parameter("f", UIHelpers.PhysicalToVirtual(fileInfo.FullName), ParameterMode.Value)); panel.Loader.LoadMask.ShowMask = true; tabs.Items.Add(panel); } return(tabs.ToScript(RenderMode.AddTo, wId)); }