protected override BusinessObjectPropertyTreeNodeInfo[] GetPropertyNodes( BusinessObjectTreeNode parentNode, IBusinessObjectWithIdentity businessObject) { BusinessObjectPropertyTreeNodeInfo[] nodeInfos; if (businessObject is Person) { nodeInfos = new BusinessObjectPropertyTreeNodeInfo[2]; nodeInfos[0] = new BusinessObjectPropertyTreeNodeInfo( "Children", "ToolTip: Children", new IconInfo(null, Unit.Empty, Unit.Empty), (IBusinessObjectReferenceProperty)businessObject.BusinessObjectClass.GetPropertyDefinition("Children")); nodeInfos[1] = new BusinessObjectPropertyTreeNodeInfo( "Jobs", "ToolTip: Jobs", new IconInfo(null, Unit.Empty, Unit.Empty), (IBusinessObjectReferenceProperty)businessObject.BusinessObjectClass.GetPropertyDefinition("Jobs")); } else { nodeInfos = new BusinessObjectPropertyTreeNodeInfo[0]; } return(nodeInfos); }
private void CreateRootTreeNodes() { if (Value != null) { for (int i = 0; i < Value.Count; i++) { IBusinessObjectWithIdentity businessObject = (IBusinessObjectWithIdentity)Value[i]; BusinessObjectTreeNode node = CreateBusinessObjectNode(null, businessObject); _treeView.Nodes.Add(node); if (EnableTopLevelExpander) { if (EnableLookAheadEvaluation) { node.Evaluate(); } else { node.IsEvaluated = false; } } else // Top-Level nodes are expanded { node.EvaluateExpand(); if (EnableLookAheadEvaluation) { node.EvaluateChildren(); } } } } }
protected virtual BusinessObjectPropertyTreeNodeInfo[] GetPropertyNodes( BusinessObjectTreeNode parentNode, IBusinessObjectWithIdentity parentBusinessObject) { ArgumentUtility.CheckNotNull("parentNode", parentNode); ArgumentUtility.CheckNotNull("parentBusinessObject", parentBusinessObject); if (Property == null) { ArrayList referenceListPropertyInfos = new ArrayList(); IBusinessObjectProperty[] properties = parentBusinessObject.BusinessObjectClass.GetPropertyDefinitions(); for (int i = 0; i < properties.Length; i++) { IBusinessObjectReferenceProperty referenceProperty = properties[i] as IBusinessObjectReferenceProperty; if (referenceProperty != null && referenceProperty.IsList && referenceProperty.ReferenceClass is IBusinessObjectClassWithIdentity && referenceProperty.IsAccessible(parentBusinessObject)) { referenceListPropertyInfos.Add(new BusinessObjectPropertyTreeNodeInfo(referenceProperty)); } } return((BusinessObjectPropertyTreeNodeInfo[])referenceListPropertyInfos.ToArray(typeof(BusinessObjectPropertyTreeNodeInfo))); } return(new[] { new BusinessObjectPropertyTreeNodeInfo(Property) }); }
private BusinessObjectTreeNode CreateBusinessObjectNode( IBusinessObjectReferenceProperty property, IBusinessObjectWithIdentity businessObject) { string id = businessObject.UniqueIdentifier; string text = GetText(businessObject); string toolTip = GetToolTip(businessObject); IconInfo icon = GetIcon(businessObject, businessObject.BusinessObjectClass.BusinessObjectProvider); BusinessObjectTreeNode node = new BusinessObjectTreeNode(id, text, toolTip, icon, property, businessObject); node.IsEvaluated = false; return(node); }
private void CreateAndAppendBusinessObjectNodes( BocTreeNode parentNode, IBusinessObjectWithIdentity parentBusinessObject, IBusinessObjectReferenceProperty parentProperty) { var children = GetBusinessObjects(parentNode, parentBusinessObject, parentProperty); for (int i = 0; i < children.Length; i++) { IBusinessObjectWithIdentity childBusinessObject = children[i]; BusinessObjectTreeNode childNode = CreateBusinessObjectNode(parentProperty, childBusinessObject); parentNode.Children.Add(childNode); } }
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 CreateAndAppendBusinessObjectNodeChildren(BusinessObjectTreeNode businessObjectNode) { IBusinessObjectWithIdentity businessObject = businessObjectNode.BusinessObject; BusinessObjectPropertyTreeNodeInfo[] propertyNodeInfos = GetPropertyNodes(businessObjectNode, businessObject); if (propertyNodeInfos.Length > 0) { if (propertyNodeInfos.Length == 1) { CreateAndAppendBusinessObjectNodes(businessObjectNode, businessObject, propertyNodeInfos[0].Property); } else { CreateAndAppendPropertyNodes(businessObjectNode, propertyNodeInfos); } } businessObjectNode.IsEvaluated = true; }
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(BusinessObjectTreeNode node) : base(node) { }
public BocTreeNodeClickEventArgs(BusinessObjectTreeNode node, string[] path) : base(node) { _path = path; }