protected override void OnLoad(EventArgs e) { base.OnLoad(e); if (Context.ClientPage.IsEvent) { return; } var iconList = Factory.GetDatabase("master").GetItem("/sitecore/system/Modules/Custom Icons").Children.ToList(); foreach (var iconItem in iconList) { var header = iconItem.Fields["Header"].Value; var controlId = header.Replace(" ", string.Empty).Trim(); var filename = iconItem.Fields["Filename"].Value; var selectorItem = new ListItem { Header = header, Value = controlId }; Selector.Controls.Add(selectorItem); var customScrollbox = new Scrollbox { ID = $"{controlId}List", Visible = false }; RenderIcons(customScrollbox, filename); List.Controls.Add(customScrollbox); RecentList.InnerHtml = RenderRecentIcons(); } }
private static void RenderIcons(Scrollbox scrollbox, string prefix) { Assert.ArgumentNotNull(scrollbox, nameof(scrollbox)); Assert.ArgumentNotNullOrEmpty(prefix, nameof(prefix)); var filename = GetFilename(prefix); var str = Path.ChangeExtension(filename, ".html"); if (!File.Exists(filename) || !File.Exists(str)) { DrawIcons(prefix, filename, str); } var output = new HtmlTextWriter(new StringWriter()); output.Write(FileUtil.ReadFromFile(str)); WriteImageTag(filename, prefix, output); scrollbox.InnerHtml = output.InnerWriter.ToString(); }
/// <summary> /// Raises the load event. /// /// </summary> /// <param name="args">The arguments.</param><contract><requires name="args" condition="not null"/></contract> protected override void OnLoad(EventArgs args) { var loggingService = ObjectFactory.Instance.Resolve <ILoggingService>(); var stopwatch = new Stopwatch(); loggingService.Log <CategoriesTreelist>("Starting CategoriesTreelist.OnLoad() ..."); stopwatch.Start(); Assert.ArgumentNotNull(args, "args"); if (!ScContext.ClientPage.IsEvent) { SetProperties(); var border1 = new Border(); Controls.Add(border1); GetControlAttributes(); foreach (string key in Attributes.Keys) { border1.Attributes.Add(key, Attributes[key]); } border1.Attributes["id"] = ID; var border2 = new Border { Class = "scTreeListHalfPart" }; var border3 = border2; border1.Controls.Add(border3); var border4 = new Border(); border3.Controls.Add(border4); SetViewStateString("ID", ID); var controls1 = border4.Controls; var literal1 = new Literal("All") { Class = "scContentControlMultilistCaption" }; var literal2 = literal1; controls1.Add(literal2); var scrollbox1 = new Scrollbox { ID = GetUniqueID("S"), Class = "scScrollbox scContentControlTree" }; var scrollbox2 = scrollbox1; border4.Controls.Add(scrollbox2); var treeviewEx = new TreeviewEx { ID = ID + "_all", DblClick = ID + ".Add", AllowDragging = false }; scrollbox2.Controls.Add(treeviewEx); var border5 = new Border { Class = "scContentControlNavigation" }; var border6 = border5; border3.Controls.Add(border6); var literalControl1 = new LiteralControl(new ImageBuilder { Src = "Applications/16x16/nav_right_blue.png", ID = (ID + "_right"), OnClick = ScContext.ClientPage.GetClientEvent(ID + ".Add") }.ToString() + new ImageBuilder { Src = "Applications/16x16/nav_left_blue.png", ID = (ID + "_left"), OnClick = ScContext.ClientPage.GetClientEvent(ID + ".Remove") }); border6.Controls.Add(literalControl1); var border7 = new Border { Class = "scTreeListHalfPart" }; var border8 = border7; border1.Controls.Add(border8); var border9 = new Border { Class = "scFlexColumnContainerWithoutFlexie" }; var border10 = border9; border8.Controls.Add(border10); var controls2 = border10.Controls; var literal3 = new Literal("Selected") { Class = "scContentControlMultilistCaption" }; var literal4 = literal3; controls2.Add(literal4); var border11 = new Border { Class = "scContentControlSelectedList" }; var border12 = border11; border10.Controls.Add(border12); var listbox = new Listbox(); border12.Controls.Add(listbox); _listBox = listbox; listbox.ID = ID + "_selected"; listbox.DblClick = ID + ".Remove"; listbox.Style["width"] = "100%"; listbox.Size = "10"; listbox.Attributes["onchange"] = "javascript:document.getElementById('" + ID + "_help').innerHTML=this.selectedIndex>=0?this.options[this.selectedIndex].innerHTML:''"; listbox.Attributes["class"] = "scContentControlMultilistBox scFlexContentWithoutFlexie"; _listBox.TrackModified = false; treeviewEx.Enabled = !ReadOnly; listbox.Disabled = ReadOnly; border10.Controls.Add( new LiteralControl("<div class='scContentControlTreeListHelp' id=\"" + ID + "_help\"></div>")); var border13 = new Border { Class = "scContentControlNavigation" }; var border14 = border13; border8.Controls.Add(border14); var literalControl2 = new LiteralControl(new ImageBuilder { Src = "Applications/16x16/nav_up_blue.png", ID = (ID + "_up"), OnClick = ScContext.ClientPage.GetClientEvent(ID + ".Up") }.ToString() + new ImageBuilder { Src = "Applications/16x16/nav_down_blue.png", ID = (ID + "_down"), OnClick = ScContext.ClientPage.GetClientEvent(ID + ".Down") }); border14.Controls.Add(literalControl2); var dataContext = new DataContext(); border1.Controls.Add(dataContext); dataContext.ID = GetUniqueID("D"); dataContext.Filter = FormTemplateFilterForDisplay(); treeviewEx.DataContext = dataContext.ID; treeviewEx.DisplayFieldName = DisplayFieldName; dataContext.DataViewName = "Master"; if (!string.IsNullOrEmpty(DatabaseName)) { dataContext.Parameters = "databasename=" + DatabaseName; } dataContext.Root = DataSource; dataContext.Language = Language.Parse(ItemLanguage); treeviewEx.ShowRoot = true; RestoreState(); } base.OnLoad(args); stopwatch.Stop(); loggingService.Log <CategoriesTreelist>(string.Format("CategoriesTreelist.OnLoad() took {0} ms", stopwatch.ElapsedMilliseconds)); }
protected override void OnLoad(EventArgs args) { if (!Sitecore.Context.ClientPage.IsEvent) { SetProperties(); GridPanel gridPanel = new GridPanel(); Controls.Add(gridPanel); gridPanel.Columns = 4; GetControlAttributes(); foreach (string text2 in base.Attributes.Keys) { gridPanel.Attributes.Add(text2, base.Attributes[text2]); } gridPanel.Style["margin"] = "0px 0px 4px 0px"; SetViewStateString("ID", ID); Sitecore.Web.UI.HtmlControls.Literal literal = new Sitecore.Web.UI.HtmlControls.Literal("All"); literal.Class = ("scContentControlMultilistCaption"); gridPanel.Controls.Add(literal); gridPanel.SetExtensibleProperty(literal, "Width", "50%"); gridPanel.SetExtensibleProperty(literal, "Row.Height", "20px"); LiteralControl spacer = new LiteralControl(Images.GetSpacer(24, 1)); gridPanel.Controls.Add(spacer); gridPanel.SetExtensibleProperty(spacer, "Width", "24px"); literal = new Sitecore.Web.UI.HtmlControls.Literal("Selected"); literal.Class = "scContentControlMultilistCaption"; gridPanel.Controls.Add(literal); gridPanel.SetExtensibleProperty(literal, "Width", "50%"); spacer = new LiteralControl(Images.GetSpacer(24, 1)); gridPanel.Controls.Add(spacer); gridPanel.SetExtensibleProperty(spacer, "Width", "24px"); Scrollbox scrollbox = new Scrollbox(); scrollbox.ID = GetUniqueID("S"); gridPanel.Controls.Add(scrollbox); scrollbox.Style["border"] = "3px window-inset"; gridPanel.SetExtensibleProperty(scrollbox, "rowspan", "2"); DataTreeview dataTreeView = new DataTreeview(); dataTreeView.ID = ID + "_all"; scrollbox.Controls.Add(dataTreeView); dataTreeView.DblClick = ID + ".Add"; ImageBuilder builderRight = new ImageBuilder(); builderRight.Src = "Applications/16x16/nav_right_blue.png"; builderRight.ID = ID + "_right"; builderRight.Width = 0x10; builderRight.Height = 0x10; builderRight.Margin = "2"; builderRight.OnClick = Sitecore.Context.ClientPage.GetClientEvent(ID + ".Add"); ImageBuilder builderLeft = new ImageBuilder(); builderLeft.Src = "Applications/16x16/nav_left_blue.png"; builderLeft.ID = ID + "_left"; builderLeft.Width = 0x10; builderLeft.Height = 0x10; builderLeft.Margin = "2"; builderLeft.OnClick = Sitecore.Context.ClientPage.GetClientEvent(ID + ".Remove"); LiteralControl literalControl = new LiteralControl(builderRight.ToString() + "<br/>" + builderLeft.ToString()); gridPanel.Controls.Add(literalControl); gridPanel.SetExtensibleProperty(literalControl, "Width", "30"); gridPanel.SetExtensibleProperty(literalControl, "Align", "center"); gridPanel.SetExtensibleProperty(literalControl, "VAlign", "top"); gridPanel.SetExtensibleProperty(literalControl, "rowspan", "2"); Sitecore.Web.UI.HtmlControls.Listbox listbox = new Listbox(); listBox = listbox; gridPanel.SetExtensibleProperty(listbox, "VAlign", "top"); gridPanel.SetExtensibleProperty(listbox, "Height", "100%"); gridPanel.Controls.Add(listbox); listbox.ID = ID + "_selected"; listbox.DblClick = ID + ".Remove"; listbox.Style["width"] = "100%"; listbox.Size = "10"; listbox.Attributes["onchange"] = "javascript:document.getElementById('" + this.ID + "_help').innerHTML=this.selectedIndex>=0?this.options[this.selectedIndex].innerHTML:''"; listbox.Attributes["class"] = "scContentControlMultilistBox"; dataTreeView.Disabled = ReadOnly; listbox.Disabled = ReadOnly; ImageBuilder builderUp = new ImageBuilder(); builderUp.Src = "Applications/16x16/nav_up_blue.png"; builderUp.ID = ID + "_up"; builderUp.Width = 0x10; builderUp.Height = 0x10; builderUp.Margin = "2px"; builderUp.OnClick = Sitecore.Context.ClientPage.GetClientEvent(ID + ".Up"); ImageBuilder builderDown = new ImageBuilder(); builderDown.Src = "Applications/16x16/nav_down_blue.png"; builderDown.ID = ID + "_down"; builderDown.Width = 0x10; builderDown.Height = 0x10; builderDown.Margin = "2"; builderDown.OnClick = Sitecore.Context.ClientPage.GetClientEvent(ID + ".Down"); literalControl = new LiteralControl(builderUp.ToString() + "<br/>" + builderDown.ToString()); gridPanel.Controls.Add(literalControl); gridPanel.SetExtensibleProperty(literalControl, "Width", "30"); gridPanel.SetExtensibleProperty(literalControl, "Align", "center"); gridPanel.SetExtensibleProperty(literalControl, "VAlign", "top"); gridPanel.SetExtensibleProperty(literalControl, "rowspan", "2"); gridPanel.Controls.Add(new LiteralControl("<div style=\"border:1px solid #999999;font:8pt tahoma;padding:2px;margin:4px 0px 4px 0px;height:14px\" id=\"" + this.ID + "_help\"></div>")); DataContext treeContext = new DataContext(); gridPanel.Controls.Add(treeContext); treeContext.ID = GetUniqueID("D"); treeContext.Filter = FormTemplateFilterForDisplay(); dataTreeView.DataContext = treeContext.ID; treeContext.DataViewName = "Master"; if (!string.IsNullOrEmpty(this.SourceDatabaseName)) { treeContext.Parameters = "databasename=" + this.SourceDatabaseName; } treeContext.Root = DataSource; dataTreeView.EnableEvents(); listbox.Size = "10"; gridPanel.Fixed = true; dataTreeView.AutoUpdateDataContext = true; dataTreeView.ShowRoot = true; listbox.Attributes["class"] = "scContentControlMultilistBox"; gridPanel.SetExtensibleProperty(scrollbox, "Height", "100%"); RestoreState(); } base.OnLoad(args); }
// This method is the only method that differs from Sitecore's // TreeList class protected override void OnLoad(EventArgs args) { Assert.ArgumentNotNull(args, "args"); if (!Sitecore.Context.ClientPage.IsEvent) { Database contentDatabase = Sitecore.Context.ContentDatabase; if (!string.IsNullOrEmpty(this.DatabaseName)) { contentDatabase = Factory.GetDatabase(this.DatabaseName); } this.SetProperties(); GridPanel child = new GridPanel(); this.Controls.Add(child); child.Columns = 4; this.GetControlAttributes(); foreach (string str in base.Attributes.Keys) { child.Attributes.Add(str, base.Attributes[str]); } child.Style["margin"] = "0px 0px 4px 0px"; base.SetViewStateString("ID", this.ID); Literal literal = new Literal("All"); literal.Class = "scContentControlMultilistCaption"; child.Controls.Add(literal); child.SetExtensibleProperty(literal, "Width", "50%"); child.SetExtensibleProperty(literal, "Row.Height", "20px"); LiteralControl control = new LiteralControl(Images.GetSpacer(0x18, 1)); child.Controls.Add(control); child.SetExtensibleProperty(control, "Width", "24px"); literal = new Literal("Selected"); literal.Class = "scContentControlMultilistCaption"; child.Controls.Add(literal); child.SetExtensibleProperty(literal, "Width", "50%"); control = new LiteralControl(Images.GetSpacer(0x18, 1)); child.Controls.Add(control); child.SetExtensibleProperty(control, "Width", "24px"); Scrollbox scrollbox = new Scrollbox(); scrollbox.ID = Sitecore.Web.UI.HtmlControls.Control.GetUniqueID("S"); child.Controls.Add(scrollbox); if (!UIUtil.IsIE()) { scrollbox.Padding = "0px"; } scrollbox.Style["border"] = "3px window-inset"; child.SetExtensibleProperty(scrollbox, "rowspan", "2"); child.SetExtensibleProperty(scrollbox, "VAlign", "top"); // Instantiate the MultiTreeview rather than TreeviewEx MultiRootTreeview ex = new MultiRootTreeview(); // Set the ParentItem of the treeview to the current item // This allows the treeview to have a 'context' of where // we currently are in the content tree Item parentItem = contentDatabase.GetItem(ItemID); ex.ParentItem = parentItem; ex.ID = this.ID + "_all"; if (!string.IsNullOrEmpty(AncestorTemplateDatasource)) { Item parent = parentItem; while (parent != null && String.Compare(parent.TemplateID.ToString(), AncestorTemplateDatasource, StringComparison.OrdinalIgnoreCase) != 0) { parent = parent.Parent; } ex.MultiTrees.Add(2, parent); } else if (DataSources.Count > 0) { foreach (KeyValuePair<int, string> kvp in DataSources) { if (!string.IsNullOrEmpty(kvp.Value)) { if (kvp.Value == ".") { ex.MultiTrees.Add(kvp.Key, parentItem); } else if (kvp.Value.StartsWith(".")) { string path = kvp.Value.Replace(".", parentItem.Paths.FullPath); ex.MultiTrees.Add(kvp.Key, contentDatabase.GetItem(path)); } else { ex.MultiTrees.Add(kvp.Key, contentDatabase.GetItem(kvp.Value)); } } } } scrollbox.Controls.Add(ex); ex.DblClick = this.ID + ".Add"; ex.AllowDragging = false; ImageBuilder builder = new ImageBuilder(); builder.Src = "Applications/16x16/nav_right_blue.png"; builder.ID = this.ID + "_right"; builder.Width = 0x10; builder.Height = 0x10; builder.Margin = UIUtil.IsIE() ? "2px" : "2px 0px 2px 2px"; builder.OnClick = Sitecore.Context.ClientPage.GetClientEvent(this.ID + ".Add"); ImageBuilder builder2 = new ImageBuilder(); builder2.Src = "Applications/16x16/nav_left_blue.png"; builder2.ID = this.ID + "_left"; builder2.Width = 0x10; builder2.Height = 0x10; builder2.Margin = UIUtil.IsIE() ? "2px" : "2px 0px 2px 2px"; builder2.OnClick = Sitecore.Context.ClientPage.GetClientEvent(this.ID + ".Remove"); LiteralControl control2 = new LiteralControl(builder + "<br/>" + builder2); child.Controls.Add(control2); child.SetExtensibleProperty(control2, "Width", "30"); child.SetExtensibleProperty(control2, "Align", "center"); child.SetExtensibleProperty(control2, "VAlign", "top"); child.SetExtensibleProperty(control2, "rowspan", "2"); Listbox listbox = new Listbox(); child.Controls.Add(listbox); child.SetExtensibleProperty(listbox, "VAlign", "top"); child.SetExtensibleProperty(listbox, "Height", "100%"); this._listBox = listbox; listbox.ID = this.ID + "_selected"; listbox.DblClick = this.ID + ".Remove"; listbox.Style["width"] = "100%"; listbox.Size = "10"; listbox.Attributes["onchange"] = "javascript:document.getElementById('" + this.ID + "_help').innerHTML=this.selectedIndex>=0?this.options[this.selectedIndex].innerHTML:''"; listbox.Attributes["class"] = "scContentControlMultilistBox"; ex.Enabled = !this.ReadOnly; listbox.Disabled = this.ReadOnly; ImageBuilder builder3 = new ImageBuilder(); builder3.Src = "Applications/16x16/nav_up_blue.png"; builder3.ID = this.ID + "_up"; builder3.Width = 0x10; builder3.Height = 0x10; builder3.Margin = "2px"; builder3.OnClick = Sitecore.Context.ClientPage.GetClientEvent(this.ID + ".Up"); ImageBuilder builder4 = new ImageBuilder(); builder4.Src = "Applications/16x16/nav_down_blue.png"; builder4.ID = this.ID + "_down"; builder4.Width = 0x10; builder4.Height = 0x10; builder4.Margin = "2px"; builder4.OnClick = Sitecore.Context.ClientPage.GetClientEvent(this.ID + ".Down"); control2 = new LiteralControl(builder3 + "<br/>" + builder4); child.Controls.Add(control2); child.SetExtensibleProperty(control2, "Width", "30"); child.SetExtensibleProperty(control2, "Align", "center"); child.SetExtensibleProperty(control2, "VAlign", "top"); child.SetExtensibleProperty(control2, "rowspan", "2"); child.Controls.Add(new LiteralControl("<div style=\"border:1px solid #999999;font:8pt tahoma;padding:2px;margin:4px 0px 4px 0px;height:14px\" id=\"" + this.ID + "_help\"></div>")); DataContext context = new DataContext(); child.Controls.Add(context); context.ID = Sitecore.Web.UI.HtmlControls.Control.GetUniqueID("D"); context.Filter = this.FormTemplateFilterForDisplay(); ex.DataContext = context.ID; context.DataViewName = "Master"; if (!string.IsNullOrEmpty(this.DatabaseName)) { context.Parameters = "databasename=" + this.DatabaseName; } context.Root = this.DataSource; child.Fixed = true; ex.ShowRoot = true; child.SetExtensibleProperty(scrollbox, "Height", "100%"); this.RestoreState(); } base.OnLoad(args); }
/// <summary> /// Raises the load event. /// </summary> /// <param name="e">The <see cref="T:System.EventArgs"/> instance containing the event data.</param> protected override void OnLoad(EventArgs e) { Assert.ArgumentNotNull(e, "e"); base.OnLoad(e); if (Context.ClientPage.IsEvent) { return; } IsOpenPropertiesChecked = Registry.GetBool("/Current_User/SelectRendering/IsOpenPropertiesChecked"); var renderingOptions = SelectItemOptions.Parse <SelectRenderingOptions>(); if (renderingOptions.ShowOpenProperties) { OpenPropertiesBorder.Visible = true; OpenProperties.Checked = this.IsOpenPropertiesChecked; } if (renderingOptions.ShowPlaceholderName) { PlaceholderNameBorder.Visible = true; PlaceholderName.Value = renderingOptions.PlaceholderName; } if (!renderingOptions.ShowTree) { TreeviewContainer.Class = string.Empty; TreeviewContainer.Visible = false; TreeSplitter.Visible = false; var gridPanel = TreeviewContainer.Parent as GridPanel; if (gridPanel != null) { gridPanel.SetExtensibleProperty(TreeviewContainer, "class", "scDisplayNone"); } var groupedRenderings = renderingOptions.Items.GroupBy(i => i.Parent.Name).ToArray(); if (groupedRenderings.Length <= 1) { Renderings.InnerHtml = RenderPreviews(renderingOptions.Items); gridPanel = Tabs.Parent as GridPanel; if (gridPanel != null) { gridPanel.SetExtensibleProperty(Tabs, "class", "scDisplayNone"); } } else { foreach (var renderingGroup in groupedRenderings) { var newTab = new Tab { Header = renderingGroup.Key, CssClass = "scScrollbox scFixSize scFixSize4", Height = new Unit(100, UnitType.Percentage), Width = new Unit(100, UnitType.Percentage) }; var newScrollbox = new Scrollbox { Class = "scScrollbox scFixSize scFixSize4", Background = "white", Padding = "0px", Width = new Unit(100, UnitType.Percentage), Height = new Unit(100, UnitType.Percentage), InnerHtml = RenderPreviews(renderingGroup) }; newTab.Controls.Add(newScrollbox); Tabs.Controls.Add(newTab); } gridPanel = Renderings.Parent as GridPanel; if (gridPanel != null) { gridPanel.SetExtensibleProperty(Renderings, "class", "scDisplayNone"); } } } else { var gridPanel = Renderings.Parent as GridPanel; if (gridPanel != null) { gridPanel.SetExtensibleProperty(Tabs, "class", "scDisplayNone"); } } SetOpenPropertiesState(renderingOptions.SelectedItem); }
protected override void OnLoad(EventArgs e) { Assert.ArgumentNotNull((object)e, "e"); base.OnLoad(e); if (Context.ClientPage.IsEvent) { return; } IsOpenPropertiesChecked = Registry.GetBool("/Current_User/SelectRendering/IsOpenPropertiesChecked"); SelectRenderingOptions renderingOptions = SelectItemOptions.Parse <SelectRenderingOptions>(); if (renderingOptions.ShowOpenProperties) { OpenPropertiesBorder.Visible = true; OpenProperties.Checked = IsOpenPropertiesChecked; } if (renderingOptions.ShowPlaceholderName) { PlaceholderNameBorder.Visible = true; PlaceholderName.Value = renderingOptions.PlaceholderName; } if (!renderingOptions.ShowTree) { TreeviewContainer.Class = string.Empty; TreeviewContainer.Visible = false; TreeSplitter.Visible = false; GridPanel gridPanel = TreeviewContainer.Parent as GridPanel; if (gridPanel != null) { gridPanel.SetExtensibleProperty(TreeviewContainer, "class", "scDisplayNone"); } //Line of Code that does grouping var gruppedSublayouts = renderingOptions.Items.GroupBy(i => i.Parent.Name); //Add new tab for each folder foreach (IGrouping <string, Item> gruppedSublayout in gruppedSublayouts) { var newTab = new Tab(); newTab.Header = gruppedSublayout.Key; var newScrollbox = new Scrollbox(); newScrollbox.Class = "scScrollbox scFixSize scFixSize4"; newScrollbox.Background = "white"; newScrollbox.Padding = "0px"; newScrollbox.Width = new Unit(100, UnitType.Percentage); newScrollbox.Height = new Unit(100, UnitType.Percentage); newScrollbox.InnerHtml = RenderPreviews(gruppedSublayout); newTab.Controls.Add(newScrollbox); Tabs.Controls.Add(newTab); } gridPanel = Renderings.Parent as GridPanel; if (gridPanel != null) { gridPanel.SetExtensibleProperty(Renderings, "class", "scDisplayNone"); } } else { var gridPanel = Renderings.Parent as GridPanel; if (gridPanel != null) { gridPanel.SetExtensibleProperty(Tabs, "class", "scDisplayNone"); } } //end of new code SetOpenPropertiesState(renderingOptions.SelectedItem); }
/// <summary> /// Raises the load event. /// </summary> /// <param name="e">The <see cref="T:System.EventArgs"/> instance containing the event data.</param> protected override void OnLoad(EventArgs e) { Assert.ArgumentNotNull((object)e, "e"); base.OnLoad(e); if (Context.ClientPage.IsEvent) { return; } this.IsOpenPropertiesChecked = Registry.GetBool("/Current_User/SelectRendering/IsOpenPropertiesChecked"); SelectRenderingOptions renderingOptions = SelectItemOptions.Parse <SelectRenderingOptions>(); if (renderingOptions.ShowOpenProperties) { this.OpenPropertiesBorder.Visible = true; this.OpenProperties.Checked = this.IsOpenPropertiesChecked; } if (renderingOptions.ShowPlaceholderName) { this.PlaceholderNameBorder.Visible = true; this.PlaceholderName.Value = renderingOptions.PlaceholderName; } if (!renderingOptions.ShowTree) { this.TreeviewContainer.Class = string.Empty; this.TreeviewContainer.Visible = false; this.TreeSplitter.Visible = false; GridPanel gridPanel = this.TreeviewContainer.Parent as GridPanel; if (gridPanel != null) { gridPanel.SetExtensibleProperty((System.Web.UI.Control) this.TreeviewContainer, "class", "scDisplayNone"); } this.Renderings.InnerHtml = this.RenderPreviews((IEnumerable <Item>)renderingOptions.Items); // Start custom code this.TabbedGridPanel.Visible = true; this.DefaultGridPanel.Visible = false; var renderingGroups = renderingOptions.Items.GroupBy(i => i.Parent.Name); foreach (IGrouping <string, Item> rendering in renderingGroups) { var newTab = new Tab(); newTab.Header = rendering.Key; var newScrollbox = new Scrollbox(); newScrollbox.Class = "scScrollbox scFixSize scFixSize4"; newScrollbox.Background = "white"; newScrollbox.Padding = "0px"; newScrollbox.Width = new Unit(100, UnitType.Percentage); newScrollbox.Height = new Unit(100, UnitType.Percentage); newScrollbox.InnerHtml = RenderPreviews(rendering); newTab.Controls.Add(newScrollbox); Tabs.Controls.Add(newTab); } gridPanel = Renderings.Parent as GridPanel; if (gridPanel != null) { gridPanel.SetExtensibleProperty(Renderings, "class", "scDisplayNone"); } // End custom code } else { this.MainGridPanel.Controls.RemoveAt(0); this.DefaultGridPanel.Visible = true; this.TabbedGridPanel.Visible = false; } this.SetOpenPropertiesState(renderingOptions.SelectedItem); }