Author: brett
Date: Fri Jan 13 15:28:44 2012
New Revision: 1231130
URL: http://svn.apache.org/viewvc?rev=1231130&view=rev
Log:
give better control over the project importer checkbox for Web Deploy 2.0 for
when it is needed
Modified:
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/AddArtifactsForm.cs
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/Connect.cs
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPandayImportProjectForm.cs
Modified:
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/AddArtifactsForm.cs
URL:
http://svn.apache.org/viewvc/incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/AddArtifactsForm.cs?rev=1231130&r1=1231129&r2=1231130&view=diff
==============================================================================
---
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/AddArtifactsForm.cs
(original)
+++
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/AddArtifactsForm.cs
Fri Jan 13 15:28:44 2012
@@ -478,7 +478,7 @@ namespace NPanday.VisualStudio.Addin
if (!addVSProjectReference(artifact, text))
return;
}
- else if (Connect.IsWebProject(project))
+ else if (Connect.IsWebSite(project))
{
if (!addVSWebProjectReference(artifact, text))
return;
Modified:
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/Connect.cs
URL:
http://svn.apache.org/viewvc/incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/Connect.cs?rev=1231130&r1=1231129&r2=1231130&view=diff
==============================================================================
---
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/Connect.cs
(original)
+++
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/Connect.cs
Fri Jan 13 15:28:44 2012
@@ -522,8 +522,27 @@ namespace NPanday.VisualStudio.Addin
//stopButton.Enabled = false;
}
+ public static bool IsWebSite(Project project)
+ {
+ return
project.Kind.Equals(VisualStudioProjectType.GetVisualStudioProjectTypeGuid(VisualStudioProjectTypeEnum.Web_Site),
StringComparison.OrdinalIgnoreCase);
+ }
+
public static bool IsWebProject(Project project)
{
+ // quick check for the right extender, in lieu of full GUID
availability (see below)
+ try
+ {
+ if (project.Extender["WebApplication"] != null)
+ {
+ return true;
+ }
+ }
+ catch
+ {
+ // ignore
+ }
+
+ // project Kind is only the main one, so the below is not often
correct. A more definitive query would be to get all the subtype GUIDs for a
project (see http://www.mztools.com/articles/2007/mz2007016.aspx)
return
project.Kind.Equals(VisualStudioProjectType.GetVisualStudioProjectTypeGuid(VisualStudioProjectTypeEnum.Web_Site),
StringComparison.OrdinalIgnoreCase) ||
project.Kind.Equals(VisualStudioProjectType.GetVisualStudioProjectTypeGuid(VisualStudioProjectTypeEnum.Web_Application),
StringComparison.OrdinalIgnoreCase);
}
@@ -696,7 +715,7 @@ namespace NPanday.VisualStudio.Addin
string referenceFolder = string.Empty;
string serviceRefFolder = string.Empty;
- if (IsWebProject(project))
+ if (IsWebSite(project))
{
VsWebSite.VSWebSite website =
(VsWebSite.VSWebSite)project.Object;
referenceFolder = Path.Combine(website.Project.FullName,
"App_WebReferences");
@@ -1063,7 +1082,7 @@ namespace NPanday.VisualStudio.Addin
string projectReferenceFolder(Project project)
{
string wsPath = null;
- if (IsWebProject(project))
+ if (IsWebSite(project))
{
VsWebSite.VSWebSite website =
(VsWebSite.VSWebSite)project.Object;
wsPath = Path.Combine(website.Project.FullName,
"App_WebReferences");
@@ -1466,7 +1485,7 @@ namespace NPanday.VisualStudio.Addin
Solution2 solution =
(Solution2)_applicationObject.Solution;
foreach (Project project in solution.Projects)
{
- if (!IsWebProject(project) && !IsFolder(project) &&
!IsCloudProject(project) && project.Object != null)
+ if (!IsWebSite(project) && !IsFolder(project) &&
!IsCloudProject(project) && project.Object != null)
{
IReferenceManager mgr = new ReferenceManager();
mgr.OnError += new
EventHandler<ReferenceErrorEventArgs>(refmanager_OnError);
@@ -1862,7 +1881,7 @@ namespace NPanday.VisualStudio.Addin
bool asked = false;
foreach (Project project in solution.Projects)
{
- if (!IsWebProject(project) &&
ProjectHasWebReferences(project))
+ if (!IsWebSite(project) &&
ProjectHasWebReferences(project))
{
if (!asked && MessageBox.Show("Do you want to update
webservice references?", "NPanday Build", MessageBoxButtons.YesNo,
MessageBoxIcon.Question) != DialogResult.Yes)
{
Modified:
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPandayImportProjectForm.cs
URL:
http://svn.apache.org/viewvc/incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPandayImportProjectForm.cs?rev=1231130&r1=1231129&r2=1231130&view=diff
==============================================================================
---
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPandayImportProjectForm.cs
(original)
+++
incubator/npanday/trunk/dotnet/assemblies/NPanday.VisualStudio.Addin/src/main/csharp/NPandayImportProjectForm.cs
Fri Jan 13 15:28:44 2012
@@ -112,8 +112,25 @@ namespace NPanday.VisualStudio.Addin
txtVersion.Text = version;
+ bool hasWebProjects = false, hasCloudProjects = false;
+ Solution2 solution = (Solution2)applicationObject.Solution;
+ foreach (Project project in solution.Projects)
+ {
+ if (isWebProject(project))
+ {
+ hasWebProjects = true;
+ }
+ if (isCloudProject(project))
+ {
+ hasCloudProjects = true;
+ }
+ }
+ // disabled if there are cloud projects (must be on), or
if there are no web projects (not useful)
+ useMsDeployCheckBox.Enabled = hasWebProjects &&
!hasCloudProjects;
+
// TODO: remember this, or have a default
- useMsDeployCheckBox.Checked = true;
+ // force to false if no web projects, force to true if
cloud projects
+ useMsDeployCheckBox.Checked = hasWebProjects ||
hasCloudProjects;
}
catch { /*do nothing*/}
@@ -442,26 +459,34 @@ namespace NPanday.VisualStudio.Addin
log.Warn(e.Message);
}
- private const string WEB_PROJECT_KIND_GUID =
"{E24C65DC-7377-472B-9ABA-BC803B73C61A}";
private static bool isWebProject(Project project)
{
// make sure there's a project item
if (project == null)
return false;
- // compare the project kind to the web project guid
- return (String.Compare(project.Kind, WEB_PROJECT_KIND_GUID, true)
== 0);
+ // TODO: better location for utility
+ return Connect.IsWebProject(project);
+ }
+
+ private static bool isCloudProject(Project project)
+ {
+ // make sure there's a project item
+ if (project == null)
+ return false;
+
+ // TODO: better location for utility
+ return Connect.IsCloudProject(project);
}
- private const string FOLDER_KIND_GUID =
"{66A26720-8FB5-11D2-AA7E-00C04F688DDE}";
private static bool isFolder(Project project)
{
// make sure there's a project item
if (project == null)
return false;
- // compare the project kind to the folder guid
- return (String.Compare(project.Kind, FOLDER_KIND_GUID, true) == 0);
+ // TODO: better location for utility
+ return Connect.IsFolder(project);
}
}
}