Example #1
0
        public void Build(string projectName, Type[] types)
        {
            _treeVM = new TreeItemVM(projectName, null);

            foreach (Type referencedType in types)
            {
                TreeItemVM membersTree = GetClassTreeVM(referencedType);
                membersTree.Parent = _treeVM;
                _treeVM.Children.Add(membersTree);
            }
        }
        /// <summary>
        /// This function is the callback used to execute a command when the a menu item is clicked.
        /// See the Initialize method to see how the menu item is associated to this function using
        /// the OleMenuCommandService service and the MenuCommand class.
        /// </summary>
        private void MenuItemCallback(object sender, EventArgs e)
        {
            DTE2          dte           = (DTE2)GetService(typeof(SDTE));
            ProjectLoader projectLoader = new ProjectLoader(dte);

            IViewBuilder treeNodeBuilder = new TreeNodeBuilder();

            treeNodeBuilder.Build(dte.ActiveDocument.ProjectItem.ContainingProject.Name, WizardResources.ReflectedTypes);
            TreeItemVM tree = treeNodeBuilder.GetTreeVM();

            WizardResources.MainWPF = new MainWindow();
            var scopeVM = new ScopeFormVM(tree);

            WizardResources.MainWPF.DataContext = new MainWindowVM(scopeVM);
            WizardResources.MainWPF.Show();
        }
Example #3
0
        private static TreeItemVM GetClassTreeVM(Type referencedType)
        {
            TreeItemVM membersTreeNode = new TreeItemVM(referencedType.Name, null);

            if (referencedType.IsClass)
            {
                MethodInfo[] methods = referencedType.GetMethods(BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Public | BindingFlags.DeclaredOnly);
                foreach (MethodInfo method in methods)
                {
                    membersTreeNode.Children.Add(new TreeItemVM(method.Name, membersTreeNode, method));
                }
            }
            else
            {
                Type[] types = referencedType.GetNestedTypes(BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Public | BindingFlags.DeclaredOnly);
                foreach (Type type in types)
                {
                    membersTreeNode.Children.Add(new TreeItemVM(type.Name, membersTreeNode));
                }
            }
            return(membersTreeNode);
        }