Index: Core/Common/src/Core.Common.Gui/ContextMenu/ContextMenuBuilder.cs =================================================================== diff -u -r97989f272e0b9aadccf3a444a90e61879616a0ab -re6e92cb42b1e4983add2406300958b6b116ba781 --- Core/Common/src/Core.Common.Gui/ContextMenu/ContextMenuBuilder.cs (.../ContextMenuBuilder.cs) (revision 97989f272e0b9aadccf3a444a90e61879616a0ab) +++ Core/Common/src/Core.Common.Gui/ContextMenu/ContextMenuBuilder.cs (.../ContextMenuBuilder.cs) (revision e6e92cb42b1e4983add2406300958b6b116ba781) @@ -57,6 +57,20 @@ } /// + /// Adds an item to the , which opens a view for the data of the . + /// + /// The itself, so that operations can be easily chained. + /// If the was not passed on construction, this method will not add an item. + public ContextMenuBuilder AddOpenItem() + { + if (guiItemsFactory != null) + { + AddItem(guiItemsFactory.CreateOpenItem()); + } + return this; + } + + /// /// Adds an item to the , which exports the data of the . /// /// The itself, so that operations can be easily chained. Index: Core/Common/src/Core.Common.Gui/ContextMenu/GuiContextMenuItemFactory.cs =================================================================== diff -u -r97989f272e0b9aadccf3a444a90e61879616a0ab -re6e92cb42b1e4983add2406300958b6b116ba781 --- Core/Common/src/Core.Common.Gui/ContextMenu/GuiContextMenuItemFactory.cs (.../GuiContextMenuItemFactory.cs) (revision 97989f272e0b9aadccf3a444a90e61879616a0ab) +++ Core/Common/src/Core.Common.Gui/ContextMenu/GuiContextMenuItemFactory.cs (.../GuiContextMenuItemFactory.cs) (revision e6e92cb42b1e4983add2406300958b6b116ba781) @@ -42,6 +42,25 @@ } /// + /// Creates a which is bound to the action of opening a view + /// for the data of the . + /// + /// The created . + public ToolStripItem CreateOpenItem() + { + var data = treeNode.Tag; + var viewers = gui.Plugins.SelectMany(p => p.GetViewInfoObjects()).Where(pi => pi.DataType == data.GetType()); ; + var newItem = new ToolStripMenuItem(Resources.Open) + { + ToolTipText = Resources.Open_ToolTip, + Image = Resources.OpenIcon, + Enabled = viewers.Any() + }; + + return newItem; + } + + /// /// Creates a which is bound to the action of exporting /// the data of the . /// Index: Core/Common/src/Core.Common.Gui/Core.Common.Gui.csproj =================================================================== diff -u -ra80efa8773c3efec54ba44940945b03bc3f3ff7e -re6e92cb42b1e4983add2406300958b6b116ba781 --- Core/Common/src/Core.Common.Gui/Core.Common.Gui.csproj (.../Core.Common.Gui.csproj) (revision a80efa8773c3efec54ba44940945b03bc3f3ff7e) +++ Core/Common/src/Core.Common.Gui/Core.Common.Gui.csproj (.../Core.Common.Gui.csproj) (revision e6e92cb42b1e4983add2406300958b6b116ba781) @@ -365,6 +365,7 @@ Always + Index: Core/Common/src/Core.Common.Gui/Properties/Resources.Designer.cs =================================================================== diff -u -r97989f272e0b9aadccf3a444a90e61879616a0ab -re6e92cb42b1e4983add2406300958b6b116ba781 --- Core/Common/src/Core.Common.Gui/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 97989f272e0b9aadccf3a444a90e61879616a0ab) +++ Core/Common/src/Core.Common.Gui/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision e6e92cb42b1e4983add2406300958b6b116ba781) @@ -1503,6 +1503,24 @@ } /// + /// Looks up a localized string similar to &Openen. + /// + public static string Open { + get { + return ResourceManager.GetString("Open", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Open de gegevens in een nieuw documentvenster.. + /// + public static string Open_ToolTip { + get { + return ResourceManager.GetString("Open_ToolTip", resourceCulture); + } + } + + /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// public static System.Drawing.Bitmap openfolderHS { @@ -1513,6 +1531,16 @@ } /// + /// Looks up a localized resource of type System.Drawing.Bitmap. + /// + public static System.Drawing.Bitmap OpenIcon { + get { + object obj = ResourceManager.GetObject("OpenIcon", resourceCulture); + return ((System.Drawing.Bitmap)(obj)); + } + } + + /// /// Looks up a localized string similar to Openen van bestaand Ringtoets project.. /// public static string Opening_existing_project { Index: Core/Common/src/Core.Common.Gui/Properties/Resources.resx =================================================================== diff -u -r97989f272e0b9aadccf3a444a90e61879616a0ab -re6e92cb42b1e4983add2406300958b6b116ba781 --- Core/Common/src/Core.Common.Gui/Properties/Resources.resx (.../Resources.resx) (revision 97989f272e0b9aadccf3a444a90e61879616a0ab) +++ Core/Common/src/Core.Common.Gui/Properties/Resources.resx (.../Resources.resx) (revision e6e92cb42b1e4983add2406300958b6b116ba781) @@ -869,4 +869,13 @@ Kan geen element in het contextmenu creƫren zonder dat de knoop bekend is. + + &Openen + + + ..\resources\arrow.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + Open de gegevens in een nieuw documentvenster. + \ No newline at end of file Index: Core/Common/src/Core.Common.Gui/Resources/arrow.png =================================================================== diff -u Binary files differ Index: Core/Common/test/Core.Common.Gui.Test/ContextMenu/ContextMenuBuilderTest.cs =================================================================== diff -u -ra80efa8773c3efec54ba44940945b03bc3f3ff7e -re6e92cb42b1e4983add2406300958b6b116ba781 --- Core/Common/test/Core.Common.Gui.Test/ContextMenu/ContextMenuBuilderTest.cs (.../ContextMenuBuilderTest.cs) (revision a80efa8773c3efec54ba44940945b03bc3f3ff7e) +++ Core/Common/test/Core.Common.Gui.Test/ContextMenu/ContextMenuBuilderTest.cs (.../ContextMenuBuilderTest.cs) (revision e6e92cb42b1e4983add2406300958b6b116ba781) @@ -102,6 +102,45 @@ Assert.AreEqual(Resources.Collapse_all, collapseAll.Text); Assert.AreEqual(Resources.Collapse_all_ToolTip, collapseAll.ToolTipText); TestHelper.AssertImagesAreEqual(Resources.CollapseAllIcon, collapseAll.Image); + } + + [Test] + public void AddOpenItem_WithoutGuiWhenBuild_ContextMenuEmpty() + { + // Setup + var builder = new ContextMenuBuilder(null, MockRepository.GenerateMock()); + + // Call + var result = builder.AddOpenItem().Build(); + + // Assert + Assert.IsInstanceOf(result); + Assert.IsEmpty(result.Items); + } + + [Test] + public void AddOpenItem_WithGuiWhenBuild_ItemAddedToContextMenu() + { + // Setup + var guiStub = mocks.StrictMock(); + guiStub.Expect(g => g.Plugins).Return(new GuiPlugin[0]); + var builder = new ContextMenuBuilder(guiStub, MockRepository.GenerateMock()); + + mocks.ReplayAll(); + + // Call + var result = builder.AddOpenItem().Build(); + + // Assert + Assert.IsInstanceOf(result); + Assert.AreEqual(1, result.Items.Count); + + var export = result.Items[0]; + Assert.AreEqual(Resources.Open, export.Text); + Assert.AreEqual(Resources.Open_ToolTip, export.ToolTipText); + TestHelper.AssertImagesAreEqual(Resources.OpenIcon, export.Image); + + mocks.VerifyAll(); } [Test] @@ -124,9 +163,10 @@ // Setup var guiStub = mocks.StrictMock(); guiStub.Expect(g => g.ApplicationCore).Return(new ApplicationCore()); - guiStub.Expect(g => g.Plugins).Return(new GuiPlugin[0]); var builder = new ContextMenuBuilder(guiStub, MockRepository.GenerateMock()); + mocks.ReplayAll(); + // Call var result = builder.AddExportItem().Build(); @@ -138,6 +178,8 @@ Assert.AreEqual(Resources.Export, export.Text); Assert.AreEqual(Resources.Export_ToolTip, export.ToolTipText); TestHelper.AssertImagesAreEqual(Resources.ExportIcon, export.Image); + + mocks.VerifyAll(); } [Test] @@ -160,9 +202,10 @@ // Setup var guiStub = mocks.StrictMock(); guiStub.Expect(g => g.ApplicationCore).Return(new ApplicationCore()); - guiStub.Expect(g => g.Plugins).Return(new GuiPlugin[0]); var builder = new ContextMenuBuilder(guiStub, MockRepository.GenerateMock()); + mocks.ReplayAll(); + // Call var result = builder.AddImportItem().Build(); @@ -174,6 +217,8 @@ Assert.AreEqual(Resources.Import, import.Text); Assert.AreEqual(Resources.Import_ToolTip, import.ToolTipText); TestHelper.AssertImagesAreEqual(Resources.ImportIcon, import.Image); + + mocks.VerifyAll(); } [Test] Index: Core/Common/test/Core.Common.Gui.Test/ContextMenu/GuiContextMenuItemFactoryTest.cs =================================================================== diff -u -r97989f272e0b9aadccf3a444a90e61879616a0ab -re6e92cb42b1e4983add2406300958b6b116ba781 --- Core/Common/test/Core.Common.Gui.Test/ContextMenu/GuiContextMenuItemFactoryTest.cs (.../GuiContextMenuItemFactoryTest.cs) (revision 97989f272e0b9aadccf3a444a90e61879616a0ab) +++ Core/Common/test/Core.Common.Gui.Test/ContextMenu/GuiContextMenuItemFactoryTest.cs (.../GuiContextMenuItemFactoryTest.cs) (revision e6e92cb42b1e4983add2406300958b6b116ba781) @@ -61,15 +61,68 @@ } [Test] - public void CreateExportItem_NoImportersForType_Disabled() + public void CreateOpenItem_NoViewersForType_Disabled() { // Setup var guiMock = mocks.StrictMock(); var treeNodeMock = mocks.Stub(); treeNodeMock.Tag = ""; + guiMock.Expect(g => g.Plugins).Return(pluginList); + + var contextMenuFactory = new GuiContextMenuItemFactory(guiMock, treeNodeMock); + + mocks.ReplayAll(); + + // Call + var item = contextMenuFactory.CreateOpenItem(); + + // Assert + Assert.AreEqual(Resources.Open, item.Text); + Assert.AreEqual(Resources.Open_ToolTip, item.ToolTipText); + TestHelper.AssertImagesAreEqual(Resources.OpenIcon, item.Image); + Assert.IsFalse(item.Enabled); + } + + [Test] + public void CreateOpentem_ImportersForType_Enabled() + { + // Setup + var guiMock = mocks.StrictMock(); + var treeNodeMock = mocks.Stub(); + treeNodeMock.Tag = 0; + guiMock.Expect(g => g.Plugins).Return(pluginList); + + var contextMenuFactory = new GuiContextMenuItemFactory(guiMock, treeNodeMock); + + mocks.ReplayAll(); + + // Call + var item = contextMenuFactory.CreateOpenItem(); + + // Assert + Assert.AreEqual(Resources.Open, item.Text); + Assert.AreEqual(Resources.Open_ToolTip, item.ToolTipText); + TestHelper.AssertImagesAreEqual(Resources.OpenIcon, item.Image); + Assert.IsTrue(item.Enabled); + } + + [Test] + public void CreateExportItem_NoImporterExportersForType_Disabled() + { + // Setup + var guiMock = mocks.StrictMock(); + var treeNodeMock = mocks.Stub(); var applicationCore = new ApplicationCore(); - applicationCore.AddPlugin(new TestApplicationPlugin(mocks)); + var data = 0; + treeNodeMock.Tag = data; + + var testApplicationPlugin = new TestApplicationPlugin(); + testApplicationPlugin.ExporterMock = mocks.StrictMock(); + testApplicationPlugin.ExporterMock.Expect(e => e.SourceTypes()).Return(new Type[0]); + + applicationCore.AddPlugin(testApplicationPlugin); guiMock.Expect(g => g.ApplicationCore).Return(applicationCore); + var contextMenuFactory = new GuiContextMenuItemFactory(guiMock, treeNodeMock); mocks.ReplayAll(); @@ -78,22 +131,32 @@ var item = contextMenuFactory.CreateExportItem(); // Assert - Assert.AreEqual(Properties.Resources.Export, item.Text); - Assert.AreEqual(Properties.Resources.Export_ToolTip, item.ToolTipText); - TestHelper.AssertImagesAreEqual(Properties.Resources.ExportIcon, item.Image); + Assert.AreEqual(Resources.Export, item.Text); + Assert.AreEqual(Resources.Export_ToolTip, item.ToolTipText); + TestHelper.AssertImagesAreEqual(Resources.ExportIcon, item.Image); Assert.IsFalse(item.Enabled); + + mocks.VerifyAll(); } [Test] - public void CreateExportItem_ImportersForType_Enabled() + public void CreateExportItem_ExportersForType_Enabled() { // Setup var guiMock = mocks.StrictMock(); var treeNodeMock = mocks.Stub(); - treeNodeMock.Tag = 0; var applicationCore = new ApplicationCore(); - applicationCore.AddPlugin(new TestApplicationPlugin(mocks)); + var data = 0; + treeNodeMock.Tag = data; + + var testApplicationPlugin = new TestApplicationPlugin(); + testApplicationPlugin.ExporterMock = mocks.StrictMock(); + testApplicationPlugin.ExporterMock.Expect(e => e.SourceTypes()).Return(new[] { data.GetType() }); + testApplicationPlugin.ExporterMock.Expect(e => e.CanExportFor(data)).Return(true); + + applicationCore.AddPlugin(testApplicationPlugin); guiMock.Expect(g => g.ApplicationCore).Return(applicationCore); + var contextMenuFactory = new GuiContextMenuItemFactory(guiMock, treeNodeMock); mocks.ReplayAll(); @@ -102,10 +165,12 @@ var item = contextMenuFactory.CreateExportItem(); // Assert - Assert.AreEqual(Properties.Resources.Export, item.Text); - Assert.AreEqual(Properties.Resources.Export_ToolTip, item.ToolTipText); - TestHelper.AssertImagesAreEqual(Properties.Resources.ExportIcon, item.Image); + Assert.AreEqual(Resources.Export, item.Text); + Assert.AreEqual(Resources.Export_ToolTip, item.ToolTipText); + TestHelper.AssertImagesAreEqual(Resources.ExportIcon, item.Image); Assert.IsTrue(item.Enabled); + + mocks.VerifyAll(); } [Test] @@ -114,9 +179,15 @@ // Setup var guiMock = mocks.StrictMock(); var treeNodeMock = mocks.Stub(); - treeNodeMock.Tag = ""; var applicationCore = new ApplicationCore(); - applicationCore.AddPlugin(new TestApplicationPlugin(mocks)); + var data = 0; + treeNodeMock.Tag = data; + + var testApplicationPlugin = new TestApplicationPlugin(); + testApplicationPlugin.ImporterMock = mocks.StrictMock(); + testApplicationPlugin.ImporterMock.Expect(e => e.SupportedItemTypes).Return(new Type[0]) ; + + applicationCore.AddPlugin(testApplicationPlugin); guiMock.Expect(g => g.ApplicationCore).Return(applicationCore); var contextMenuFactory = new GuiContextMenuItemFactory(guiMock, treeNodeMock); @@ -126,10 +197,12 @@ var item = contextMenuFactory.CreateImportItem(); // Assert - Assert.AreEqual(Properties.Resources.Import, item.Text); - Assert.AreEqual(Properties.Resources.Import_ToolTip, item.ToolTipText); - TestHelper.AssertImagesAreEqual(Properties.Resources.ImportIcon, item.Image); + Assert.AreEqual(Resources.Import, item.Text); + Assert.AreEqual(Resources.Import_ToolTip, item.ToolTipText); + TestHelper.AssertImagesAreEqual(Resources.ImportIcon, item.Image); Assert.IsFalse(item.Enabled); + + mocks.VerifyAll(); } [Test] @@ -138,9 +211,16 @@ // Setup var guiMock = mocks.StrictMock(); var treeNodeMock = mocks.Stub(); - treeNodeMock.Tag = 0; var applicationCore = new ApplicationCore(); - applicationCore.AddPlugin(new TestApplicationPlugin(mocks)); + var data = 0; + treeNodeMock.Tag = data; + + var testApplicationPlugin = new TestApplicationPlugin(); + testApplicationPlugin.ImporterMock = mocks.StrictMock(); + testApplicationPlugin.ImporterMock.Expect(e => e.SupportedItemTypes).Return(new[] { data.GetType() }); + testApplicationPlugin.ImporterMock.Expect(e => e.CanImportOn(data)).Return(true); + + applicationCore.AddPlugin(testApplicationPlugin); guiMock.Expect(g => g.ApplicationCore).Return(applicationCore); var contextMenuFactory = new GuiContextMenuItemFactory(guiMock, treeNodeMock); @@ -150,10 +230,12 @@ var item = contextMenuFactory.CreateImportItem(); // Assert - Assert.AreEqual(Properties.Resources.Import, item.Text); - Assert.AreEqual(Properties.Resources.Import_ToolTip, item.ToolTipText); - TestHelper.AssertImagesAreEqual(Properties.Resources.ImportIcon, item.Image); + Assert.AreEqual(Resources.Import, item.Text); + Assert.AreEqual(Resources.Import_ToolTip, item.ToolTipText); + TestHelper.AssertImagesAreEqual(Resources.ImportIcon, item.Image); Assert.IsTrue(item.Enabled); + + mocks.VerifyAll(); } [Test] @@ -173,9 +255,9 @@ var item = contextMenuFactory.CreatePropertiesItem(); // Assert - Assert.AreEqual(Properties.Resources.Properties, item.Text); - Assert.AreEqual(Properties.Resources.Properties_ToolTip, item.ToolTipText); - TestHelper.AssertImagesAreEqual(Properties.Resources.PropertiesIcon, item.Image); + Assert.AreEqual(Resources.Properties, item.Text); + Assert.AreEqual(Resources.Properties_ToolTip, item.ToolTipText); + TestHelper.AssertImagesAreEqual(Resources.PropertiesIcon, item.Image); Assert.IsTrue(item.Enabled); mocks.VerifyAll(); @@ -198,9 +280,9 @@ var item = contextMenuFactory.CreatePropertiesItem(); // Assert - Assert.AreEqual(Properties.Resources.Properties, item.Text); - Assert.AreEqual(Properties.Resources.Properties_ToolTip, item.ToolTipText); - TestHelper.AssertImagesAreEqual(Properties.Resources.PropertiesIcon, item.Image); + Assert.AreEqual(Resources.Properties, item.Text); + Assert.AreEqual(Resources.Properties_ToolTip, item.ToolTipText); + TestHelper.AssertImagesAreEqual(Resources.PropertiesIcon, item.Image); Assert.IsFalse(item.Enabled); mocks.VerifyAll(); @@ -253,34 +335,17 @@ public class TestApplicationPlugin : ApplicationPlugin { - private readonly IFileExporter exporterMock; - private readonly IFileImporter importerMock; - - public TestApplicationPlugin(MockRepository mocks) - { - var typeList = new[] - { - 0.GetType(), - "".GetType() - }; - exporterMock = mocks.DynamicMock(); - exporterMock.Expect(e => e.CanExportFor(0)).Return(true); - exporterMock.Expect(e => e.CanExportFor("")).Return(false); - exporterMock.Expect(e => e.SourceTypes()).Return(typeList); - importerMock = mocks.DynamicMock(); - importerMock.Expect(e => e.CanImportOn(0)).Return(true); - importerMock.Expect(e => e.CanImportOn("")).Return(false); - importerMock.Expect(e => e.SupportedItemTypes).Return(typeList); - } - + public IFileExporter ExporterMock { get; set; } + public IFileImporter ImporterMock { get; set; } + public override IEnumerable GetFileExporters() { - yield return exporterMock; + yield return ExporterMock; } public override IEnumerable GetFileImporters() { - yield return importerMock; + yield return ImporterMock; } } @@ -293,5 +358,13 @@ ObjectType = typeof(int) }; } + + public override IEnumerable GetViewInfoObjects() + { + yield return new ViewInfo + { + DataType = typeof(int) + }; + } } } \ No newline at end of file Index: Ringtoets/Common/src/Ringtoets.Common.Forms/Properties/Resources.Designer.cs =================================================================== diff -u -re388ea76d1d044298cc89156c8744fbea1bcb736 -re6e92cb42b1e4983add2406300958b6b116ba781 --- Ringtoets/Common/src/Ringtoets.Common.Forms/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision e388ea76d1d044298cc89156c8744fbea1bcb736) +++ Ringtoets/Common/src/Ringtoets.Common.Forms/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision e6e92cb42b1e4983add2406300958b6b116ba781) @@ -117,26 +117,6 @@ } /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - public static System.Drawing.Bitmap CollapseAllIcon { - get { - object obj = ResourceManager.GetObject("CollapseAllIcon", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - public static System.Drawing.Bitmap ExpandAllIcon { - get { - object obj = ResourceManager.GetObject("ExpandAllIcon", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// /// Looks up a localized string similar to Berekeningen. /// public static string FailureMechanism_Calculations_DisplayName { @@ -173,42 +153,6 @@ } /// - /// Looks up a localized string similar to &Importeren.... - /// - public static string FailureMechanism_InputsOutputs_Import { - get { - return ResourceManager.GetString("FailureMechanism_InputsOutputs_Import", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Importeer gegevens vanuit een bestand.. - /// - public static string FailureMechanism_InputsOutputs_Import_ToolTip { - get { - return ResourceManager.GetString("FailureMechanism_InputsOutputs_Import_ToolTip", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to &Openen. - /// - public static string FailureMechanism_InputsOutputs_Open { - get { - return ResourceManager.GetString("FailureMechanism_InputsOutputs_Open", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Open de gegevens in een nieuw documentvenster.. - /// - public static string FailureMechanism_InputsOutputs_Open_ToolTip { - get { - return ResourceManager.GetString("FailureMechanism_InputsOutputs_Open_ToolTip", resourceCulture); - } - } - - /// /// Looks up a localized string similar to Uitvoer. /// public static string FailureMechanism_Outputs_DisplayName { @@ -240,16 +184,6 @@ /// /// Looks up a localized resource of type System.Drawing.Bitmap. /// - public static System.Drawing.Bitmap OpenIcon { - get { - object obj = ResourceManager.GetObject("OpenIcon", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// public static System.Drawing.Bitmap OutputFolderIcon { get { object obj = ResourceManager.GetObject("OutputFolderIcon", resourceCulture); Index: Ringtoets/Common/src/Ringtoets.Common.Forms/Properties/Resources.resx =================================================================== diff -u -re388ea76d1d044298cc89156c8744fbea1bcb736 -re6e92cb42b1e4983add2406300958b6b116ba781 --- Ringtoets/Common/src/Ringtoets.Common.Forms/Properties/Resources.resx (.../Resources.resx) (revision e388ea76d1d044298cc89156c8744fbea1bcb736) +++ Ringtoets/Common/src/Ringtoets.Common.Forms/Properties/Resources.resx (.../Resources.resx) (revision e6e92cb42b1e4983add2406300958b6b116ba781) @@ -157,21 +157,6 @@ Wis de gegevens. - - &Importeren... - - - Importeer gegevens vanuit een bestand. - - - &Openen - - - Open de gegevens in een nieuw documentvenster. - - - ..\resources\arrow.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\resources\playall.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a @@ -181,12 +166,6 @@ Wis de uitvoer van alle berekeningen binnen het faalmechanisme. - - ..\Resources\arrow-stop-090.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - - ..\Resources\arrow-stop-270.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\resources\table_delete.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a Index: Ringtoets/Common/src/Ringtoets.Common.Forms/Resources/arrow-stop-090.png =================================================================== diff -u -rd3747e8b32bdedc478c8182bce75fba78269d34d -re6e92cb42b1e4983add2406300958b6b116ba781 Binary files differ Index: Ringtoets/Common/src/Ringtoets.Common.Forms/Resources/arrow-stop-270.png =================================================================== diff -u -rd3747e8b32bdedc478c8182bce75fba78269d34d -re6e92cb42b1e4983add2406300958b6b116ba781 Binary files differ Index: Ringtoets/Common/src/Ringtoets.Common.Forms/Resources/arrow.png =================================================================== diff -u -rd3747e8b32bdedc478c8182bce75fba78269d34d -re6e92cb42b1e4983add2406300958b6b116ba781 Binary files differ Index: Ringtoets/Common/src/Ringtoets.Common.Forms/Ringtoets.Common.Forms.csproj =================================================================== diff -u -r2afad189e942019ef3da47d72e134f3a4c6c7884 -re6e92cb42b1e4983add2406300958b6b116ba781 --- Ringtoets/Common/src/Ringtoets.Common.Forms/Ringtoets.Common.Forms.csproj (.../Ringtoets.Common.Forms.csproj) (revision 2afad189e942019ef3da47d72e134f3a4c6c7884) +++ Ringtoets/Common/src/Ringtoets.Common.Forms/Ringtoets.Common.Forms.csproj (.../Ringtoets.Common.Forms.csproj) (revision e6e92cb42b1e4983add2406300958b6b116ba781) @@ -95,15 +95,6 @@ - - - - - - - - - Index: Ringtoets/Integration/src/Ringtoets.Integration.Forms/NodePresenters/PlaceholderWithReadonlyNameNodePresenter.cs =================================================================== diff -u -r97989f272e0b9aadccf3a444a90e61879616a0ab -re6e92cb42b1e4983add2406300958b6b116ba781 --- Ringtoets/Integration/src/Ringtoets.Integration.Forms/NodePresenters/PlaceholderWithReadonlyNameNodePresenter.cs (.../PlaceholderWithReadonlyNameNodePresenter.cs) (revision 97989f272e0b9aadccf3a444a90e61879616a0ab) +++ Ringtoets/Integration/src/Ringtoets.Integration.Forms/NodePresenters/PlaceholderWithReadonlyNameNodePresenter.cs (.../PlaceholderWithReadonlyNameNodePresenter.cs) (revision e6e92cb42b1e4983add2406300958b6b116ba781) @@ -45,13 +45,6 @@ if (nodeData is InputPlaceholder || nodeData is OutputPlaceholder) { - var openItem = new ToolStripMenuItem - { - Text = RingtoetsCommonFormsResources.FailureMechanism_InputsOutputs_Open, - ToolTipText = RingtoetsCommonFormsResources.FailureMechanism_InputsOutputs_Open_ToolTip, - Image = RingtoetsCommonFormsResources.OpenIcon, - Enabled = false - }; var clearItem = new ToolStripMenuItem { Text = RingtoetsCommonFormsResources.FailureMechanism_InputsOutputs_Erase, @@ -60,7 +53,7 @@ Enabled = false }; - menuBuilder.AddCustomItem(openItem) + menuBuilder.AddOpenItem() .AddCustomItem(clearItem) .AddSeparator(); } Index: Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/NodePresenters/PlaceholderWithReadonlyNameNodePresenterTest.cs =================================================================== diff -u -ra80efa8773c3efec54ba44940945b03bc3f3ff7e -re6e92cb42b1e4983add2406300958b6b116ba781 --- Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/NodePresenters/PlaceholderWithReadonlyNameNodePresenterTest.cs (.../PlaceholderWithReadonlyNameNodePresenterTest.cs) (revision a80efa8773c3efec54ba44940945b03bc3f3ff7e) +++ Ringtoets/Integration/test/Ringtoets.Integration.Forms.Test/NodePresenters/PlaceholderWithReadonlyNameNodePresenterTest.cs (.../PlaceholderWithReadonlyNameNodePresenterTest.cs) (revision e6e92cb42b1e4983add2406300958b6b116ba781) @@ -210,12 +210,11 @@ var menu = nodePresenter.GetContextMenu(nodeMock, placeholderData); // Assert - Assert.AreEqual(3, menu.Items.Count); + Assert.AreEqual(2, menu.Items.Count); - TestHelper.AssertContextMenuStripContainsItem(menu, 0, RingtoetsCommonFormsResources.FailureMechanism_InputsOutputs_Open, RingtoetsCommonFormsResources.FailureMechanism_InputsOutputs_Open_ToolTip, RingtoetsCommonFormsResources.OpenIcon, false); - TestHelper.AssertContextMenuStripContainsItem(menu, 1, RingtoetsCommonFormsResources.FailureMechanism_InputsOutputs_Erase, RingtoetsCommonFormsResources.FailureMechanism_InputsOutputs_Erase_ToolTip, RingtoetsCommonFormsResources.ClearIcon, false); + TestHelper.AssertContextMenuStripContainsItem(menu, 0, RingtoetsCommonFormsResources.FailureMechanism_InputsOutputs_Erase, RingtoetsCommonFormsResources.FailureMechanism_InputsOutputs_Erase_ToolTip, RingtoetsCommonFormsResources.ClearIcon, false); - CollectionAssert.AllItemsAreInstancesOfType(new[] { menu.Items[2] }, typeof(ToolStripSeparator)); + CollectionAssert.AllItemsAreInstancesOfType(new[] { menu.Items[1] }, typeof(ToolStripSeparator)); mocks.VerifyAll(); } @@ -238,13 +237,84 @@ var menu = nodePresenter.GetContextMenu(nodeMock, placeholderData); // Assert - Assert.AreEqual(3, menu.Items.Count); + Assert.AreEqual(2, menu.Items.Count); - TestHelper.AssertContextMenuStripContainsItem(menu, 0, RingtoetsCommonFormsResources.FailureMechanism_InputsOutputs_Open, RingtoetsCommonFormsResources.FailureMechanism_InputsOutputs_Open_ToolTip, RingtoetsCommonFormsResources.OpenIcon, false); + TestHelper.AssertContextMenuStripContainsItem(menu, 0, RingtoetsCommonFormsResources.FailureMechanism_InputsOutputs_Erase, RingtoetsCommonFormsResources.FailureMechanism_InputsOutputs_Erase_ToolTip, RingtoetsCommonFormsResources.ClearIcon, false); + + CollectionAssert.AllItemsAreInstancesOfType(new[] { menu.Items[1] }, typeof(ToolStripSeparator)); + + mocks.VerifyAll(); + } + + [Test] + public void GetContextMenu_InputPlaceHolderWithGui_ReturnsContextMenuWithItems() + { + // Setup + var nodeMock = mocks.Stub(); + var guiMock = mocks.DynamicMock(); + var guiHandlerMock = mocks.DynamicMock(); + guiMock.Expect(g => g.ApplicationCore).Return(new ApplicationCore()); + guiMock.Expect(g => g.CommandHandler).Return(guiHandlerMock); + guiMock.Expect(g => g.Plugins).Return(new GuiPlugin[0]); + + var contextMenuProvider = mocks.StrictMock(); + contextMenuProvider.Expect(cmp => cmp.Get(null)).IgnoreArguments().Return(new ContextMenuBuilder(guiMock, nodeMock)); + + var nodePresenter = new PlaceholderWithReadonlyNameNodePresenter(contextMenuProvider); + var placeholderData = new InputPlaceholder("test"); + + mocks.ReplayAll(); + + // Call + var menu = nodePresenter.GetContextMenu(nodeMock, placeholderData); + + // Assert + Assert.AreEqual(7, menu.Items.Count); + + TestHelper.AssertContextMenuStripContainsItem(menu, 0, CommonResources.Open, CommonResources.Open_ToolTip, CommonResources.OpenIcon, false); TestHelper.AssertContextMenuStripContainsItem(menu, 1, RingtoetsCommonFormsResources.FailureMechanism_InputsOutputs_Erase, RingtoetsCommonFormsResources.FailureMechanism_InputsOutputs_Erase_ToolTip, RingtoetsCommonFormsResources.ClearIcon, false); + TestHelper.AssertContextMenuStripContainsItem(menu, 3, CommonResources.Import, CommonResources.Import_ToolTip, CommonResources.ImportIcon, false); + TestHelper.AssertContextMenuStripContainsItem(menu, 4, CommonResources.Export, CommonResources.Export_ToolTip, CommonResources.ExportIcon, false); + TestHelper.AssertContextMenuStripContainsItem(menu, 6, CommonResources.Properties, CommonResources.Properties_ToolTip, CommonResources.PropertiesIcon, false); - CollectionAssert.AllItemsAreInstancesOfType(new[] { menu.Items[2] }, typeof(ToolStripSeparator)); + CollectionAssert.AllItemsAreInstancesOfType(new[] { menu.Items[2], menu.Items[5] }, typeof(ToolStripSeparator)); + + mocks.VerifyAll(); + } + [Test] + public void GetContextMenu_OutputPlaceHolderWithGui_ReturnsContextMenuWithItems() + { + // Setup + var nodeMock = mocks.Stub(); + var guiMock = mocks.DynamicMock(); + var guiHandlerMock = mocks.DynamicMock(); + guiMock.Expect(g => g.ApplicationCore).Return(new ApplicationCore()); + guiMock.Expect(g => g.CommandHandler).Return(guiHandlerMock); + guiMock.Expect(g => g.Plugins).Return(new GuiPlugin[0]); + + var contextMenuProvider = mocks.StrictMock(); + contextMenuProvider.Expect(cmp => cmp.Get(null)).IgnoreArguments().Return(new ContextMenuBuilder(guiMock, nodeMock)); + + var nodePresenter = new PlaceholderWithReadonlyNameNodePresenter(contextMenuProvider); + var placeholderData = new OutputPlaceholder("test"); + + mocks.ReplayAll(); + + // Call + var menu = nodePresenter.GetContextMenu(nodeMock, placeholderData); + + // Assert + Assert.AreEqual(7, menu.Items.Count); + + TestHelper.AssertContextMenuStripContainsItem(menu, 0, CommonResources.Open, CommonResources.Open_ToolTip, CommonResources.OpenIcon, false); + TestHelper.AssertContextMenuStripContainsItem(menu, 1, RingtoetsCommonFormsResources.FailureMechanism_InputsOutputs_Erase, RingtoetsCommonFormsResources.FailureMechanism_InputsOutputs_Erase_ToolTip, RingtoetsCommonFormsResources.ClearIcon, false); + TestHelper.AssertContextMenuStripContainsItem(menu, 3, CommonResources.Import, CommonResources.Import_ToolTip, CommonResources.ImportIcon, false); + TestHelper.AssertContextMenuStripContainsItem(menu, 4, CommonResources.Export, CommonResources.Export_ToolTip, CommonResources.ExportIcon, false); + TestHelper.AssertContextMenuStripContainsItem(menu, 6, CommonResources.Properties, CommonResources.Properties_ToolTip, CommonResources.PropertiesIcon, false); + + CollectionAssert.AllItemsAreInstancesOfType(new[] { menu.Items[2], menu.Items[5] }, typeof(ToolStripSeparator)); + mocks.VerifyAll(); }