Exemple #1
0
        private void GenerateFile(string fileName)
        {
            var sourceName = SolutionExplorerExtensions.SelectedItemPath;
            var folder     = Path.GetDirectoryName(sourceName);
            var targetName = Path.Combine(folder, fileName);

            if (File.Exists(targetName))
            {
                ShowMessage("Duplicate File", "The file name specified already exits.");
                return;
            }

            var projectFullName = VSPackage.DteInstance.Solution.FindProjectItem(sourceName).ContainingProject.FullName;

            var parameterizationProject = new ParameterizationProject(projectFullName);

            if (parameterizationProject.Initialize())
            {
                var parameters = ParseParameters(sourceName);
                CreateSetXml(parameters, targetName);
                var parent = VSPackage.DteInstance.Solution.FindProjectItem(sourceName);
                var item   = parent.ProjectItems.AddFromFile(targetName);
                item.Properties.Item("ItemType").Value = "Parameterization";
            }
        }
Exemple #2
0
        /// <summary>
        /// This function is the callback used to execute the command when the menu item is clicked.
        /// See the constructor to see how the menu item is associated with this function using
        /// OleMenuCommandService service and MenuCommand class.
        /// </summary>
        /// <param name="sender">Event sender.</param>
        /// <param name="e">Event args.</param>
        private void MenuItemCallback(object sender, EventArgs e)
        {
            var dte = VSPackage.DteInstance;

            //save node name details to maintain selection in solution explorer
            var selectedItem = ((Array)dte.ToolWindows.SolutionExplorer.SelectedItems).Cast <UIHierarchyItem>().First();

            var selectedParent = selectedItem.Collection.Parent as UIHierarchyItem;
            var parentNodeName = selectedParent.NodeName();
            var nodeName       = selectedItem.Name;
            var itemPath       = SolutionExplorerExtensions.SelectedItemPath;

            var fileName        = SolutionExplorerExtensions.SelectedItemPath;
            var projectFullName = VSPackage.DteInstance.Solution.FindProjectItem(fileName).ContainingProject.FullName;

            var parameterizationProject = new ParameterizationProject(projectFullName);

            if (parameterizationProject.Initialize())
            {
                var projectItem = VSPackage.DteInstance.Solution.FindProjectItem(fileName);
                projectItem.Properties.Item("ItemType").Value = "Parameterization";
                Nester.ApplyNesting(itemPath);

                System.Threading.Thread.Sleep(1000);
                dte.ToolWindows.SolutionExplorer.GetItem($"{parentNodeName}\\Parameters.xml").UIHierarchyItems.Expanded = true;
                dte.ToolWindows.SolutionExplorer.GetItem($"{parentNodeName}\\Parameters.xml\\{nodeName}").Select(vsUISelectionType.vsUISelectionTypeSelect);
            }
        }
        private bool NeedsInitialization()
        {
            var filePath = SolutionExplorerExtensions.SelectedItemPath;

            if (!string.IsNullOrEmpty(filePath) && "Parameters.xml".Equals(Path.GetFileName(SolutionExplorerExtensions.SelectedItemPath), StringComparison.OrdinalIgnoreCase))
            {
                var projectFullName = VSPackage.DteInstance.Solution.FindProjectItem(filePath).ContainingProject.FullName;
                var project         = new ParameterizationProject(projectFullName);
                return(project.NeedsInitialization);
            }
            return(false);
        }
        /// <summary>
        /// This function is the callback used to execute the command when the menu item is clicked.
        /// See the constructor to see how the menu item is associated with this function using
        /// OleMenuCommandService service and MenuCommand class.
        /// </summary>
        /// <param name="sender">Event sender.</param>
        /// <param name="e">Event args.</param>
        private void MenuItemCallback(object sender, EventArgs e)
        {
            var filePath = SolutionExplorerExtensions.SelectedItemPath;

            if (!string.IsNullOrEmpty(filePath) && "Parameters.xml".Equals(Path.GetFileName(SolutionExplorerExtensions.SelectedItemPath), StringComparison.OrdinalIgnoreCase))
            {
                var projectFullName = VSPackage.DteInstance.Solution.FindProjectItem(filePath).ContainingProject.FullName;
                var project         = new ParameterizationProject(projectFullName);
                project.Initialize();

                var parent = VSPackage.DteInstance.Solution.FindProjectItem(filePath);

                foreach (var item in parent.ProjectItems)
                {
                    var child = item as ProjectItem;
                    if (child != null)
                    {
                        child.Properties.Item("ItemType").Value = "Parameterization";
                    }
                }
            }
        }