protected void AddChildToIntermediate(BrowserTreeNode childNode, IntermediateNodeType intNodeType, int intIndex) { // Look for the intermediate node with the right type bool found = false; foreach (BrowserTreeNode intNode in Nodes) { if (intNode is IntermediateTreeNode && ((IntermediateTreeNode)intNode).NodeType == intNodeType) { intNode.AddLogicalNode(childNode, ++intIndex); found = true; break; } } // Add a new intermediate node if (!found) { IntermediateTreeNode intNode = new IntermediateTreeNode(intNodeType, this); intNode._useIntermediates = _useIntermediates; intNode.SetPresInfo(intNodeType.PresentationInfo); ((TreeListView)TreeView).Add(Nodes, intNode); intNode.AddLogicalNode(childNode, ++intIndex); _hasChildIntNodes = true; } }
internal IntermediateTreeNode(IntermediateNodeType nodeType, BrowserTreeNode logicalParent) : base() { _nodeType = nodeType; _logicalParent = logicalParent; // These are always setup with their children added _childrenAdded = true; PostConstructor(); }
internal IntermediateTreeNode(IntermediateNodeType nodeType, BrowserTreeNode logicalParent) : base() { _nodeType = nodeType; _logicalParent = logicalParent; // These are always setup with their children added _childrenAdded = true; PostConstructor(); }
internal TypeTreeNode(Type type, bool nestedType) : base(type) { _typeKindName = ObjectInfo.GetTypeKind(type); if (!nestedType) { SetPresInfo(_typeKindName); int inType = 0; if (type.IsEnum) { inType = IntermediateNodeType.INTNODE_ENUM; } else if (type.IsClass) { inType = IntermediateNodeType.INTNODE_CLASS; } else if (type.IsInterface) { inType = IntermediateNodeType.INTNODE_INTERFACE; } else if (type.IsValueType) { inType = IntermediateNodeType.INTNODE_STRUCT; } else if (type.IsPrimitive) { inType = IntermediateNodeType.INTNODE_CLASS; } else if (type.Equals(typeof(Enum))) { inType = IntermediateNodeType.INTNODE_CLASS; } IntermediateNodeTypes = new ArrayList(); IntermediateNodeTypes.Add (IntermediateNodeType. GetNodeType(inType)); } _type = type; // We allow classes to be dragged _isDragSource = true; _onDesignSurface = true; PostConstructor(); }
// Allocates the correct type of node protected override BrowserTreeNode AllocateChildNode(Object obj) { // For inherited interfaces if (obj is ComInterfaceInfo) { BrowserTreeNode node = new ComTypeTreeNode((BasicInfo)obj); node.IntermediateNodeTypes = new ArrayList(); node.IntermediateNodeTypes.Add (IntermediateNodeType. GetNodeType(IntermediateNodeType.INTNODE_COM_BASEINT)); return(node); } return(new ComMemberTreeNode((BasicInfo)obj)); }
protected void AddChildToIntermediate(BrowserTreeNode childNode, IntermediateNodeType intNodeType, int intIndex) { // Look for the intermediate node with the right type bool found = false; foreach (BrowserTreeNode intNode in Nodes) { if (intNode is IntermediateTreeNode && ((IntermediateTreeNode)intNode).NodeType == intNodeType) { intNode.AddLogicalNode(childNode, ++intIndex); found = true; break; } } // Add a new intermediate node if (!found) { IntermediateTreeNode intNode = new IntermediateTreeNode(intNodeType, this); intNode._useIntermediates = _useIntermediates; intNode.SetPresInfo(intNodeType.PresentationInfo); ((TreeListView)TreeView).Add(Nodes, intNode); intNode.AddLogicalNode(childNode, ++intIndex); _hasChildIntNodes = true; } }