From fe6d788819206119de7e7439bf1e7368bae38779 Mon Sep 17 00:00:00 2001 From: Matt Ward Date: Tue, 20 Apr 2010 18:47:35 +0000 Subject: [PATCH] Disable the context menu in the setup files window when there are errors loading the WiX document. git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/3.0@5709 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61 --- .../WixBinding/Project/Src/Gui/WixPackageFilesControl.cs | 5 +++++ .../WixBinding/Project/Src/IWixPackageFilesView.cs | 2 ++ .../WixBinding/Project/Src/WixPackageFilesEditor.cs | 2 ++ .../Test/PackageFiles/AddDirectoryTestFixture.cs | 6 ++++++ .../Test/PackageFiles/NoRootDirectoryFoundTestFixture.cs | 6 ++++++ .../NoRootDirectoryInWixProductFileTestFixture.cs | 6 ++++++ .../Test/PackageFiles/NoWixProductFileTestFixture.cs | 6 ++++++ .../PackageFiles/NoWixSourceFileInProjectTestFixture.cs | 7 +++++++ .../WixBinding/Test/Utils/MockWixPackageFilesView.cs | 6 ++++++ src/AddIns/BackendBindings/WixBinding/WixBinding.sln | 8 +++++++- 10 files changed, 53 insertions(+), 1 deletion(-) diff --git a/src/AddIns/BackendBindings/WixBinding/Project/Src/Gui/WixPackageFilesControl.cs b/src/AddIns/BackendBindings/WixBinding/Project/Src/Gui/WixPackageFilesControl.cs index 6150e4e023..04f3f41d61 100644 --- a/src/AddIns/BackendBindings/WixBinding/Project/Src/Gui/WixPackageFilesControl.cs +++ b/src/AddIns/BackendBindings/WixBinding/Project/Src/Gui/WixPackageFilesControl.cs @@ -39,6 +39,11 @@ namespace ICSharpCode.WixBinding /// Raised when the files are changed and require saving. /// public event DirtyChangedEventHandler DirtyChanged; + + public bool ContextMenuEnabled { + get { return packageFilesTreeView.ContextMenuStrip.Enabled; } + set { packageFilesTreeView.ContextMenuStrip.Enabled = value; } + } /// /// Gets or sets the error message that will be displayed instead of the diff --git a/src/AddIns/BackendBindings/WixBinding/Project/Src/IWixPackageFilesView.cs b/src/AddIns/BackendBindings/WixBinding/Project/Src/IWixPackageFilesView.cs index 790c7ce032..af46f9068b 100644 --- a/src/AddIns/BackendBindings/WixBinding/Project/Src/IWixPackageFilesView.cs +++ b/src/AddIns/BackendBindings/WixBinding/Project/Src/IWixPackageFilesView.cs @@ -16,6 +16,8 @@ namespace ICSharpCode.WixBinding /// public interface IWixPackageFilesView { + bool ContextMenuEnabled { get; set; } + /// /// Displays the message in the view that no WiX source file is contained /// in the project. diff --git a/src/AddIns/BackendBindings/WixBinding/Project/Src/WixPackageFilesEditor.cs b/src/AddIns/BackendBindings/WixBinding/Project/Src/WixPackageFilesEditor.cs index a91fd0ba84..f37cb00e78 100644 --- a/src/AddIns/BackendBindings/WixBinding/Project/Src/WixPackageFilesEditor.cs +++ b/src/AddIns/BackendBindings/WixBinding/Project/Src/WixPackageFilesEditor.cs @@ -63,6 +63,7 @@ namespace ICSharpCode.WixBinding { // Look for Wix document containing root directory. document = null; + view.ContextMenuEnabled = false; if (project.WixSourceFiles.Count > 0) { bool errors = false; WixDocument currentDocument = null; @@ -83,6 +84,7 @@ namespace ICSharpCode.WixBinding } else if (document == null) { view.ShowNoRootDirectoryFoundMessage(); } else { + view.ContextMenuEnabled = true; SelectedElementChanged(); } } else { diff --git a/src/AddIns/BackendBindings/WixBinding/Test/PackageFiles/AddDirectoryTestFixture.cs b/src/AddIns/BackendBindings/WixBinding/Test/PackageFiles/AddDirectoryTestFixture.cs index ce25817e57..f10a32f4bc 100644 --- a/src/AddIns/BackendBindings/WixBinding/Test/PackageFiles/AddDirectoryTestFixture.cs +++ b/src/AddIns/BackendBindings/WixBinding/Test/PackageFiles/AddDirectoryTestFixture.cs @@ -124,6 +124,12 @@ namespace WixBinding.Tests.PackageFiles Assert.AreEqual(3, view.ElementsAdded.Length); } + [Test] + public void ContextMenuIsEnabled() + { + Assert.IsTrue(view.ContextMenuEnabled); + } + protected override string GetWixXml() { return "\r\n" + diff --git a/src/AddIns/BackendBindings/WixBinding/Test/PackageFiles/NoRootDirectoryFoundTestFixture.cs b/src/AddIns/BackendBindings/WixBinding/Test/PackageFiles/NoRootDirectoryFoundTestFixture.cs index 20cfd07ceb..01b49f623e 100644 --- a/src/AddIns/BackendBindings/WixBinding/Test/PackageFiles/NoRootDirectoryFoundTestFixture.cs +++ b/src/AddIns/BackendBindings/WixBinding/Test/PackageFiles/NoRootDirectoryFoundTestFixture.cs @@ -40,6 +40,12 @@ namespace WixBinding.Tests.PackageFiles Assert.IsTrue(view.IsNoRootDirectoryFoundMessageDisplayed); } + [Test] + public void ContextMenuIsDisabled() + { + Assert.IsFalse(view.ContextMenuEnabled); + } + /// /// Deliberately use WiX 2.0's namespace so the test fixture will not find any /// target directory element. diff --git a/src/AddIns/BackendBindings/WixBinding/Test/PackageFiles/NoRootDirectoryInWixProductFileTestFixture.cs b/src/AddIns/BackendBindings/WixBinding/Test/PackageFiles/NoRootDirectoryInWixProductFileTestFixture.cs index 9c5f69bfa0..330288a7d2 100644 --- a/src/AddIns/BackendBindings/WixBinding/Test/PackageFiles/NoRootDirectoryInWixProductFileTestFixture.cs +++ b/src/AddIns/BackendBindings/WixBinding/Test/PackageFiles/NoRootDirectoryInWixProductFileTestFixture.cs @@ -46,6 +46,12 @@ namespace WixBinding.Tests.PackageFiles Assert.IsTrue(view.IsNoDifferencesFoundMessageDisplayed); } + [Test] + public void ContextMenuIsEnabled() + { + Assert.IsTrue(view.ContextMenuEnabled); + } + protected override string GetWixXml() { return "\r\n" + diff --git a/src/AddIns/BackendBindings/WixBinding/Test/PackageFiles/NoWixProductFileTestFixture.cs b/src/AddIns/BackendBindings/WixBinding/Test/PackageFiles/NoWixProductFileTestFixture.cs index 34142eed23..b9b10aa393 100644 --- a/src/AddIns/BackendBindings/WixBinding/Test/PackageFiles/NoWixProductFileTestFixture.cs +++ b/src/AddIns/BackendBindings/WixBinding/Test/PackageFiles/NoWixProductFileTestFixture.cs @@ -39,6 +39,12 @@ namespace WixBinding.Tests.PackageFiles Assert.IsTrue(view.IsNoRootDirectoryFoundMessageDisplayed); } + [Test] + public void ContextMenuIsDisabled() + { + Assert.IsFalse(view.ContextMenuEnabled); + } + protected override string GetWixXml() { return "\r\n" + diff --git a/src/AddIns/BackendBindings/WixBinding/Test/PackageFiles/NoWixSourceFileInProjectTestFixture.cs b/src/AddIns/BackendBindings/WixBinding/Test/PackageFiles/NoWixSourceFileInProjectTestFixture.cs index 8792ed93e7..6bb7b5d890 100644 --- a/src/AddIns/BackendBindings/WixBinding/Test/PackageFiles/NoWixSourceFileInProjectTestFixture.cs +++ b/src/AddIns/BackendBindings/WixBinding/Test/PackageFiles/NoWixSourceFileInProjectTestFixture.cs @@ -25,6 +25,7 @@ namespace WixBinding.Tests.PackageFiles WixProject p = WixBindingTestsHelper.CreateEmptyWixProject(); p.Name = "MySetup"; view = new MockWixPackageFilesView(); + view.ContextMenuEnabled = true; WixPackageFilesEditor editor = new WixPackageFilesEditor(view, this, this); editor.ShowFiles(p); } @@ -55,5 +56,11 @@ namespace WixBinding.Tests.PackageFiles public void Write(WixDocument document) { } + + [Test] + public void ContextMenuDisabledInPackageFilesView() + { + Assert.IsFalse(view.ContextMenuEnabled); + } } } diff --git a/src/AddIns/BackendBindings/WixBinding/Test/Utils/MockWixPackageFilesView.cs b/src/AddIns/BackendBindings/WixBinding/Test/Utils/MockWixPackageFilesView.cs index 2e403bd3ef..12c95a0281 100644 --- a/src/AddIns/BackendBindings/WixBinding/Test/Utils/MockWixPackageFilesView.cs +++ b/src/AddIns/BackendBindings/WixBinding/Test/Utils/MockWixPackageFilesView.cs @@ -33,6 +33,7 @@ namespace WixBinding.Tests.Utils List directoriesAdded = new List(); bool clearDirectoriesCalled; WixPackageFilesDiffResult[] diffResults; + bool contextMenuEnabled; public MockWixPackageFilesView() { @@ -216,5 +217,10 @@ namespace WixBinding.Tests.Utils return diffResults; } } + + public bool ContextMenuEnabled { + get { return contextMenuEnabled; } + set { contextMenuEnabled = value; } + } } } diff --git a/src/AddIns/BackendBindings/WixBinding/WixBinding.sln b/src/AddIns/BackendBindings/WixBinding/WixBinding.sln index 43b65f9dbd..2544e87823 100644 --- a/src/AddIns/BackendBindings/WixBinding/WixBinding.sln +++ b/src/AddIns/BackendBindings/WixBinding/WixBinding.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 10.00 # Visual Studio 2008 -# SharpDevelop 3.0.0.3280 +# SharpDevelop 3.2.0.5687 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WixBinding", "Project\WixBinding.csproj", "{e1b288a2-08ee-4318-8bbb-8ab72c69e33e}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WixBinding.Tests", "Test\WixBinding.Tests.csproj", "{388E7B64-0393-4EB4-A3E3-5C474F141853}" @@ -26,6 +26,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop.Wi EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop.BuildWorker", "..\..\..\Main\ICSharpCode.SharpDevelop.BuildWorker\ICSharpCode.SharpDevelop.BuildWorker.csproj", "{C3CBC8E3-81D8-4C5B-9941-DCCD12D50B1F}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Core.WinForms", "..\..\..\Main\ICSharpCode.Core.WinForms\ICSharpCode.Core.WinForms.csproj", "{857CA1A3-FC88-4BE0-AB6A-D1EE772AB288}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -80,5 +82,9 @@ Global {C3CBC8E3-81D8-4C5B-9941-DCCD12D50B1F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {C3CBC8E3-81D8-4C5B-9941-DCCD12D50B1F}.Release|Any CPU.Build.0 = Release|Any CPU {C3CBC8E3-81D8-4C5B-9941-DCCD12D50B1F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {857CA1A3-FC88-4BE0-AB6A-D1EE772AB288}.Debug|Any CPU.Build.0 = Debug|Any CPU + {857CA1A3-FC88-4BE0-AB6A-D1EE772AB288}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {857CA1A3-FC88-4BE0-AB6A-D1EE772AB288}.Release|Any CPU.Build.0 = Release|Any CPU + {857CA1A3-FC88-4BE0-AB6A-D1EE772AB288}.Release|Any CPU.ActiveCfg = Release|Any CPU EndGlobalSection EndGlobal