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); } } } }
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); }
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; } } } }