Esempio n. 1
0
        private string GetSelectedFilePath(EnvDTE.DTE dte)
        {
            ThreadHelper.ThrowIfNotOnUIThread();

            EnvDTE.SelectedItems selectedItems = dte.SelectedItems;

            if (!(selectedItems?.Count > 0))
            {
                return(null);
            }

            var item = selectedItems.Item(1);

            if (item.Project != null)
            {
                return(item.Project.FileName);
            }
            else if (item.ProjectItem != null)
            {
                if (item.ProjectItem.Properties != null)
                {
                    return((string)item.ProjectItem.Properties.Item("FullPath").Value);
                }
                else
                {
                    return(item.ProjectItem.FileNames[1]);
                }
            }
            else // is Solution
            {
                return(dte.Solution.FileName);
            }
        }
        /// <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 Execute(object sender, EventArgs e)
        {
            ThreadHelper.ThrowIfNotOnUIThread();
            string message;
            string title = "Change Report Definition";

            EnvDTE.DTE           dte           = (EnvDTE.DTE)ServiceProvider.GetService(typeof(EnvDTE.DTE));
            EnvDTE.SelectedItems selectedItems = dte.SelectedItems;

            if (selectedItems != null)
            {
                foreach (EnvDTE.SelectedItem selectedItem in selectedItems)
                {
                    EnvDTE.ProjectItem projectItem = selectedItem.ProjectItem as EnvDTE.ProjectItem;

                    if (projectItem != null)
                    {
                        string path = projectItem.Properties.Item("FullPath").Value.ToString();

                        message = $"Executed on {projectItem.Name}";

                        ChangeDefinition(path);

                        // Show a message box to prove we were here
                        VsShellUtilities.ShowMessageBox(
                            this.package,
                            message,
                            title,
                            OLEMSGICON.OLEMSGICON_INFO,
                            OLEMSGBUTTON.OLEMSGBUTTON_OK,
                            OLEMSGDEFBUTTON.OLEMSGDEFBUTTON_FIRST);
                    }
                }
            }
        }
Esempio n. 3
0
        internal static EnvDTE.Project GetDTE_SelectedProject(EnvDTE.Solution solution)
        {
            EnvDTE.Project       project        = null;
            EnvDTE.SelectedItems wSelectedItems = ((EnvDTE.SelectedItems)((EnvDTE.Projects)solution.Projects).DTE.SelectedItems);

            if (wSelectedItems.Item(1).ProjectItem != null)
            {
                project = ((EnvDTE.Project)wSelectedItems.Item(1).ProjectItem.ContainingProject);
            }

            if (wSelectedItems.Item(1).Project != null)
            {
                project = wSelectedItems.Item(1).Project;
            }
            return(project);
        }
Esempio n. 4
0
        private void EnableForPlantUmlMenuItems(object sender, EventArgs e)
        {
            EnvDTE.DTE           dte           = (EnvDTE.DTE)ServiceProvider.GetService(typeof(EnvDTE.DTE));
            EnvDTE.SelectedItems selectedItems = dte.SelectedItems;

            if (selectedItems != null)
            {
                foreach (EnvDTE.SelectedItem selectedItem in selectedItems)
                {
                    EnvDTE.ProjectItem projectItem = selectedItem.ProjectItem as EnvDTE.ProjectItem;

                    if (projectItem != null && Constants.FileTypes.Contains($".{projectItem.FileNames[1].Split('.').Last()}"))
                    {
                        OlemenuItem.Visible = true;
                    }
                    else
                    {
                        OlemenuItem.Visible = false;
                    }
                }
            }
        }