private void refreshTreeView()
        {
            dataModel.Text = template.GetDataModelAsString();
            foreach (PromptGroup pg in template)
            {
                template.Sort(delegate(PromptGroup p1, PromptGroup p2) { return(p1.OrderKey.CompareTo(p2.OrderKey)); });
                foreach (Prompt p in pg)
                {
                    pg.Sort(delegate(Prompt p1, Prompt p2) { return(p1.OrderKey.CompareTo(p2.OrderKey)); });
                }
            }
            documentTree.BeginUpdate();
            documentTree.Nodes.Clear();
            int topNode = 0;

            try
            {
                topNode = documentTree.TopNode.Index;
            }
            catch { }

            TreeNode templateNode = new TreeNode(template.Name, Icons.SCRIPT, Icons.SCRIPT);

            templateNode.Tag  = BuildObjectIDPack(template, "template", new NodeClicker(TreeViewClickHandler.Template_Click));
            templateNode.Name = template.Name;

            int icon = 0;

            foreach (PromptGroup promptGroup in template)
            {
                icon = Icons.FORM;
                if (promptGroup.Repeatable)
                {
                    icon = Icons.APPLICATION_CASCADE;
                }
                TreeNode promptGroupNode = new TreeNode(promptGroup.Name, icon, icon);
                promptGroupNode.Tag  = BuildObjectIDPack(promptGroup, "promptgroup", new NodeClicker(TreeViewClickHandler.PromptGroup_Click));
                promptGroupNode.Name = promptGroup.Name;

                //Add each prompt
                foreach (Prompt prompt in promptGroup)
                {
                    icon = 0;
                    switch (prompt.Type)
                    {
                    case Prompt.PromptType.TEXT:
                        icon = Icons.TEXT_FIELD;
                        break;

                    case Prompt.PromptType.MULTILINE:
                        //icon = Icons.TEXT_ALIGN_LEFT;
                        icon = Icons.TEXT_FIELD_ADD;
                        break;

                    case Prompt.PromptType.DATE:
                        icon = Icons.DATE;
                        break;

                    case Prompt.PromptType.CHECKBOX:
                        icon = Icons.CHECKBOX;
                        break;

                    default:
                        icon = Icons.TEXT_FIELD;
                        break;
                    }
                    TreeNode promptNode = new TreeNode(prompt.Name, icon, icon);
                    promptNode.Tag  = BuildObjectIDPack(prompt, "prompt", new NodeClicker(TreeViewClickHandler.Prompt_Click));
                    promptNode.Name = prompt.Name;
                    promptGroupNode.Nodes.Add(promptNode);
                }

                templateNode.Nodes.Add(promptGroupNode);
            }
            documentTree.Nodes.Add(templateNode);

            documentTree.ExpandAll();
            try
            {
                documentTree.TopNode = documentTree.Nodes[topNode];
            }
            catch { }
            documentTree.EndUpdate();

            doc.Data = template.Output;
        }
예제 #2
0
        private void refreshTreeView()
        {
            dataModel.Text = template.GetDataModelAsString();
            foreach (PromptGroup pg in template)
            {
                template.SortPromptGroups();
                foreach (AbstractPrompt p in pg)
                {
                    pg.SortPrompts();
                }
            }
            leftTabs_DocumentTree.BeginUpdate();
            leftTabs_DocumentTree.Nodes.Clear();
            int topNode = 0;

            if (leftTabs_DocumentTree.TopNode != null)
            {
                topNode = leftTabs_DocumentTree.TopNode.Index;
            }

            TreeNode templateNode = new TreeNode(template.Name, Icons.SCRIPT, Icons.SCRIPT);

            templateNode.Tag  = BuildObjectIDPack(template, "template", new NodeClicker(TreeViewClickHandler.Template_Click));
            templateNode.Name = template.Name;

            int icon = 0;

            foreach (PromptGroup promptGroup in template)
            {
                icon = Icons.FORM;
                if (promptGroup.Repeatable)
                {
                    icon = Icons.APPLICATION_CASCADE;
                }
                TreeNode promptGroupNode = new TreeNode(promptGroup.Name, icon, icon);
                promptGroupNode.Tag  = BuildObjectIDPack(promptGroup, "promptgroup", new NodeClicker(TreeViewClickHandler.PromptGroup_Click));
                promptGroupNode.Name = promptGroup.Name;

                //Add each prompt
                foreach (AbstractPrompt prompt in promptGroup)
                {
                    icon = prompt.GetIcon();

                    TreeNode promptNode = new TreeNode(prompt.Name, icon, icon);
                    promptNode.Tag  = BuildObjectIDPack(prompt, "prompt", new NodeClicker(TreeViewClickHandler.Prompt_Click));
                    promptNode.Name = prompt.Name;
                    promptGroupNode.Nodes.Add(promptNode);
                }

                templateNode.Nodes.Add(promptGroupNode);
            }
            leftTabs_DocumentTree.Nodes.Add(templateNode);

            leftTabs_DocumentTree.ExpandAll();
            try {
                leftTabs_DocumentTree.TopNode = leftTabs_DocumentTree.Nodes[topNode];
            } catch { }
            leftTabs_DocumentTree.EndUpdate();

            doc.Data = template.Output;
        }