Datei: NDOPackage/Commands/AddPersistentClass.cs
Last Commit (ed9120d)
| 1 | using Microsoft.VisualStudio; |
| 2 | using Microsoft.VisualStudio.Shell.Interop; |
| 3 | |
| 4 | namespace NDOVsPackage.Commands |
| 5 | { |
| 6 | ····[Command(PackageGuids.guidNDOPackageCmdSetString, PackageIds.cmdidAddClass)] |
| 7 | ····internal sealed class AddPersistentClass : BaseCommand<AddPersistentClass> |
| 8 | ····{ |
| 9 | ········protected override async Task ExecuteAsync(OleMenuCmdEventArgs e) |
| 10 | ········{ |
| 11 | await VS. MessageBox. ShowWarningAsync( "AddPersistentClass", "Button clicked") ; |
| 12 | ········} |
| 13 | |
| 14 | ········protected override void BeforeQueryStatus(EventArgs e) |
| 15 | ········{ |
| 16 | ············ThreadHelper.JoinableTaskFactory.Run(async () => |
| 17 | ············{ |
| 18 | ················var project = await VS.Solutions.GetActiveProjectAsync(); |
| 19 | ················await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); |
| 20 | ················var enabled = CodeGenHelper.IsCsOrVbProject(project); |
| 21 | ················Command.Enabled = enabled; |
| 22 | ············}); |
| 23 | ········} |
| 24 | ····} |
| 25 | } |
| 26 |
New Commit (946ad0e)
| 1 | using Microsoft.VisualStudio; |
| 2 | using Microsoft.VisualStudio.Shell.Interop; |
| 3 | using Project = EnvDTE.Project; |
| 4 | |
| 5 | namespace NDOVsPackage.Commands |
| 6 | { |
| 7 | ····[Command(PackageGuids.guidNDOPackageCmdSetString, PackageIds.cmdidAddClass)] |
| 8 | ····internal sealed class AddPersistentClass : BaseCommand<AddPersistentClass> |
| 9 | ····{ |
| 10 | ········protected override async Task ExecuteAsync(OleMenuCmdEventArgs e) |
| 11 | ········{ |
| 12 | ············await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); |
| 13 | ············System.Array solObjects = (Array) this.VisualStudioApplication.ActiveSolutionProjects; |
| 14 | ············if (solObjects.Length < 1) |
| 15 | ················return; |
| 16 | |
| 17 | ············Project project = (Project) solObjects.GetValue( 0 ); |
| 18 | |
| 19 | ············if (!(CodeGenHelper.IsCsOrVbProject(project))) |
| 20 | ················return; |
| 21 | |
| 22 | ············PersistentClassDialog pcd = new PersistentClassDialog(); |
| 23 | ············pcd.ShowDialog(); |
| 24 | ············if (pcd.Result == DialogResult.Cancel) |
| 25 | ················return; |
| 26 | |
| 27 | ············SelectedItems selItems = VisualStudioApplication.SelectedItems; |
| 28 | ············ProjectItem parentItem = null; |
| 29 | ············if (selItems.Count == 1) |
| 30 | ············{ |
| 31 | IEnumerator ienum = selItems. GetEnumerator( ) ; |
| 32 | ················ienum.MoveNext(); |
| 33 | ················SelectedItem si = (SelectedItem) ienum.Current; |
| 34 | ················if (si.ProjectItem != null && si.ProjectItem.Kind == "{6BB5F8EF-4483-11D3-8BCF-00C04F8EC28C}") // Folder |
| 35 | ····················parentItem = si.ProjectItem; |
| 36 | ············} |
| 37 | |
| 38 | ············if (CodeGenHelper.IsVbProject( project )) |
| 39 | ················new AddPersistentClassVb( project, pcd.ClassName, pcd.Serializable, parentItem ).DoIt(); |
| 40 | ············else if (CodeGenHelper.IsCsProject( project )) |
| 41 | ················new AddPersistentClassCs( project, pcd.ClassName, pcd.Serializable, parentItem ).DoIt(); |
| 42 | ········} |
| 43 | ············catch (Exception ex) |
| 44 | ············{ |
| 45 | ················Debug.WriteLine(ex.ToString() ); |
| 46 | ················MessageBox.Show(ex.Message, "Configure" ); |
| 47 | ············} |
| 48 | } |
| 49 | |
| 50 | ········protected override void BeforeQueryStatus(EventArgs e) |
| 51 | ········{ |
| 52 | ············ThreadHelper.JoinableTaskFactory.Run(async () => |
| 53 | ············{ |
| 54 | ················var project = await VS.Solutions.GetActiveProjectAsync(); |
| 55 | ················await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync(); |
| 56 | ················var enabled = CodeGenHelper.IsCsOrVbProject(project); |
| 57 | ················Command.Enabled = enabled; |
| 58 | ············}); |
| 59 | ········} |
| 60 | ····} |
| 61 | } |
| 62 |