public EditProjectSetViewModel(IServiceProvider services, ProjectSetViewModel projectSet) { m_services = services; m_projectSet = projectSet; m_name = m_projectSet.Name; m_okCommand = new DelegateCommand(ExecuteOk); m_cancelCommand = new DelegateCommand(ExecuteCancel); m_expandSubtreeCommand = new DelegateCommand(ExecuteExpandSubtree, CanExecuteExpandSubtree); m_collapseAllCommand = new DelegateCommand(CollapseAll); m_uncheckAllCommand = new DelegateCommand(UncheckAll); projectSet.RootNode.IsExpanded = true; }
internal static bool?ShowDialog(IServiceProvider services, ProjectSetViewModel projectSet, string dialogTitle, Func <bool> beforeAccept) { EditProjectSetDialog dialog = new EditProjectSetDialog(); dialog.Title = dialogTitle; Package pkg = services.GetService <Package>(); try { IInteractionService isvc = (IInteractionService)services.GetService <SInteractionService>(); ProjectSetManagerUserOptions settings = isvc.GetSettings(); settings.LoadSettingsFromStorage(); dialog.Width = settings.EditWindowWidth; dialog.Height = settings.EditWindowHeight; //dialog.Left = settings.EditWindowLeft; //dialog.Top = settings.EditWindowTop; } catch { } EditProjectSetViewModel viewModel = new EditProjectSetViewModel(services, projectSet); viewModel.CloseDialog += (s, e) => { if (e.Result == true && (beforeAccept != null && beforeAccept() || beforeAccept == null) || e.Result != true) { try { IInteractionService isvc = (IInteractionService)services.GetService <SInteractionService>(); ProjectSetManagerUserOptions settings = isvc.GetSettings(); settings.EditWindowWidth = (int)dialog.ActualWidth; settings.EditWindowHeight = (int)dialog.ActualHeight; settings.EditWindowLeft = (int)dialog.Left; settings.EditWindowTop = (int)dialog.Top; settings.SaveSettingsToStorage(); } catch { } //winStates.SaveSettingsToStorage(); dialog.DialogResult = e.Result; dialog.Close(); } }; dialog.DataContext = viewModel; return(dialog.ShowModal()); }
private void OnEditProfile(object sender, EventArgs e) { Dispatcher.CurrentDispatcher.VerifyAccess(); SolutionManager solMgr = GetSolutionManager(); if (solMgr != null) { ProjectSetSummaryViewModel item = SelectedItem; if (item != null) { ProjectSetViewModel projSetVm = new ProjectSetViewModel(item.ModelItem, solMgr.GetSolutionHierarchy()); projSetVm.BeginEdit(); try { bool?result = EditProjectSetDialog.ShowDialog(m_serviceProvider, projSetVm, "Edit Project Set", () => { if (m_repositoryViewModel.ProjectSets.Any(ps => ps.Name.Equals(projSetVm.Name, StringComparison.OrdinalIgnoreCase) && !object.ReferenceEquals(ps.ModelItem, projSetVm.ModelItem))) { m_interactionService.ShowDialog("Name Conflict", String.Format("Another project set already has the name \"{0}\". Please select another name.", projSetVm.Name), OLEMSGBUTTON.OLEMSGBUTTON_OK, OLEMSGDEFBUTTON.OLEMSGDEFBUTTON_FIRST, OLEMSGICON.OLEMSGICON_WARNING); return(false); } return(true); }); if (result == true) { projSetVm.EndEdit(); m_repository.ProjectSets.Remove(projSetVm.ModelItem); m_repository.ProjectSets.Add(projSetVm.ModelItem); SelectedItem = item; } else { projSetVm.CancelEdit(); m_repository.ProjectSets.Remove(projSetVm.ModelItem); m_repository.ProjectSets.Add(projSetVm.ModelItem); SelectedItem = item; } } catch { projSetVm.CancelEdit(); } } } }
private void OnAddProfile(object sender, EventArgs e) { Dispatcher.CurrentDispatcher.VerifyAccess(); SolutionManager solMgr = GetSolutionManager(); if (solMgr != null) { var solutionHierarchy = solMgr.GetSolutionHierarchy(); ProjectSet projectSet = new ProjectSet("New Project Set"); projectSet.PopulateFrom(solutionHierarchy); ProjectSetViewModel projectSetVm = new ProjectSetViewModel(projectSet, solutionHierarchy); bool?result = EditProjectSetDialog.ShowDialog(m_serviceProvider, projectSetVm, "Create Project Set", () => { if (m_repositoryViewModel.ProjectSets.Any(ps => ps.Name.Equals(projectSet.Name, StringComparison.OrdinalIgnoreCase))) { Microsoft.VisualStudio.VSConstants.MessageBoxResult overwriteResponse = m_interactionService.ShowDialog("Overwrite Project Set", String.Format("A project set with the name \"{0}\" already exists in this solution. Do you want to overwrite it?", projectSet.Name), OLEMSGBUTTON.OLEMSGBUTTON_YESNO, OLEMSGDEFBUTTON.OLEMSGDEFBUTTON_SECOND, OLEMSGICON.OLEMSGICON_QUERY); if (overwriteResponse == Microsoft.VisualStudio.VSConstants.MessageBoxResult.IDNO) { return(false); } } return(true); }); if (result == true) { int replacementIndex = -1; for (int i = 0; i < m_repository.ProjectSets.Count; i++) { if (m_repository.ProjectSets[i].Name.Equals(projectSet.Name, StringComparison.OrdinalIgnoreCase)) { replacementIndex = i; break; } } if (replacementIndex != -1) { m_repository.ProjectSets[replacementIndex] = projectSet; } else { m_repository.ProjectSets.Add(projectSet); } } } }