Ejemplo n.º 1
0
        private static void FillTreeKeys(TreeView treeview, DicomDataSet ds, DicomElement ParentKeyElement, TreeNode ParentNode)
        {
            DicomElement CurrentKeyElement, CurrentKeyChildElement;
            TreeNode     node;
            string       name;
            string       temp = "";

            if (ParentKeyElement == null)
            {
                CurrentKeyElement = ds.GetFirstKey(null, true);
            }
            else
            {
                CurrentKeyElement = ds.GetChildKey(ParentKeyElement);
            }

            // Add the keys to the TreeView
            while (CurrentKeyElement != null)
            {
                // Get key name
                temp = ds.GetKeyValueString(CurrentKeyElement);

                if ((temp != null) || (temp == ""))
                {
                    name = temp;
                }
                else
                {
                    name = "UNKNOWN";
                }

                // Add at root or beneath its parent
                if (ParentNode == null)
                {
                    node = treeview.Nodes.Add(name);
                }
                else
                {
                    node = ParentNode.Nodes.Add(name);
                }

                node.Tag = CurrentKeyElement;

                // Add the current key's non-key child elements
                CurrentKeyChildElement = ds.GetChildElement(CurrentKeyElement, true);
                while (CurrentKeyChildElement != null)
                {
                    FillKeySubTree(treeview, ds, CurrentKeyChildElement, node, false);
                    CurrentKeyChildElement = ds.GetNextElement(CurrentKeyChildElement, true, true);
                }


                // Recursively add child keys
                if (ds.GetChildKey(CurrentKeyElement) != null)
                {
                    FillTreeKeys(treeview, ds, CurrentKeyElement, node);
                }

                CurrentKeyElement = ds.GetNextKey(CurrentKeyElement, true);
            }
        }