internal static TreeNode AddChildNode(TreeNode parentNode, string name)
        {
            var childNode = new TreeNode(name);

            childNode.Tag  = new Dictionary <string, string>();
            childNode.Name = childNode.Text.Replace(" ", "");
            if (name == "#comment")
            {
                childNode.ForeColor = System.Drawing.Color.Gray;
            }
            if (parentNode != null)
            {
                var parentCap = new FetchNodeCapabilities(parentNode);
                var nodeIndex = parentCap.IndexOfChild(name);
                var pos       = 0;
                while (pos < parentNode.Nodes.Count && nodeIndex >= parentCap.IndexOfChild(parentNode.Nodes[pos].Name))
                {
                    pos++;
                }
                if (pos == parentNode.Nodes.Count)
                {
                    parentNode.Nodes.Add(childNode);
                }
                else
                {
                    parentNode.Nodes.Insert(pos, childNode);
                }
            }
            return(childNode);
        }
        /// <summary>Adds a context menu to a TreeNode control</summary>
        /// <param name="node">TreeNode where to add the context menu</param>
        /// <param name="form">Current application form</param>
        public static void AddContextMenu(TreeNode node, FetchXmlBuilder form)
        {
            form.addMenu.Items.Clear();

            var nodecapabilities = new FetchNodeCapabilities(node);
            foreach (var childcapability in nodecapabilities.ChildTypes)
            {
                if (childcapability.Name == "-")
                {
                    form.addMenu.Items.Add(new ToolStripSeparator());
                }
                else if (childcapability.Multiple || !node.Nodes.ContainsKey(childcapability.Name))
                {
                    var additem = form.addMenu.Items.Add(childcapability.Name);
                    additem.Tag = childcapability.Name;
                }
            }
            if (form.addMenu.Items.Count == 0)
            {
                var dummy = form.addMenu.Items.Add("nothing to add");
                dummy.Enabled = false;
            }

            form.selectAttributesToolStripMenuItem.Visible = nodecapabilities.Attributes;
            form.deleteToolStripMenuItem.Enabled = nodecapabilities.Delete;
            form.commentToolStripMenuItem.Enabled = nodecapabilities.Comment;
            form.uncommentToolStripMenuItem.Enabled = nodecapabilities.Uncomment;

            node.ContextMenuStrip = form.nodeMenu;
        }
        /// <summary>Adds a context menu to a TreeNode control</summary>
        /// <param name="node">TreeNode where to add the context menu</param>
        /// <param name="form">Current application form</param>
        public static void AddContextMenu(TreeNode node, FetchXmlBuilder form)
        {
            form.addMenu.Items.Clear();

            var nodecapabilities = new FetchNodeCapabilities(node);

            foreach (var childcapability in nodecapabilities.ChildTypes)
            {
                if (childcapability.Name == "-")
                {
                    form.addMenu.Items.Add(new ToolStripSeparator());
                }
                else if (childcapability.Multiple || !node.Nodes.ContainsKey(childcapability.Name))
                {
                    var additem = form.addMenu.Items.Add(childcapability.Name);
                    additem.Tag = childcapability.Name;
                }
            }
            if (form.addMenu.Items.Count == 0)
            {
                var dummy = form.addMenu.Items.Add("nothing to add");
                dummy.Enabled = false;
            }

            form.selectAttributesToolStripMenuItem.Visible = nodecapabilities.Attributes;
            form.deleteToolStripMenuItem.Enabled           = nodecapabilities.Delete;
            form.commentToolStripMenuItem.Enabled          = nodecapabilities.Comment;
            form.uncommentToolStripMenuItem.Enabled        = nodecapabilities.Uncomment;

            node.ContextMenuStrip = form.nodeMenu;
        }
示例#4
0
        /// <summary>Adds a context menu to a TreeNode control</summary>
        /// <param name="node">TreeNode where to add the context menu</param>
        /// <param name="tree">Current application form</param>
        public static void AddContextMenu(TreeNode node, TreeBuilderControl tree)
        {
            tree.addMenu.Items.Clear();
            var tmplbl = tree.lblQAExpander;

            tree.gbQuickActions.Controls.Clear();
            tree.gbQuickActions.Controls.Add(tmplbl);
            if (node == null && tree.tvFetch.Nodes.Count > 0)
            {
                node = tree.tvFetch.Nodes[0];
            }
            if (node != null)
            {
                var nodecapabilities = new FetchNodeCapabilities(node.Name, true);

                if (nodecapabilities.Multiple)
                {
                    tree.addOneMoreToolStripMenuItem.Text = "More " + nodecapabilities.Name;
                    tree.addOneMoreToolStripMenuItem.Tag  = "MORE-" + nodecapabilities.Name;
                    AddLinkFromCapability(tree, "+" + nodecapabilities.Name, "MORE-" + nodecapabilities.Name);
                }
                if (nodecapabilities.Attributes && tree.selectAttributesToolStripMenuItem.Enabled)
                {
                    AddLinkFromCapability(tree, "Select Attributes", "SelectAttributes");
                }
                foreach (var childcapability in nodecapabilities.ChildTypes)
                {
                    if (childcapability.Name == "-")
                    {
                        tree.addMenu.Items.Add(new ToolStripSeparator());
                    }
                    else if (childcapability.Multiple || !node.Nodes.ContainsKey(childcapability.Name))
                    {
                        AddMenuFromCapability(tree.addMenu, childcapability.Name);
                        AddLinkFromCapability(tree, childcapability.Name, null, childcapability.Name == "#comment");
                    }
                }
                if (tree.addMenu.Items.Count == 0)
                {
                    var dummy = tree.addMenu.Items.Add("nothing to add");
                    dummy.Enabled = false;
                }

                tree.addOneMoreToolStripMenuItem.Visible       = nodecapabilities.Multiple;
                tree.selectAttributesToolStripMenuItem.Visible = nodecapabilities.Attributes;
                tree.deleteToolStripMenuItem.Enabled           = nodecapabilities.Delete;
                tree.commentToolStripMenuItem.Enabled          = nodecapabilities.Comment;
                tree.uncommentToolStripMenuItem.Enabled        = nodecapabilities.Uncomment;

                node.ContextMenuStrip = tree.nodeMenu;
            }
        }
        /// <summary>Adds a context menu to a TreeNode control</summary>
        /// <param name="node">TreeNode where to add the context menu</param>
        /// <param name="form">Current application form</param>
        public static void AddContextMenu(TreeNode node, FetchXmlBuilder form)
        {
            form.addMenu.Items.Clear();
            form.menuControl.Items.Clear();
            if (node == null && form.tvFetch.Nodes.Count > 0)
            {
                node = form.tvFetch.Nodes[0];
            }
            if (node != null)
            {
                var nodecapabilities = new FetchNodeCapabilities(node);

                foreach (var childcapability in nodecapabilities.ChildTypes)
                {
                    if (childcapability.Name == "-")
                    {
                        form.addMenu.Items.Add(new ToolStripSeparator());
                        //form.menuControl.Items.Add(new ToolStripSeparator());
                    }
                    else if (childcapability.Multiple || !node.Nodes.ContainsKey(childcapability.Name))
                    {
                        AddMenuFromCapability(form.addMenu, childcapability.Name);
                        AddMenuFromCapability(form.menuControl, childcapability.Name, childcapability.Name == "#comment", "Add ");
                    }
                }
                if (form.addMenu.Items.Count == 0)
                {
                    var dummy = form.addMenu.Items.Add("nothing to add");
                    dummy.Enabled = false;
                }

                form.selectAttributesToolStripMenuItem.Visible = nodecapabilities.Attributes;
                form.deleteToolStripMenuItem.Enabled           = nodecapabilities.Delete;
                form.commentToolStripMenuItem.Enabled          = nodecapabilities.Comment;
                form.uncommentToolStripMenuItem.Enabled        = nodecapabilities.Uncomment;

                if (nodecapabilities.Attributes && form.selectAttributesToolStripMenuItem.Enabled)
                {
                    var selattr = new ToolStripMenuItem("Select Attributes");
                    selattr.Tag = "SelectAttributes";
                    form.menuControl.Items.Insert(0, selattr);
                }

                node.ContextMenuStrip = form.nodeMenu;
            }
        }
        /// <summary>Adds a context menu to a TreeNode control</summary>
        /// <param name="node">TreeNode where to add the context menu</param>
        /// <param name="form">Current application form</param>
        public static void AddContextMenu(TreeNode node, FetchXmlBuilder form)
        {
            var collec = (Dictionary <string, string>)node.Tag;

            //HideAllContextMenuItems(form.nodeMenu);
            //form.deleteToolStripMenuItem.Visible = true;

            form.addMenu.Items.Clear();

            var nodecapabilities = new FetchNodeCapabilities(node);

            foreach (var childcapability in nodecapabilities.ChildTypes)
            {
                if (childcapability.Name == "-")
                {
                    form.addMenu.Items.Add(new ToolStripSeparator());
                }
                else if (childcapability.Multiple || !node.Nodes.ContainsKey(childcapability.Name))
                {
                    var additem = form.addMenu.Items.Add(childcapability.Name);
                    additem.Tag = childcapability.Name;
                }
            }
            if (form.addMenu.Items.Count == 0)
            {
                var dummy = form.addMenu.Items.Add("nothing to add");
                dummy.Enabled = false;
            }
            var cutcopy = true;

            form.deleteToolStripMenuItem.Enabled = nodecapabilities.Delete;
            form.cutToolStripMenuItem.Enabled    = cutcopy;
            form.copyToolStripMenuItem.Enabled   = cutcopy;
            form.pasteToolStripMenuItem.Enabled  = form.clipboard.IsValidForPaste(node);

            node.ContextMenuStrip = form.nodeMenu;
        }
 internal static TreeNode AddChildNode(TreeNode parentNode, string name)
 {
     var childNode = new TreeNode(name);
     childNode.Tag = new Dictionary<string, string>();
     childNode.Name = childNode.Text.Replace(" ", "");
     if (parentNode != null)
     {
         var parentCap = new FetchNodeCapabilities(parentNode);
         var nodeIndex = parentCap.IndexOfChild(name);
         var pos = 0;
         while (pos < parentNode.Nodes.Count && nodeIndex >= parentCap.IndexOfChild(parentNode.Nodes[pos].Name))
         {
             pos++;
         }
         if (pos == parentNode.Nodes.Count)
         {
             parentNode.Nodes.Add(childNode);
         }
         else
         {
             parentNode.Nodes.Insert(pos, childNode);
         }
     }
     return childNode;
 }
        /// <summary>Adds a context menu to a TreeNode control</summary>
        /// <param name="node">TreeNode where to add the context menu</param>
        /// <param name="form">Current application form</param>
        public static void AddContextMenu(TreeNode node, FetchXmlBuilder form)
        {
            var collec = (Dictionary<string, string>)node.Tag;

            //HideAllContextMenuItems(form.nodeMenu);
            //form.deleteToolStripMenuItem.Visible = true;

            form.addMenu.Items.Clear();

            var nodecapabilities = new FetchNodeCapabilities(node);
            foreach (var childcapability in nodecapabilities.ChildTypes)
            {
                if (childcapability.Name == "-")
                {
                    form.addMenu.Items.Add(new ToolStripSeparator());
                }
                else if (childcapability.Multiple || !node.Nodes.ContainsKey(childcapability.Name))
                {
                    var additem = form.addMenu.Items.Add(childcapability.Name);
                    additem.Tag = childcapability.Name;
                }
            }
            if (form.addMenu.Items.Count == 0)
            {
                var dummy = form.addMenu.Items.Add("nothing to add");
                dummy.Enabled = false;
            }
            var cutcopy = true;

            form.deleteToolStripMenuItem.Enabled = nodecapabilities.Delete;
            form.cutToolStripMenuItem.Enabled = cutcopy;
            form.copyToolStripMenuItem.Enabled = cutcopy;
            form.pasteToolStripMenuItem.Enabled = form.clipboard.IsValidForPaste(node);

            node.ContextMenuStrip = form.nodeMenu;
        }