void treeList_VirtualTreeGetCellValue(object sender, VirtualTreeGetCellValueInfo args)
        {
            CodeExampleGroup group = args.Node as CodeExampleGroup;

            if (group != null)
            {
                args.CellData = group.Name;
            }

            CodeExample example = args.Node as CodeExample;

            if (example != null)
            {
                args.CellData = example.RegionName;
            }
        }
        public static List <CodeExampleGroup> FindExamples(string examplePath, Dictionary <string, FileInfo> examplesCS, Dictionary <string, FileInfo> examplesVB)
        {
            List <CodeExampleGroup> result = new List <CodeExampleGroup>();

            Dictionary <string, FileInfo> current = null;
            ExampleFinder csExampleFinder         = new ExampleFinderCSharp();
            ExampleFinder vbExampleFinder         = new ExampleFinderVB();

            current = (examplesCS.Count != 0) ? examplesCS : examplesVB;

            foreach (KeyValuePair <string, FileInfo> sourceCodeItem in current)
            {
                string key = sourceCodeItem.Key;

                List <CodeExample> foundExamplesCS = new List <CodeExample>();
                if (examplesCS.Count != 0)
                {
                    foundExamplesCS = csExampleFinder.Process(examplesCS[key]);
                }

                List <CodeExample> foundExamplesVB = new List <CodeExample>();
                if (examplesVB.Count != 0)
                {
                    foundExamplesVB = vbExampleFinder.Process(examplesVB[key]);
                }

                CodeExampleCollection mergedExamplesCollection = new CodeExampleCollection();

                mergedExamplesCollection.Merge(foundExamplesCS);
                mergedExamplesCollection.Merge(foundExamplesVB);

                if (mergedExamplesCollection.Count == 0)
                {
                    continue;
                }

                CodeExampleGroup group = new CodeExampleGroup()
                {
                    Name     = mergedExamplesCollection[0].HumanReadableGroupName,
                    Examples = mergedExamplesCollection
                };
                result.Add(group);
            }
            return(result);
        }
 void treeList_VirtualTreeGetChildNodes(object sender, VirtualTreeGetChildNodesInfo args)
 {
     if (treeListRootNodeLoading)
     {
         args.Children           = examples;
         treeListRootNodeLoading = false;
     }
     else
     {
         if (args.Node == null)
         {
             return;
         }
         CodeExampleGroup group = args.Node as CodeExampleGroup;
         if (group != null)
         {
             args.Children = group.Examples;
         }
     }
 }
        public static List <CodeExampleGroup> FindExamples(string examplePath, Dictionary <string, FileInfo> examplesCS, Dictionary <string, FileInfo> examplesVB)
        {
            List <CodeExampleGroup> result = new List <CodeExampleGroup>();

            Dictionary <string, FileInfo> current = null;
            ExampleFinder csExampleFinder;
            ExampleFinder vbExampleFinder;

            if (examplesCS.Count == 0)
            {
                current         = examplesVB;
                csExampleFinder = null;
                vbExampleFinder = new ExampleFinderVB();
            }
            else if (examplesVB.Count == 0)
            {
                current         = examplesCS;
                csExampleFinder = new ExampleFinderCSharp();
                vbExampleFinder = null;
            }
            else
            {
                current         = examplesCS;
                csExampleFinder = new ExampleFinderCSharp();
                vbExampleFinder = new ExampleFinderVB();
            }

            foreach (KeyValuePair <string, FileInfo> sourceCodeItem in current)
            {
                string key = sourceCodeItem.Key;

                List <CodeExample> findedExamplesCS = new List <CodeExample>();
                if (csExampleFinder != null)
                {
                    findedExamplesCS = csExampleFinder.Process(examplesCS[key]);
                }

                List <CodeExample> findedExamplesVB = new List <CodeExample>();
                if (vbExampleFinder != null)
                {
                    findedExamplesVB = vbExampleFinder.Process(examplesVB[key]);
                }

                List <CodeExample> mergedExamples = new List <CodeExample>();

                if (findedExamplesCS.Count != 0 && findedExamplesVB.Count == 0)
                {
                    mergedExamples = findedExamplesCS;
                }
                else if (findedExamplesCS.Count == 0 && findedExamplesVB.Count != 0)
                {
                    mergedExamples = findedExamplesVB;
                }
                else if ((findedExamplesCS.Count == findedExamplesVB.Count))
                {
                    mergedExamples = MergeExamples(findedExamplesCS, findedExamplesVB);
                }

                if (mergedExamples.Count == 0)
                {
                    continue;
                }

                CodeExampleGroup group = new CodeExampleGroup()
                {
                    Name     = mergedExamples[0].HumanReadableGroupName,
                    Examples = mergedExamples
                };
                result.Add(group);
            }
            return(result);
        }