Browse Source

Open ASP.NET MVC view file after creation.

pull/18/head
Matt Ward 15 years ago
parent
commit
1e66520fef
  1. 2
      src/AddIns/BackendBindings/AspNet.Mvc/Project/AspNet.Mvc.csproj
  2. 3
      src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/AddMvcViewToProjectCommand.cs
  3. 20
      src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/AddMvcViewToProjectViewModel.cs
  4. 12
      src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/IMvcFileService.cs
  5. 16
      src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/MvcFileService.cs
  6. 1
      src/AddIns/BackendBindings/AspNet.Mvc/Test/AspNet.Mvc.Tests.csproj
  7. 18
      src/AddIns/BackendBindings/AspNet.Mvc/Test/Helpers/FakeMvcFileService.cs
  8. 20
      src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/AddMvcViewToProjectViewModelTests.cs

2
src/AddIns/BackendBindings/AspNet.Mvc/Project/AspNet.Mvc.csproj

@ -56,12 +56,14 @@ @@ -56,12 +56,14 @@
<Compile Include="Src\CloseDialogBehaviour.cs" />
<Compile Include="Src\DelegateCommand.cs" />
<Compile Include="Src\IAddMvcItemToProjectView.cs" />
<Compile Include="Src\IMvcFileService.cs" />
<Compile Include="Src\IMvcTextTemplateHost.cs" />
<Compile Include="Src\IMvcTextTemplateHostFactory.cs" />
<Compile Include="Src\IMvcViewFileGenerator.cs" />
<Compile Include="Src\ISelectedMvcViewFolder.cs" />
<Compile Include="Src\IsMvcViewFolderSelectedConditionEvaluator.cs" />
<Compile Include="Configuration\AssemblyInfo.cs" />
<Compile Include="Src\MvcFileService.cs" />
<Compile Include="Src\MvcTextTemplateHost.cs" />
<Compile Include="Src\MvcTextTemplateHostFactory.cs" />
<Compile Include="Src\MvcTextTemplateLanguage.cs" />

3
src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/AddMvcViewToProjectCommand.cs

@ -27,8 +27,7 @@ namespace ICSharpCode.AspNet.Mvc @@ -27,8 +27,7 @@ namespace ICSharpCode.AspNet.Mvc
protected virtual object CreateDataContext()
{
SelectedMvcViewFolder selectedFolder = GetSelectedFolder();
var generator = new MvcViewFileGenerator();
return new AddMvcViewToProjectViewModel(selectedFolder, generator);
return new AddMvcViewToProjectViewModel(selectedFolder);
}
SelectedMvcViewFolder GetSelectedFolder()

20
src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/AddMvcViewToProjectViewModel.cs

@ -11,15 +11,26 @@ namespace ICSharpCode.AspNet.Mvc @@ -11,15 +11,26 @@ namespace ICSharpCode.AspNet.Mvc
{
IMvcViewFileGenerator viewGenerator;
ISelectedMvcViewFolder selectedViewFolder;
IMvcFileService fileService;
MvcViewFileName viewFileName = new MvcViewFileName();
bool closed;
public AddMvcViewToProjectViewModel(ISelectedMvcViewFolder selectedViewFolder)
: this(
selectedViewFolder,
new MvcViewFileGenerator(),
new MvcFileService())
{
}
public AddMvcViewToProjectViewModel(
ISelectedMvcViewFolder selectedViewFolder,
IMvcViewFileGenerator viewGenerator)
IMvcViewFileGenerator viewGenerator,
IMvcFileService fileService)
{
this.selectedViewFolder = selectedViewFolder;
this.viewGenerator = viewGenerator;
this.fileService = fileService;
this.viewFileName.ViewFolder = selectedViewFolder.Path;
CreateCommands();
@ -49,6 +60,7 @@ namespace ICSharpCode.AspNet.Mvc @@ -49,6 +60,7 @@ namespace ICSharpCode.AspNet.Mvc
{
GenerateMvcViewFile();
AddMvcViewFileToProject();
OpenMvcViewFileCreated();
IsClosed = true;
}
@ -75,6 +87,12 @@ namespace ICSharpCode.AspNet.Mvc @@ -75,6 +87,12 @@ namespace ICSharpCode.AspNet.Mvc
string fileName = viewFileName.GetFileName();
selectedViewFolder.AddFileToProject(fileName);
}
void OpenMvcViewFileCreated()
{
string path = viewFileName.GetPath();
fileService.OpenFile(path);
}
}
}

12
src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/IMvcFileService.cs

@ -0,0 +1,12 @@ @@ -0,0 +1,12 @@
// 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;
namespace ICSharpCode.AspNet.Mvc
{
public interface IMvcFileService
{
void OpenFile(string fileName);
}
}

16
src/AddIns/BackendBindings/AspNet.Mvc/Project/Src/MvcFileService.cs

@ -0,0 +1,16 @@ @@ -0,0 +1,16 @@
// 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.SharpDevelop;
namespace ICSharpCode.AspNet.Mvc
{
public class MvcFileService : IMvcFileService
{
public void OpenFile(string fileName)
{
FileService.OpenFile(fileName);
}
}
}

1
src/AddIns/BackendBindings/AspNet.Mvc/Test/AspNet.Mvc.Tests.csproj

@ -44,6 +44,7 @@ @@ -44,6 +44,7 @@
<Link>Configuration\GlobalAssemblyInfo.cs</Link>
</Compile>
<Compile Include="Helpers\FakeAddMvcItemToProjectView.cs" />
<Compile Include="Helpers\FakeMvcFileService.cs" />
<Compile Include="Helpers\FakeMvcTextTemplateHost.cs" />
<Compile Include="Helpers\FakeMvcTextTemplateHostFactory.cs" />
<Compile Include="Helpers\FakeMvcViewFileGenerator.cs" />

18
src/AddIns/BackendBindings/AspNet.Mvc/Test/Helpers/FakeMvcFileService.cs

@ -0,0 +1,18 @@ @@ -0,0 +1,18 @@
// 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.AspNet.Mvc;
namespace AspNet.Mvc.Tests.Helpers
{
public class FakeMvcFileService : IMvcFileService
{
public string FileNamePassedToOpenFile;
public void OpenFile(string fileName)
{
FileNamePassedToOpenFile = fileName;
}
}
}

20
src/AddIns/BackendBindings/AspNet.Mvc/Test/Src/AddMvcViewToProjectViewModelTests.cs

@ -17,6 +17,7 @@ namespace AspNet.Mvc.Tests @@ -17,6 +17,7 @@ namespace AspNet.Mvc.Tests
FakeMvcViewFileGenerator fakeViewGenerator;
FakeSelectedMvcViewFolder fakeSelectedMvcViewFolder;
List<string> propertyChangedEvents;
FakeMvcFileService fakeFileService;
void CreateViewModel()
{
@ -29,9 +30,11 @@ namespace AspNet.Mvc.Tests @@ -29,9 +30,11 @@ namespace AspNet.Mvc.Tests
fakeSelectedMvcViewFolder = new FakeSelectedMvcViewFolder();
fakeSelectedMvcViewFolder.Path = path;
fakeViewGenerator = new FakeMvcViewFileGenerator();
fakeFileService = new FakeMvcFileService();
viewModel = new AddMvcViewToProjectViewModel(
fakeSelectedMvcViewFolder,
fakeViewGenerator);
fakeViewGenerator,
fakeFileService);
}
void MonitorPropertyChangedEvents()
@ -149,5 +152,20 @@ namespace AspNet.Mvc.Tests @@ -149,5 +152,20 @@ namespace AspNet.Mvc.Tests
Assert.IsTrue(fired);
}
[Test]
public void AddMvcView_FileIsGenerated_FileIsOpened()
{
CreateViewModel();
viewModel.ViewName = "Index";
fakeSelectedMvcViewFolder.ProjectLanguage = "C#";
fakeSelectedMvcViewFolder.Path = @"d:\projects\MyAspMvcProject\Views\Home";
viewModel.AddMvcView();
string fileNameOpened = fakeFileService.FileNamePassedToOpenFile;
string expectedFileNameOpened = @"d:\projects\MyAspMvcProject\Views\Home\Index.aspx";
Assert.AreEqual(expectedFileNameOpened, fileNameOpened);
}
}
}

Loading…
Cancel
Save