private void AddRegions(TreeNodeCollection tree, MemberList members) { foreach (MemberModel member in members) { MemberTreeNode node = new MemberTreeNode(member, ICON_PACKAGE); tree.Add(node); } }
private void AddRegionsExtended(TreeNodeCollection tree, FileModel aFile) { int endRegion = 0; int index = 0; MemberModel region = null; MemberList regions = aFile.Regions; int count = regions.Count; for (index = 0; index < count; ++index) { region = regions[index]; MemberTreeNode node = new MemberTreeNode(region, ICON_PACKAGE); tree.Add(node); endRegion = (index + 1 < count) ? regions[index + 1].LineFrom : int.MaxValue; MemberList regionMembers = new MemberList(); foreach (MemberModel import in aFile.Imports) { if (import.LineFrom >= region.LineFrom && import.LineTo <= endRegion) { regionMembers.Add(import); } } foreach (MemberModel fileMember in aFile.Members) { if (fileMember.LineFrom >= region.LineFrom && fileMember.LineTo <= endRegion) { regionMembers.Add(fileMember); } } foreach (ClassModel cls in aFile.Classes) { if (cls.LineFrom <= region.LineFrom) { foreach (MemberModel clsMember in cls.Members) { if (clsMember.LineFrom >= region.LineFrom && clsMember.LineTo <= endRegion) { regionMembers.Add(clsMember); } } } else if (cls.LineFrom >= region.LineFrom && cls.LineTo <= endRegion) { regionMembers.Add(cls); } } AddMembers(node.Nodes, regionMembers); } }
/// <summary> /// Add tree nodes following the user defined members presentation /// </summary> /// <param name="tree"></param> /// <param name="members"></param> static public void AddMembers(TreeNodeCollection tree, MemberList members) { TreeNodeCollection nodes = tree; MemberTreeNode node = null; MemberModel prevMember = null; int img; foreach (MemberModel member in members) { if ((member.Flags & FlagType.Constant) > 0) { img = ((member.Access & Visibility.Private) > 0) ? ICON_PRIVATE_CONST : ((member.Access & Visibility.Protected) > 0) ? ICON_PROTECTED_CONST : ICON_CONST; node = new MemberTreeNode(member, img); nodes.Add(node); } else if ((member.Flags & FlagType.Variable) > 0) { img = ((member.Access & Visibility.Private) > 0) ? ICON_PRIVATE_VAR : ((member.Access & Visibility.Protected) > 0) ? ICON_PROTECTED_VAR : ICON_VAR; node = new MemberTreeNode(member, img); nodes.Add(node); } else if ((member.Flags & (FlagType.Getter | FlagType.Setter)) > 0) { if (prevMember != null && prevMember.Name == member.Name) // "collapse" properties { continue; } img = ((member.Access & Visibility.Private) > 0) ? ICON_PRIVATE_PROPERTY : ((member.Access & Visibility.Protected) > 0) ? ICON_PROTECTED_PROPERTY : ICON_PROPERTY; node = new MemberTreeNode(member, img); nodes.Add(node); } else if ((member.Flags & FlagType.Function) > 0) { img = ((member.Access & Visibility.Private) > 0) ? ICON_PRIVATE_FUNCTION : ((member.Access & Visibility.Protected) > 0) ? ICON_PROTECTED_FUNCTION : ICON_FUNCTION; node = new MemberTreeNode(member, img); nodes.Add(node); } prevMember = member; } }
private void AddRegionsExtended(TreeNodeCollection tree, FileModel aFile) { int endRegion = 0; int index = 0; MemberModel region = null; MemberList regions = aFile.Regions; int count = regions.Count; for (index = 0; index < count; ++index) { region = regions[index]; MemberTreeNode node = new MemberTreeNode(region, ICON_PACKAGE); tree.Add(node); endRegion = (index + 1 < count) ? regions[index + 1].LineFrom : int.MaxValue; MemberList regionMembers = new MemberList(); foreach (MemberModel import in aFile.Imports) { if (import.LineFrom >= region.LineFrom && import.LineTo <= endRegion) { regionMembers.Add(import); } } foreach (MemberModel fileMember in aFile.Members) { if (fileMember.LineFrom >= region.LineFrom && fileMember.LineTo <= endRegion) { regionMembers.Add(fileMember); } } foreach (ClassModel cls in aFile.Classes) { if (cls.LineFrom <= region.LineFrom) { foreach (MemberModel clsMember in cls.Members) { if (clsMember.LineFrom >= region.LineFrom && clsMember.LineTo <= endRegion) { regionMembers.Add(clsMember); } } } else if (cls.LineFrom >= region.LineFrom && cls.LineTo <= endRegion) { regionMembers.Add(cls); } } AddMembers(node.Nodes, regionMembers); } }
private void AddRegions(TreeNodeCollection tree, MemberList members) { foreach (MemberModel member in members) { MemberTreeNode node = new MemberTreeNode(member, ICON_PACKAGE); tree.Add(node); } }
public static void AddMembersGrouped(TreeNodeCollection tree, MemberList members) { FlagType[] typePriority = new FlagType[] { FlagType.Constructor, FlagType.Function, FlagType.Getter | FlagType.Setter, FlagType.Variable, FlagType.Constant }; Visibility[] visibilityPriority = new Visibility[] { Visibility.Internal, Visibility.Private, Visibility.Protected, Visibility.Public }; Dictionary<FlagType, List<MemberModel>> typeGroups = new Dictionary<FlagType, List<MemberModel>>(); FlagType type; List<MemberModel> groupList; MemberTreeNode node = null; foreach (MemberModel member in members) { if (node != null && node.Text == member.ToString()) continue; // member type if ((member.Flags & FlagType.Constant) > 0) type = FlagType.Constant; else if ((member.Flags & FlagType.Variable) > 0) type = FlagType.Variable; else if ((member.Flags & (FlagType.Getter | FlagType.Setter)) > 0) type = (FlagType.Getter | FlagType.Setter); else if ((member.Flags & FlagType.Constructor) > 0) type = FlagType.Constructor; else type = FlagType.Function; // group if (!typeGroups.ContainsKey(type)) { groupList = new List<MemberModel>(); typeGroups.Add(type, groupList); } else groupList = typeGroups[type]; groupList.Add(member); } MemberModel prevMember = null; for (int i = 0; i < typePriority.Length; i++) { if (typeGroups.ContainsKey(typePriority[i])) { groupList = typeGroups[typePriority[i]]; if (groupList.Count == 0) continue; groupList.Sort(); TreeNode groupNode = new TreeNode(typePriority[i].ToString(), ICON_FOLDER_CLOSED, ICON_FOLDER_OPEN); int img; node = null; foreach (MemberModel member in groupList) { if (prevMember != null && prevMember.Name == member.Name) continue; img = GetIcon(member.Flags, member.Access); node = new MemberTreeNode(member, img); groupNode.Nodes.Add(node); } if (typePriority[i] != FlagType.Constructor) groupNode.Expand(); tree.Add(groupNode); } } }
/// <summary> /// Add tree nodes following the user defined members presentation /// </summary> /// <param name="tree"></param> /// <param name="members"></param> public static void AddMembers(TreeNodeCollection tree, MemberList members) { TreeNodeCollection nodes = tree; MemberTreeNode node = null; MemberModel prevMember = null; int img; foreach (MemberModel member in members) { img = GetIcon(member.Flags, member.Access); node = new MemberTreeNode(member, img); nodes.Add(node); prevMember = member; } }
static public void AddMembersGrouped(TreeNodeCollection tree, MemberList members) { FlagType[] typePriority = new FlagType[] { FlagType.Constructor, FlagType.Function, FlagType.Getter | FlagType.Setter, FlagType.Variable, FlagType.Constant }; Dictionary<FlagType, List<MemberModel>> typeGroups = new Dictionary<FlagType, List<MemberModel>>(); FlagType type; List<MemberModel> groupList; MemberTreeNode node = null; foreach (MemberModel member in members) { // member type if ((member.Flags & FlagType.Constant) > 0) type = FlagType.Constant; else if ((member.Flags & FlagType.Variable) > 0) type = FlagType.Variable; else if ((member.Flags & (FlagType.Getter | FlagType.Setter)) > 0) type = (FlagType.Getter | FlagType.Setter); else if ((member.Flags & FlagType.Constructor) > 0) type = FlagType.Constructor; else type = FlagType.Function; // group if (!typeGroups.TryGetValue(type, out groupList)) { groupList = new List<MemberModel>(); typeGroups.Add(type, groupList); } groupList.Add(member); } for (int i = 0, count = typePriority.Length; i < count; i++) { type = typePriority[i]; if (typeGroups.TryGetValue(type, out groupList)) { if (groupList.Count == 0) continue; groupList.Sort(); TreeNode groupNode = new TreeNode(type.ToString(), ICON_FOLDER_CLOSED, ICON_FOLDER_OPEN); int img; foreach (MemberModel member in groupList) { img = GetIcon(member.Flags, member.Access); node = new MemberTreeNode(member, img); groupNode.Nodes.Add(node); } if (type != FlagType.Constructor) groupNode.Expand(); tree.Add(groupNode); } } }
/// <summary> /// Add tree nodes following the user defined members presentation /// </summary> /// <param name="tree"></param> /// <param name="members"></param> static public void AddMembers(TreeNodeCollection tree, MemberList members) { TreeNodeCollection nodes = tree; MemberTreeNode node = null; MemberModel prevMember = null; int img; foreach (MemberModel member in members) { if ((member.Flags & FlagType.Constant) > 0) { img = ((member.Access & Visibility.Private) > 0) ? ICON_PRIVATE_CONST : ((member.Access & Visibility.Protected) > 0) ? ICON_PROTECTED_CONST : ICON_CONST; node = new MemberTreeNode(member, img); nodes.Add(node); } else if ((member.Flags & FlagType.Variable) > 0) { img = ((member.Access & Visibility.Private) > 0) ? ICON_PRIVATE_VAR : ((member.Access & Visibility.Protected) > 0) ? ICON_PROTECTED_VAR : ICON_VAR; node = new MemberTreeNode(member, img); nodes.Add(node); } else if ((member.Flags & (FlagType.Getter | FlagType.Setter)) > 0) { if (prevMember != null && prevMember.Name == member.Name) // "collapse" properties continue; img = ((member.Access & Visibility.Private) > 0) ? ICON_PRIVATE_PROPERTY : ((member.Access & Visibility.Protected) > 0) ? ICON_PROTECTED_PROPERTY : ICON_PROPERTY; node = new MemberTreeNode(member, img); nodes.Add(node); } else if ((member.Flags & FlagType.Function) > 0) { img = ((member.Access & Visibility.Private) > 0) ? ICON_PRIVATE_FUNCTION : ((member.Access & Visibility.Protected) > 0) ? ICON_PROTECTED_FUNCTION : ICON_FUNCTION; node = new MemberTreeNode(member, img); nodes.Add(node); } prevMember = member; } }
static public void AddMembersGrouped(TreeNodeCollection tree, MemberList members) { FlagType[] typePriority = new FlagType[] { FlagType.Constructor, FlagType.Function, FlagType.Getter | FlagType.Setter, FlagType.Variable, FlagType.Constant }; Visibility[] visibilityPriority = new Visibility[] { Visibility.Internal, Visibility.Private, Visibility.Protected, Visibility.Public }; Dictionary <FlagType, List <MemberModel> > typeGroups = new Dictionary <FlagType, List <MemberModel> >(); FlagType type; List <MemberModel> groupList; MemberTreeNode node = null; foreach (MemberModel member in members) { if (node != null && node.Text == member.ToString()) { continue; } // member type if ((member.Flags & FlagType.Constant) > 0) { type = FlagType.Constant; } else if ((member.Flags & FlagType.Variable) > 0) { type = FlagType.Variable; } else if ((member.Flags & (FlagType.Getter | FlagType.Setter)) > 0) { type = (FlagType.Getter | FlagType.Setter); } else if ((member.Flags & FlagType.Constructor) > 0) { type = FlagType.Constructor; } else { type = FlagType.Function; } // group if (!typeGroups.ContainsKey(type)) { groupList = new List <MemberModel>(); typeGroups.Add(type, groupList); } else { groupList = typeGroups[type]; } groupList.Add(member); } MemberModel prevMember = null; for (int i = 0; i < typePriority.Length; i++) { if (typeGroups.ContainsKey(typePriority[i])) { groupList = typeGroups[typePriority[i]]; if (groupList.Count == 0) { continue; } groupList.Sort(); TreeNode groupNode = new TreeNode(typePriority[i].ToString(), ICON_FOLDER_CLOSED, ICON_FOLDER_OPEN); int img; node = null; foreach (MemberModel member in groupList) { if (prevMember != null && prevMember.Name == member.Name) { continue; } img = GetMemberIcon(member.Flags, member.Access); node = new MemberTreeNode(member, img); groupNode.Nodes.Add(node); } if (typePriority[i] != FlagType.Constructor) { groupNode.Expand(); } tree.Add(groupNode); } } }