コード例 #1
0
 /// <summary> Saves the settings of the  <paramref name="nodes"/> and returns this control state </summary>
 private Pair[] SaveNodesStateRecursive(WebTreeNodeCollection nodes)
 {
     Pair[] nodesState = new Pair[nodes.Count];
     for (int i = 0; i < nodes.Count; i++)
     {
         WebTreeNode node      = (WebTreeNode)nodes[i];
         Pair        nodeState = new Pair();
         object[]    values    = new object[10];
         values[0] = node.ItemID;
         values[1] = node.IsExpanded;
         values[2] = node.IsEvaluated;
         values[3] = node.IsSelected;
         values[4] = node.MenuID;
         values[5] = node.Text;
         values[6] = node.ToolTip;
         values[7] = node.Icon;
         if (node is BusinessObjectTreeNode)
         {
             values[8] = ((BusinessObjectTreeNode)node).PropertyIdentifier;
             values[9] = true;
         }
         else
         {
             values[9] = false;
         }
         nodeState.First  = values;
         nodeState.Second = SaveNodesStateRecursive(node.Children);
         nodesState[i]    = nodeState;
     }
     return(nodesState);
 }
コード例 #2
0
 private void ApplyNodesControlStateRecursive(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];
         WebTreeNode node      = nodes.Find(itemID);
         if (node != null)
         {
             if (!node.IsEvaluated)
             {
                 bool isEvaluated = (bool)values[2];
                 if (isEvaluated)
                 {
                     node.EvaluateExpand();
                 }
             }
             if (node.IsEvaluated)
             {
                 bool isExpanded = (bool)values[1];
                 node.IsExpanded = isExpanded;
                 if (node.Children.Count == 0)
                 {
                     node.IsExpanded = false;
                 }
             }
             ApplyNodesControlStateRecursive((Pair[])nodeState.Second, node.Children);
         }
     }
 }
コード例 #3
0
 private void ExpandTreeNodes(WebTreeNodeCollection webTreeNodeCollection)
 {
     foreach (WebTreeNode treeNode in webTreeNodeCollection)
     {
         treeNode.EvaluateExpand();
         ExpandTreeNodes(treeNode.Children);
     }
 }
コード例 #4
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);
            }
        }