ScrewTurn.Wiki.ClientImageBrowser.RenderSubTree C# (CSharp) Method

RenderSubTree() private method

private RenderSubTree ( List items, StringBuilder sb, int &iteration, string parentId ) : void
items List
sb StringBuilder
iteration int
parentId string
return void
        private void RenderSubTree(List<TreeElement> items, StringBuilder sb, ref int iteration, string parentId)
        {
            // This method generates the client markup and JavaScript that contains a tree of images
            // The sub-trees are NOT rendered as nested elements

            StringBuilder temp = new StringBuilder();

            string id = BuildSubTreeContainerID(iteration);

            sb.AppendFormat(@"<div id=""{0}""{1}>", id, (iteration != 0 ? @" style=""display: none;""" : ""));

            if(iteration != 0) {
                sb.AppendFormat(@"<div class=""{0}""><a href=""#"" class=""{0}"" onclick=""javascript:return DisplayDiv('{1}');"" title=""{2}"">{3}</a></div>",
                    upCssClass, parentId, Properties.Messages.UpLevel, upLevelContent + Properties.Messages.UpLevel);
            }

            foreach(TreeElement item in items) {
                iteration++; // Before invoking RenderSubTree recursively!
                // Render item
                RenderItem(item, sb, iteration);
                if(item.SubItems.Count > 0) {
                    RenderSubTree(item.SubItems, temp, ref iteration, id);
                }
            }

            sb.Append("</div>");

            sb.Append(temp.ToString());
        }