-
Notifications
You must be signed in to change notification settings - Fork 27
Expand file tree
/
Copy pathJavaProjectPackage.cs
More file actions
89 lines (75 loc) · 3.41 KB
/
Copy pathJavaProjectPackage.cs
File metadata and controls
89 lines (75 loc) · 3.41 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
namespace Tvl.VisualStudio.Language.Java.Project
{
using System;
using System.Runtime.InteropServices;
using Microsoft.VisualStudio.Project;
using Microsoft.VisualStudio.Shell;
using Tvl.VisualStudio.Shell;
using IVsComponentSelectorProvider = Microsoft.VisualStudio.Shell.Interop.IVsComponentSelectorProvider;
using VSConstants = Microsoft.VisualStudio.VSConstants;
using VSPROPSHEETPAGE = Microsoft.VisualStudio.Shell.Interop.VSPROPSHEETPAGE;
[PackageRegistration(UseManagedResourcesOnly = true)]
[InstalledProductRegistration(JavaProjectConstants.JavaProjectPackageNameResourceString, JavaProjectConstants.JavaProjectPackageDetailsResourceString, JavaProjectConstants.JavaProjectPackageProductVersionString/*, IconResourceID = 400*/)]
[Guid(JavaProjectConstants.JavaProjectPackageGuidString)]
[ProvideProjectFactory(
typeof(JavaProjectFactory),
"Java",
"Java Project Files (*.javaproj);*.javaproj",
"javaproj",
"javaproj",
"ProjectTemplates",
LanguageVsTemplate = Constants.JavaLanguageName,
NewProjectRequireNewFolderVsTemplate = false)]
[ProvideObject(typeof(PropertyPages.JavaApplicationPropertyPage))]
[ProvideObject(typeof(PropertyPages.JavaBuildEventsPropertyPage))]
[ProvideObject(typeof(PropertyPages.JavaBuildPropertyPage))]
[ProvideObject(typeof(PropertyPages.JavaDebugPropertyPage))]
[ProvideObject(typeof(PropertyPages.JavaGeneralPropertyPage))]
[ProvideComponentSelectorTab(typeof(PropertyPages.MavenComponentSelector), typeof(JavaProjectPackage), "Maven")]
public class JavaProjectPackage : ProjectPackage, IVsComponentSelectorProvider
{
private PropertyPages.MavenComponentSelector _mavenComponentSelector;
public override string ProductUserContext
{
get
{
return "Java";
}
}
protected override void Initialize()
{
base.Initialize();
RegisterProjectFactory(new JavaProjectFactory(this));
}
#region IVsComponentSelectorProvider Members
public int GetComponentSelectorPage(ref Guid rguidPage, VSPROPSHEETPAGE[] ppage)
{
if (ppage == null)
throw new ArgumentNullException("ppage");
if (ppage.Length == 0)
throw new ArgumentException();
if (rguidPage == JavaProjectConstants.MavenComponentSelectorGuid)
{
_mavenComponentSelector = _mavenComponentSelector ?? new PropertyPages.MavenComponentSelector();
ppage[0] = new VSPROPSHEETPAGE()
{
dwFlags = (uint)default(PropertySheetPageFlags),
dwReserved = 0,
dwSize = (uint)Marshal.SizeOf(typeof(VSPROPSHEETPAGE)),
dwTemplateSize = 0,
HINSTANCE = 0,
hwndDlg = _mavenComponentSelector.Handle,
lParam = IntPtr.Zero,
pcRefParent = IntPtr.Zero,
pfnCallback = IntPtr.Zero,
pfnDlgProc = IntPtr.Zero,
pTemplate = IntPtr.Zero,
wTemplateId = 0,
};
return VSConstants.S_OK;
}
return VSConstants.E_INVALIDARG;
}
#endregion
}
}