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 |