Index: Core/Common/src/Core.Common.Controls/DataGrid/DataGridViewComboBoxItemWrapper.cs
===================================================================
diff -u -r24da3aa72ccc0776599628c9f971081694048d9a -r4cd987d7abd8340848d2159381f1d8ed4dfb7d96
--- Core/Common/src/Core.Common.Controls/DataGrid/DataGridViewComboBoxItemWrapper.cs (.../DataGridViewComboBoxItemWrapper.cs) (revision 24da3aa72ccc0776599628c9f971081694048d9a)
+++ Core/Common/src/Core.Common.Controls/DataGrid/DataGridViewComboBoxItemWrapper.cs (.../DataGridViewComboBoxItemWrapper.cs) (revision 4cd987d7abd8340848d2159381f1d8ed4dfb7d96)
@@ -49,7 +49,7 @@
{
get
{
- return wrappedObject == null ? Resources.DataGridViewComboBoxItemWrapper_DisplayName_None : wrappedObject.ToString();
+ return wrappedObject == null ? Resources.DisplayName_None : wrappedObject.ToString();
}
}
Index: Core/Common/src/Core.Common.Controls/Properties/Resources.Designer.cs
===================================================================
diff -u -rfea3ed82dfb6dfcad535eef16efcbaa9c01564ed -r4cd987d7abd8340848d2159381f1d8ed4dfb7d96
--- Core/Common/src/Core.Common.Controls/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision fea3ed82dfb6dfcad535eef16efcbaa9c01564ed)
+++ Core/Common/src/Core.Common.Controls/Properties/Resources.Designer.cs (.../Resources.Designer.cs) (revision 4cd987d7abd8340848d2159381f1d8ed4dfb7d96)
@@ -84,9 +84,9 @@
///
/// Looks up a localized string similar to <geen>.
///
- public static string DataGridViewComboBoxItemWrapper_DisplayName_None {
+ public static string DisplayName_None {
get {
- return ResourceManager.GetString("DataGridViewComboBoxItemWrapper_DisplayName_None", resourceCulture);
+ return ResourceManager.GetString("DisplayName_None", resourceCulture);
}
}
}
Index: Core/Common/src/Core.Common.Controls/Properties/Resources.resx
===================================================================
diff -u -r34af24d6bf23796e627fd03b7532d4abe6fc715c -r4cd987d7abd8340848d2159381f1d8ed4dfb7d96
--- Core/Common/src/Core.Common.Controls/Properties/Resources.resx (.../Resources.resx) (revision 34af24d6bf23796e627fd03b7532d4abe6fc715c)
+++ Core/Common/src/Core.Common.Controls/Properties/Resources.resx (.../Resources.resx) (revision 4cd987d7abd8340848d2159381f1d8ed4dfb7d96)
@@ -117,7 +117,7 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
+
<geen>
\ No newline at end of file
Index: Core/Common/test/Core.Common.Controls.Test/DataGrid/DataGridViewComboBoxItemWrapperTest.cs
===================================================================
diff -u -r24da3aa72ccc0776599628c9f971081694048d9a -r4cd987d7abd8340848d2159381f1d8ed4dfb7d96
--- Core/Common/test/Core.Common.Controls.Test/DataGrid/DataGridViewComboBoxItemWrapperTest.cs (.../DataGridViewComboBoxItemWrapperTest.cs) (revision 24da3aa72ccc0776599628c9f971081694048d9a)
+++ Core/Common/test/Core.Common.Controls.Test/DataGrid/DataGridViewComboBoxItemWrapperTest.cs (.../DataGridViewComboBoxItemWrapperTest.cs) (revision 4cd987d7abd8340848d2159381f1d8ed4dfb7d96)
@@ -50,7 +50,7 @@
var dataGridViewComboBoxItemWrapper = new DataGridViewComboBoxItemWrapper(null);
// Assert
- Assert.AreEqual(Resources.DataGridViewComboBoxItemWrapper_DisplayName_None, dataGridViewComboBoxItemWrapper.DisplayName);
+ Assert.AreEqual("", dataGridViewComboBoxItemWrapper.DisplayName);
Assert.IsNull(dataGridViewComboBoxItemWrapper.WrappedObject);
Assert.AreEqual(dataGridViewComboBoxItemWrapper, dataGridViewComboBoxItemWrapper.This);
}
Index: Ringtoets/Common/src/Ringtoets.Common.Forms/UITypeEditors/SelectionEditor.cs
===================================================================
diff -u -r4539b4546747c257739b1695b9ebc9c29e393ffe -r4cd987d7abd8340848d2159381f1d8ed4dfb7d96
--- Ringtoets/Common/src/Ringtoets.Common.Forms/UITypeEditors/SelectionEditor.cs (.../SelectionEditor.cs) (revision 4539b4546747c257739b1695b9ebc9c29e393ffe)
+++ Ringtoets/Common/src/Ringtoets.Common.Forms/UITypeEditors/SelectionEditor.cs (.../SelectionEditor.cs) (revision 4cd987d7abd8340848d2159381f1d8ed4dfb7d96)
@@ -63,17 +63,32 @@
editorService.DropDownControl(listBox);
// Return user selected object, or original value if user did not select anything:
- return listBox.SelectedItem ?? originalValue;
+ if (listBox.SelectedItem == null)
+ {
+ return originalValue;
+ }
+
+ if (ReferenceEquals(listBox.SelectedItem, NullItem))
+ {
+ return null;
+ }
+
+ return listBox.SelectedItem;
}
return base.EditValue(context, provider, originalValue);
}
///
- /// Gets which member to show of in the dropdown editor.
+ /// Sets which member to show of in the dropdown editor.
///
protected string DisplayMember { private get; set; }
///
+ /// Sets the item to show which represents a null value.
+ ///
+ protected TProperty NullItem { private get; set; }
+
+ ///
/// Gets the available options which populate the dropdown editor.
///
/// The context on which to base the available options.
@@ -112,6 +127,15 @@
};
listBox.SelectedValueChanged += (sender, eventArgs) => editorService.CloseDropDown();
+ if (NullItem != null)
+ {
+ int index = listBox.Items.Add(NullItem);
+ if (GetCurrentOption(context) == null)
+ {
+ listBox.SelectedIndex = index;
+ }
+ }
+
foreach (TProperty option in GetAvailableOptions(context))
{
int index = listBox.Items.Add(option);
Index: Ringtoets/Common/test/Ringtoets.Common.Forms.Test/UITypeEditors/SelectionEditorTest.cs
===================================================================
diff -u -r4539b4546747c257739b1695b9ebc9c29e393ffe -r4cd987d7abd8340848d2159381f1d8ed4dfb7d96
--- Ringtoets/Common/test/Ringtoets.Common.Forms.Test/UITypeEditors/SelectionEditorTest.cs (.../SelectionEditorTest.cs) (revision 4539b4546747c257739b1695b9ebc9c29e393ffe)
+++ Ringtoets/Common/test/Ringtoets.Common.Forms.Test/UITypeEditors/SelectionEditorTest.cs (.../SelectionEditorTest.cs) (revision 4cd987d7abd8340848d2159381f1d8ed4dfb7d96)
@@ -105,5 +105,36 @@
mockRepository.VerifyAll();
}
+
+ [Test]
+ public void EditValue_NullItem_ReturnsNull()
+ {
+ var nullItem = new object();
+ var editor = new TestSelectionEditor(nullItem);
+
+ var mockRepository = new MockRepository();
+ var provider = mockRepository.StrictMock();
+ var service = mockRepository.StrictMock();
+ var context = mockRepository.StrictMock();
+ provider.Expect(p => p.GetService(null)).IgnoreArguments().Return(service);
+ service.Expect(s => s.DropDownControl(null)).IgnoreArguments();
+ service.Expect(s => s.CloseDropDown());
+ mockRepository.ReplayAll();
+
+ // Call
+ var result = editor.EditValue(context, provider, nullItem);
+
+ // Assert
+ Assert.IsNull(result);
+ mockRepository.VerifyAll();
+ }
+
+ private class TestSelectionEditor : SelectionEditor
+ {
+ public TestSelectionEditor(object nullItem)
+ {
+ NullItem = nullItem;
+ }
+ }
}
}
\ No newline at end of file
Index: Ringtoets/StabilityStoneCover/src/Ringtoets.StabilityStoneCover.Forms/PropertyClasses/StabilityStoneCoverWaveConditionsCalculationInputContextProperties.cs
===================================================================
diff -u -rb0b6b4fe952844ddc3e253e6f88a6cccc97dc71f -r4cd987d7abd8340848d2159381f1d8ed4dfb7d96
--- Ringtoets/StabilityStoneCover/src/Ringtoets.StabilityStoneCover.Forms/PropertyClasses/StabilityStoneCoverWaveConditionsCalculationInputContextProperties.cs (.../StabilityStoneCoverWaveConditionsCalculationInputContextProperties.cs) (revision b0b6b4fe952844ddc3e253e6f88a6cccc97dc71f)
+++ Ringtoets/StabilityStoneCover/src/Ringtoets.StabilityStoneCover.Forms/PropertyClasses/StabilityStoneCoverWaveConditionsCalculationInputContextProperties.cs (.../StabilityStoneCoverWaveConditionsCalculationInputContextProperties.cs) (revision 4cd987d7abd8340848d2159381f1d8ed4dfb7d96)
@@ -237,7 +237,6 @@
}
}
- [DynamicReadOnly]
[PropertyOrder(orientationPropertyIndex)]
[ResourcesCategory(typeof(RingtoetsCommonFormsResources), "Categories_Schematization")]
[ResourcesDisplayName(typeof(RingtoetsCommonFormsResources), "Orientation_DisplayName")]
@@ -308,11 +307,5 @@
{
return data.ForeshoreProfiles;
}
-
- [DynamicReadOnlyValidationMethod]
- public bool DynamicReadOnlyValidationMethod(string propertyName)
- {
- return data.WrappedData.ForeshoreProfile == null;
- }
}
}
\ No newline at end of file
Index: Ringtoets/StabilityStoneCover/src/Ringtoets.StabilityStoneCover.Forms/UITypeEditors/StabilityStoneCoverWaveConditionsCalculationInputContextForeshoreProfileEditor.cs
===================================================================
diff -u -re4313e642aa3af2d1f1ced4c397c421579cfb36d -r4cd987d7abd8340848d2159381f1d8ed4dfb7d96
--- Ringtoets/StabilityStoneCover/src/Ringtoets.StabilityStoneCover.Forms/UITypeEditors/StabilityStoneCoverWaveConditionsCalculationInputContextForeshoreProfileEditor.cs (.../StabilityStoneCoverWaveConditionsCalculationInputContextForeshoreProfileEditor.cs) (revision e4313e642aa3af2d1f1ced4c397c421579cfb36d)
+++ Ringtoets/StabilityStoneCover/src/Ringtoets.StabilityStoneCover.Forms/UITypeEditors/StabilityStoneCoverWaveConditionsCalculationInputContextForeshoreProfileEditor.cs (.../StabilityStoneCoverWaveConditionsCalculationInputContextForeshoreProfileEditor.cs) (revision 4cd987d7abd8340848d2159381f1d8ed4dfb7d96)
@@ -21,10 +21,13 @@
using System.Collections.Generic;
using System.ComponentModel;
+using System.Linq;
+using Core.Common.Base.Geometry;
using Core.Common.Utils.Reflection;
using Ringtoets.Common.Data.DikeProfiles;
using Ringtoets.Common.Forms.UITypeEditors;
using Ringtoets.StabilityStoneCover.Forms.PropertyClasses;
+using CoreCommonControlsResources = Core.Common.Controls.Properties.Resources;
namespace Ringtoets.StabilityStoneCover.Forms.UITypeEditors
{
@@ -40,7 +43,11 @@
///
public StabilityStoneCoverWaveConditionsCalculationInputContextForeshoreProfileEditor()
{
- DisplayMember = TypeUtils.GetMemberName(dp => dp.Name);
+ DisplayMember = TypeUtils.GetMemberName(dp => dp.Name);
+ NullItem = new ForeshoreProfile(new Point2D(0,0), Enumerable.Empty(), null, new ForeshoreProfile.ConstructionProperties
+ {
+ Name = CoreCommonControlsResources.DisplayName_None
+ });
}
protected override IEnumerable GetAvailableOptions(ITypeDescriptorContext context)
Index: Ringtoets/StabilityStoneCover/test/Ringtoets.StabilityStoneCover.Forms.Test/PropertyClasses/StabilityStoneCoverWaveConditionsCalculationInputContextPropertiesTest.cs
===================================================================
diff -u -r9b0f19dce46cb8c54cd27dadb2d79888035a1aff -r4cd987d7abd8340848d2159381f1d8ed4dfb7d96
--- Ringtoets/StabilityStoneCover/test/Ringtoets.StabilityStoneCover.Forms.Test/PropertyClasses/StabilityStoneCoverWaveConditionsCalculationInputContextPropertiesTest.cs (.../StabilityStoneCoverWaveConditionsCalculationInputContextPropertiesTest.cs) (revision 9b0f19dce46cb8c54cd27dadb2d79888035a1aff)
+++ Ringtoets/StabilityStoneCover/test/Ringtoets.StabilityStoneCover.Forms.Test/PropertyClasses/StabilityStoneCoverWaveConditionsCalculationInputContextPropertiesTest.cs (.../StabilityStoneCoverWaveConditionsCalculationInputContextPropertiesTest.cs) (revision 4cd987d7abd8340848d2159381f1d8ed4dfb7d96)
@@ -125,7 +125,7 @@
}
[Test]
- public void Data_SetNewInputContextInstanceWithDikeProfile_ReturnCorrectPropertyValues()
+ public void Data_SetNewInputContextInstanceWithForeshoreProfile_ReturnCorrectPropertyValues()
{
// Setup
var assessmentSectionMock = mockRepository.StrictMock();
@@ -382,7 +382,7 @@
PropertyDescriptor orientationProperty = dynamicProperties[orientationPropertyIndex];
Assert.IsNotNull(orientationProperty);
- Assert.AreEqual(!withForeshoreProfile, orientationProperty.IsReadOnly);
+ Assert.IsFalse(orientationProperty.IsReadOnly);
Assert.AreEqual(schematizationCategory, orientationProperty.Category);
Assert.AreEqual("Oriëntatie [°]", orientationProperty.DisplayName);
Assert.AreEqual("Oriëntatie van het voorlandprofiel ten opzichte van het noorden.", orientationProperty.Description);
Index: Ringtoets/StabilityStoneCover/test/Ringtoets.StabilityStoneCover.Forms.Test/UITypeEditors/StabilityStoneCoverWaveConditionsCalculationInputContextForeshoreProfileEditorTest.cs
===================================================================
diff -u -re4313e642aa3af2d1f1ced4c397c421579cfb36d -r4cd987d7abd8340848d2159381f1d8ed4dfb7d96
--- Ringtoets/StabilityStoneCover/test/Ringtoets.StabilityStoneCover.Forms.Test/UITypeEditors/StabilityStoneCoverWaveConditionsCalculationInputContextForeshoreProfileEditorTest.cs (.../StabilityStoneCoverWaveConditionsCalculationInputContextForeshoreProfileEditorTest.cs) (revision e4313e642aa3af2d1f1ced4c397c421579cfb36d)
+++ Ringtoets/StabilityStoneCover/test/Ringtoets.StabilityStoneCover.Forms.Test/UITypeEditors/StabilityStoneCoverWaveConditionsCalculationInputContextForeshoreProfileEditorTest.cs (.../StabilityStoneCoverWaveConditionsCalculationInputContextForeshoreProfileEditorTest.cs) (revision 4cd987d7abd8340848d2159381f1d8ed4dfb7d96)
@@ -78,7 +78,8 @@
var descriptorContextMock = mockRepository.StrictMock();
serviceProviderMock.Expect(p => p.GetService(null)).IgnoreArguments().Return(serviceMock);
serviceMock.Expect(s => s.DropDownControl(null)).IgnoreArguments();
- descriptorContextMock.Expect(c => c.Instance).Return(propertyBag).Repeat.Twice();
+ serviceMock.Expect(s => s.CloseDropDown());
+ descriptorContextMock.Expect(c => c.Instance).Return(propertyBag).Repeat.Times(3);
mockRepository.ReplayAll();
var someValue = new object();
@@ -87,7 +88,7 @@
var result = editor.EditValue(descriptorContextMock, serviceProviderMock, someValue);
// Assert
- Assert.AreSame(someValue, result);
+ Assert.IsNull(result);
mockRepository.VerifyAll();
}
@@ -128,7 +129,7 @@
serviceProviderMock.Expect(p => p.GetService(null)).IgnoreArguments().Return(serviceMock);
serviceMock.Expect(s => s.DropDownControl(null)).IgnoreArguments();
serviceMock.Expect(s => s.CloseDropDown()).IgnoreArguments();
- descriptorContextMock.Expect(c => c.Instance).Return(propertyBag).Repeat.Twice();
+ descriptorContextMock.Expect(c => c.Instance).Return(propertyBag).Repeat.Times(3);
mockRepository.ReplayAll();
var someValue = new object();