Пример #1
0
 private void CreateAndAppendPropertyNodes(
     BusinessObjectTreeNode parentNode,
     BusinessObjectPropertyTreeNodeInfo[] propertyNodeInfos)
 {
     for (int i = 0; i < propertyNodeInfos.Length; i++)
     {
         BusinessObjectPropertyTreeNodeInfo propertyNodeInfo = propertyNodeInfos[i];
         BusinessObjectPropertyTreeNode     propertyNode     = new BusinessObjectPropertyTreeNode(
             propertyNodeInfo.Property.Identifier,
             propertyNodeInfo.Text,
             propertyNodeInfo.ToolTip,
             propertyNodeInfo.Icon,
             propertyNodeInfo.Property);
         propertyNode.IsEvaluated = false;
         parentNode.Children.Add(propertyNode);
     }
 }
Пример #2
0
        private void EvaluateTreeNode(WebTreeNode node)
        {
            ArgumentUtility.CheckNotNullAndType <BocTreeNode> ("node", node);

            if (node.IsEvaluated)
            {
                return;
            }

            BusinessObjectTreeNode         businessObjectNode = node as BusinessObjectTreeNode;
            BusinessObjectPropertyTreeNode propertyNode       = node as BusinessObjectPropertyTreeNode;

            if (businessObjectNode != null)
            {
                CreateAndAppendBusinessObjectNodeChildren(businessObjectNode);
            }
            else if (propertyNode != null)
            {
                CreateAndAppendPropertyNodeChildren(propertyNode);
            }
        }
Пример #3
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);
            }
        }
Пример #4
0
        /// <summary> Fires the <see cref="Click"/> event. </summary>
        protected virtual void OnClick(WebTreeNode node, string[] path)
        {
            BocTreeNodeClickEventHandler handler = (BocTreeNodeClickEventHandler)Events[s_clickEvent];

            if (handler != null)
            {
                ArgumentUtility.CheckNotNullAndType <BocTreeNode> ("node", node);
                BusinessObjectTreeNode         businessObjectNode = node as BusinessObjectTreeNode;
                BusinessObjectPropertyTreeNode propertyNode       = node as BusinessObjectPropertyTreeNode;

                BocTreeNodeClickEventArgs e = null;
                if (businessObjectNode != null)
                {
                    e = new BocTreeNodeClickEventArgs(businessObjectNode, path);
                }
                else if (propertyNode != null)
                {
                    e = new BocTreeNodeClickEventArgs(propertyNode, path);
                }

                handler(this, e);
            }
        }
Пример #5
0
        /// <summary> Fires the <see cref="SelectionChanged"/> event. </summary>
        protected virtual void OnSelectionChanged(WebTreeNode node)
        {
            BocTreeNodeEventHandler handler = (BocTreeNodeEventHandler)Events[s_selectionChangedEvent];

            if (handler != null)
            {
                ArgumentUtility.CheckNotNullAndType <BocTreeNode> ("node", node);
                BusinessObjectTreeNode         businessObjectNode = node as BusinessObjectTreeNode;
                BusinessObjectPropertyTreeNode propertyNode       = node as BusinessObjectPropertyTreeNode;

                BocTreeNodeEventArgs e = null;
                if (businessObjectNode != null)
                {
                    e = new BocTreeNodeEventArgs(businessObjectNode);
                }
                else if (propertyNode != null)
                {
                    e = new BocTreeNodeEventArgs(propertyNode);
                }

                handler(this, e);
            }
        }
Пример #6
0
        private void CreateAndAppendPropertyNodeChildren(BusinessObjectPropertyTreeNode propertyNode)
        {
            if (propertyNode.ParentNode == null)
            {
                throw new ArgumentException(
                          string.Format(
                              "BusinessObjectPropertyTreeNode with ItemID '{0}' has no parent node but property nodes cannot be used as root nodes.",
                              propertyNode.ItemID));
            }
            if (!(propertyNode.ParentNode is BusinessObjectTreeNode))
            {
                throw new ArgumentException(
                          string.Format(
                              "BusinessObjectPropertyTreeNode with ItemID '{0}' has parent node of type '{1}' but property node cannot be children of nodes of type '{2}'.",
                              propertyNode.ItemID,
                              propertyNode.ParentNode.GetType().Name,
                              typeof(BusinessObjectTreeNode).Name));
            }

            BusinessObjectTreeNode parentNode = (BusinessObjectTreeNode)propertyNode.ParentNode;

            CreateAndAppendBusinessObjectNodes(propertyNode, parentNode.BusinessObject, propertyNode.Property);
            propertyNode.IsEvaluated = true;
        }
Пример #7
0
 public BocTreeNodeEventArgs(BusinessObjectPropertyTreeNode node)
     : base(node)
 {
 }
Пример #8
0
 public BocTreeNodeClickEventArgs(BusinessObjectPropertyTreeNode node, string[] path)
     : base(node)
 {
     _path = path;
 }