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); } }
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); } }
/// <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); } }
/// <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); } }
/// <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); } }
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; }
public BocTreeNodeEventArgs(BusinessObjectPropertyTreeNode node) : base(node) { }
public BocTreeNodeClickEventArgs(BusinessObjectPropertyTreeNode node, string[] path) : base(node) { _path = path; }