コード例 #1
0
        /// <summary> Loads the settings of the <paramref name="nodes"/> from <paramref name="nodesState"/>. </summary>
        private void LoadNodesControlStateRecursive(Pair[] nodesState, WebTreeNodeCollection nodes)
        {
            for (int i = 0; i < nodesState.Length; i++)
            {
                Pair     nodeState   = nodesState[i];
                object[] values      = (object[])nodeState.First;
                string   itemID      = (string)values[0];
                bool     isExpanded  = (bool)values[1];
                bool     isEvaluated = (bool)values[2];
                bool     isSelected  = (bool)values[3];
                string   menuID      = (string)values[4];
                string   text        = (string)values[5];
                string   toolTip     = (string)values[6];
                IconInfo icon        = (IconInfo)values[7];
                bool     isBusinessObjectTreeNode = (bool)values[9];

                WebTreeNode node;
                if (isBusinessObjectTreeNode)
                {
                    node = new BusinessObjectTreeNode(itemID, text, toolTip, icon, null, null);
                    string propertyIdentifier = (string)values[8];
                    ((BusinessObjectTreeNode)node).PropertyIdentifier = propertyIdentifier;
                }
                else
                {
                    node = new BusinessObjectPropertyTreeNode(itemID, text, toolTip, icon, null);
                }
                node.IsExpanded  = isExpanded;
                node.IsEvaluated = isEvaluated;
                if (isSelected)
                {
                    node.IsSelected = true;
                }
                node.MenuID = menuID;
                nodes.Add(node);

                LoadNodesControlStateRecursive((Pair[])nodeState.Second, node.Children);
            }
        }