示例#1
0
        public static void CreateListItems(List <MetadataNode> Nodes, MetadataIcon[] TypeIcons, Dictionary <string, string> Descriptions, bool bMetaPrefix, List <MetadataListItem> ListItems)
        {
            foreach (MetadataNode Node in Nodes)
            {
                string TagName = Node.TagText;
                if (String.Compare(TagName, "Meta", true) == 0 && Node.ListValue != null)
                {
                    CreateListItems(Node.ListValue, APIDocTool.Icons.MetaMetadataIcons, MetadataLookup.MetaTags, true, ListItems);
                }
                else
                {
                    // Get the list name
                    string ListName = bMetaPrefix ? ("Meta=(" + TagName + ")") : TagName;

                    // Find or create a list item
                    MetadataListItem ListItem = ListItems.FirstOrDefault(x => x.Name == ListName);
                    if (ListItem == null)
                    {
                        ListItem      = new MetadataListItem();
                        ListItem.Icon = APIDocTool.Icons.GetMetadataIcon(TypeIcons, Node.TagText);
                        ListItem.Name = ListName;
                        Descriptions.TryGetValue(Node.TagText, out ListItem.Description);
                        ListItems.Add(ListItem);
                    }

                    // Add all the values
                    if (Node.TokenValue.HasValue)
                    {
                        ListItem.Values.Add(MetadataLookup.GetReferenceName(Node.TokenValue.ToString()));
                    }
                    if (Node.ListValue != null)
                    {
                        ListItem.Values.AddRange(Node.ListValue.Select(x => x.ToString()));
                    }
                }
            }
        }
示例#2
0
        public static void CreateListItems(List<MetadataNode> Nodes, MetadataIcon[] TypeIcons, Dictionary<string, string> Descriptions, bool bMetaPrefix, List<MetadataListItem> ListItems)
        {
            foreach (MetadataNode Node in Nodes)
            {
                string TagName = Node.TagText;
                if (String.Compare(TagName, "Meta", true) == 0 && Node.ListValue != null)
                {
                    CreateListItems(Node.ListValue, APIDocTool.Icons.MetaMetadataIcons, MetadataLookup.MetaTags, true, ListItems);
                }
                else
                {
                    // Get the list name
                    string ListName = bMetaPrefix ? ("Meta=(" + TagName + ")") : TagName;

                    // Find or create a list item
                    MetadataListItem ListItem = ListItems.FirstOrDefault(x => x.Name == ListName);
                    if (ListItem == null)
                    {
                        ListItem = new MetadataListItem();
                        ListItem.Icon = APIDocTool.Icons.GetMetadataIcon(TypeIcons, Node.TagText);
                        ListItem.Name = ListName;
                        Descriptions.TryGetValue(Node.TagText, out ListItem.Description);
                        ListItems.Add(ListItem);
                    }

                    // Add all the values
                    if(Node.TokenValue.HasValue)
                    {
                        ListItem.Values.Add(MetadataLookup.GetReferenceName(Node.TokenValue.ToString()));
                    }
                    if(Node.ListValue != null)
                    {
                        ListItem.Values.AddRange(Node.ListValue.Select(x => x.ToString()));
                    }
                }
            }
        }