From c35486ae3dab7a1e2e8af96eb6171d429de7a5dd Mon Sep 17 00:00:00 2001 From: Matt Ward Date: Sat, 13 Aug 2011 17:21:38 +0100 Subject: [PATCH] Do not show ASP.NET MVC Add View/Add Controller menu items when project is selected. --- .../AspNet.Mvc/Project/AspNet.Mvc.csproj | 1 + ...trollerFolderSelectedConditionEvaluator.cs | 9 +------ .../IsMvcFolderSelectedConditionEvaluator.cs | 26 +++++++++++++++++++ ...MvcViewFolderSelectedConditionEvaluator.cs | 9 +------ ...erFolderSelectedConditionEvaluatorTests.cs | 16 ++++++++++++ ...ewFolderSelectedConditionEvaluatorTests.cs | 16 ++++++++++++ 6 files changed, 61 insertions(+), 16 deletions(-) create mode 100644 src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/IsMvcFolderSelectedConditionEvaluator.cs diff --git a/src/AddIns/BackendBindings/AspNet.Mvc/Project/AspNet.Mvc.csproj b/src/AddIns/BackendBindings/AspNet.Mvc/Project/AspNet.Mvc.csproj index a63deddf95..0fdedfc86f 100644 --- a/src/AddIns/BackendBindings/AspNet.Mvc/Project/AspNet.Mvc.csproj +++ b/src/AddIns/BackendBindings/AspNet.Mvc/Project/AspNet.Mvc.csproj @@ -69,6 +69,7 @@ + diff --git a/src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/IsMvcControllerFolderSelectedConditionEvaluator.cs b/src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/IsMvcControllerFolderSelectedConditionEvaluator.cs index a306180bb8..39001d8192 100644 --- a/src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/IsMvcControllerFolderSelectedConditionEvaluator.cs +++ b/src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/IsMvcControllerFolderSelectedConditionEvaluator.cs @@ -2,17 +2,10 @@ // This code is distributed under the GNU LGPL (for details please see \doc\license.txt) using System; -using ICSharpCode.Core; -using ICSharpCode.SharpDevelop.Project; namespace ICSharpCode.AspNet.Mvc { - public class IsMvcControllerFolderSelectedConditionEvaluator : IConditionEvaluator + public class IsMvcControllerFolderSelectedConditionEvaluator : IsMvcFolderSelectedConditionEvaluator { - public bool IsValid(object owner, Condition condition) - { - var directoryNode = owner as DirectoryNode; - return directoryNode != null; - } } } diff --git a/src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/IsMvcFolderSelectedConditionEvaluator.cs b/src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/IsMvcFolderSelectedConditionEvaluator.cs new file mode 100644 index 0000000000..104e401c7a --- /dev/null +++ b/src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/IsMvcFolderSelectedConditionEvaluator.cs @@ -0,0 +1,26 @@ +// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt) +// This code is distributed under the GNU LGPL (for details please see \doc\license.txt) + +using System; +using ICSharpCode.Core; +using ICSharpCode.SharpDevelop.Project; + +namespace ICSharpCode.AspNet.Mvc +{ + public abstract class IsMvcFolderSelectedConditionEvaluator : IConditionEvaluator + { + public bool IsValid(object owner, Condition condition) + { + if (IsProjectNode(owner)) { + return false; + } + var directoryNode = owner as DirectoryNode; + return directoryNode != null; + } + + bool IsProjectNode(object owner) + { + return owner is ProjectNode; + } + } +} diff --git a/src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/IsMvcViewFolderSelectedConditionEvaluator.cs b/src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/IsMvcViewFolderSelectedConditionEvaluator.cs index fc24a325cd..488f57d223 100644 --- a/src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/IsMvcViewFolderSelectedConditionEvaluator.cs +++ b/src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/IsMvcViewFolderSelectedConditionEvaluator.cs @@ -2,17 +2,10 @@ // This code is distributed under the GNU LGPL (for details please see \doc\license.txt) using System; -using ICSharpCode.Core; -using ICSharpCode.SharpDevelop.Project; namespace ICSharpCode.AspNet.Mvc { - public class IsMvcViewFolderSelectedConditionEvaluator : IConditionEvaluator + public class IsMvcViewFolderSelectedConditionEvaluator : IsMvcFolderSelectedConditionEvaluator { - public bool IsValid(object owner, Condition condition) - { - var directoryNode = owner as DirectoryNode; - return directoryNode != null; - } } } \ No newline at end of file diff --git a/src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/IsMvcControllerFolderSelectedConditionEvaluatorTests.cs b/src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/IsMvcControllerFolderSelectedConditionEvaluatorTests.cs index e0f4a26368..197a2c4c9e 100644 --- a/src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/IsMvcControllerFolderSelectedConditionEvaluatorTests.cs +++ b/src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/IsMvcControllerFolderSelectedConditionEvaluatorTests.cs @@ -2,6 +2,7 @@ // This code is distributed under the GNU LGPL (for details please see \doc\license.txt) using System; +using AspNet.Mvc.Tests.Helpers; using ICSharpCode.AspNet.Mvc; using ICSharpCode.SharpDevelop.Project; using NUnit.Framework; @@ -30,6 +31,12 @@ namespace AspNet.Mvc.Tests return node; } + ProjectNode CreateProjectNode() + { + var project = TestableProject.CreateProject(); + return new ProjectNode(project); + } + [Test] public void IsValid_NullOwnerIsPassed_ReturnsFalse() { @@ -46,5 +53,14 @@ namespace AspNet.Mvc.Tests Assert.IsTrue(valid); } + + [Test] + public void IsValid_ProjectNodePassed_ReturnsFalse() + { + ProjectNode owner = CreateProjectNode(); + bool valid = IsValid(owner); + + Assert.IsFalse(valid); + } } } diff --git a/src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/IsMvcViewFolderSelectedConditionEvaluatorTests.cs b/src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/IsMvcViewFolderSelectedConditionEvaluatorTests.cs index 3313866632..dbc55c67cf 100644 --- a/src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/IsMvcViewFolderSelectedConditionEvaluatorTests.cs +++ b/src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/IsMvcViewFolderSelectedConditionEvaluatorTests.cs @@ -2,6 +2,7 @@ // This code is distributed under the GNU LGPL (for details please see \doc\license.txt) using System; +using AspNet.Mvc.Tests.Helpers; using ICSharpCode.AspNet.Mvc; using ICSharpCode.Core; using ICSharpCode.SharpDevelop.Project; @@ -31,6 +32,12 @@ namespace AspNet.Mvc.Tests return node; } + ProjectNode CreateProjectNode() + { + var project = TestableProject.CreateProject(); + return new ProjectNode(project); + } + [Test] public void IsValid_NullOwnerIsPassed_ReturnsFalse() { @@ -47,5 +54,14 @@ namespace AspNet.Mvc.Tests Assert.IsTrue(valid); } + + [Test] + public void IsValid_ProjectNodePassed_ReturnsFalse() + { + ProjectNode owner = CreateProjectNode(); + bool valid = IsValid(owner); + + Assert.IsFalse(valid); + } } } \ No newline at end of file