From 6028fac41ad5a3e452253419725a886687037658 Mon Sep 17 00:00:00 2001 From: Matt Ward Date: Sun, 7 Aug 2011 10:19:24 +0100 Subject: [PATCH] Disable Add button in Add MVC View dialog when the view name is an empty string. --- .../Project/Src/AddMvcViewToProjectView.xaml | 2 +- .../Src/AddMvcViewToProjectViewModel.cs | 7 +++++- .../AspNet.Mvc/Project/Src/MvcViewFileName.cs | 5 +++++ .../Src/AddMvcViewToProjectViewModelTests.cs | 22 +++++++++++++++++++ 4 files changed, 34 insertions(+), 2 deletions(-) diff --git a/src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/AddMvcViewToProjectView.xaml b/src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/AddMvcViewToProjectView.xaml index b8f439797f..189001c48e 100644 --- a/src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/AddMvcViewToProjectView.xaml +++ b/src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/AddMvcViewToProjectView.xaml @@ -36,7 +36,7 @@ + Text="{Binding Path=ViewName, UpdateSourceTrigger=PropertyChanged}"/> AddMvcView()); + AddMvcViewCommand = new DelegateCommand(param => AddMvcView(), param => CanAddMvcView()); } public ICommand AddMvcViewCommand { get; private set; } @@ -56,6 +56,11 @@ namespace ICSharpCode.AspNet.Mvc } } + public bool CanAddMvcView() + { + return viewFileName.HasValidViewName(); + } + public void AddMvcView() { GenerateMvcViewFile(); diff --git a/src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/MvcViewFileName.cs b/src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/MvcViewFileName.cs index 2f4fc82229..4557aefc0e 100644 --- a/src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/MvcViewFileName.cs +++ b/src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/MvcViewFileName.cs @@ -69,5 +69,10 @@ namespace ICSharpCode.AspNet.Mvc } return "View1"; } + + public bool HasValidViewName() + { + return !String.IsNullOrEmpty(viewName); + } } } diff --git a/src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/AddMvcViewToProjectViewModelTests.cs b/src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/AddMvcViewToProjectViewModelTests.cs index f1becb4aab..75be80169d 100644 --- a/src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/AddMvcViewToProjectViewModelTests.cs +++ b/src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/AddMvcViewToProjectViewModelTests.cs @@ -167,5 +167,27 @@ namespace AspNet.Mvc.Tests Assert.AreEqual(expectedFileNameOpened, fileNameOpened); } + + [Test] + public void AddMvcViewCommand_ViewNameIsEmptyString_CommandIsDisabled() + { + CreateViewModel(); + viewModel.ViewName = String.Empty; + + bool canExecute = viewModel.AddMvcViewCommand.CanExecute(null); + + Assert.IsFalse(canExecute); + } + + [Test] + public void AddMvcViewCommand_ViewNameIsNotEmptyString_CommandIsEnable() + { + CreateViewModel(); + viewModel.ViewName = "MyView"; + + bool canExecute = viewModel.AddMvcViewCommand.CanExecute(null); + + Assert.IsTrue(canExecute); + } } }