Index: Core/Common/src/Core.Common.Controls/DataGrid/DataGridViewControl.cs
===================================================================
diff -u -r6b8f6422c0a6f96f8e563bb6afb82a7a192142b4 -r899c19a3a7c943aba56a9f3db179e163c26bfd86
--- Core/Common/src/Core.Common.Controls/DataGrid/DataGridViewControl.cs (.../DataGridViewControl.cs) (revision 6b8f6422c0a6f96f8e563bb6afb82a7a192142b4)
+++ Core/Common/src/Core.Common.Controls/DataGrid/DataGridViewControl.cs (.../DataGridViewControl.cs) (revision 899c19a3a7c943aba56a9f3db179e163c26bfd86)
@@ -358,10 +358,15 @@
///
/// Refreshes the and performs an .
///
- public void RefreshDataGridView()
+ /// Indicator whether the column width should be automatically resized.
+ public void RefreshDataGridView(bool shouldAutoResizeColumns = true)
{
dataGridView.Refresh();
- AutoResizeColumns();
+
+ if (shouldAutoResizeColumns)
+ {
+ AutoResizeColumns();
+ }
}
///
Index: Core/Common/test/Core.Common.Controls.Test/DataGrid/DataGridViewControlTest.cs
===================================================================
diff -u -r2a61453b3c465ad734985fb9f42352b76a6ab5bc -r899c19a3a7c943aba56a9f3db179e163c26bfd86
--- Core/Common/test/Core.Common.Controls.Test/DataGrid/DataGridViewControlTest.cs (.../DataGridViewControlTest.cs) (revision 2a61453b3c465ad734985fb9f42352b76a6ab5bc)
+++ Core/Common/test/Core.Common.Controls.Test/DataGrid/DataGridViewControlTest.cs (.../DataGridViewControlTest.cs) (revision 899c19a3a7c943aba56a9f3db179e163c26bfd86)
@@ -600,25 +600,26 @@
}
[Test]
- public void RefreshDataGridView_AddLongerText_IncreasesColumnWidth()
+ public void RefreshDataGridView_ShouldAutoResizeTrue_IncreasesColumnWidth()
{
using (var form = new Form())
using (var control = new DataGridViewControl())
{
form.Controls.Add(control);
form.Show();
- control.AddTextBoxColumn("Test property", "Test header");
- control.SetDataSource(new[]
+ control.AddTextBoxColumn(nameof(TestDataGridViewMultipleColumnsRow.TestString), "Test");
+ var dataSource = new[]
{
- "Test"
- });
+ new TestDataGridViewMultipleColumnsRow(RoundedDouble.NaN, "Test")
+ };
+ control.SetDataSource(dataSource);
DataGridViewCell dataGridViewCell = control.GetCell(0, 0);
control.SetCurrentCell(dataGridViewCell);
int initialWidth = dataGridViewCell.OwningColumn.Width;
- dataGridViewCell.Value = "This is a long text.";
+ dataSource[0].TestString = "This is a long textwegawegwegwetawergawegawegtwaegwaeg.";
// Call
control.RefreshDataGridView();
@@ -630,39 +631,33 @@
}
[Test]
- public void RefreshDataGridView_AddShorterText_DecreasesColumnWidth()
+ public void RefreshDataGridView_ShouldAutoResizeFalse_SameColumnWidth()
{
using (var form = new Form())
using (var control = new DataGridViewControl())
{
form.Controls.Add(control);
form.Show();
- control.AddTextBoxColumn("Test property", "Test header");
- control.SetDataSource(new[]
+ control.AddTextBoxColumn(nameof(TestDataGridViewMultipleColumnsRow.TestString), "Test");
+ var dataSource = new[]
{
- "Test"
- });
+ new TestDataGridViewMultipleColumnsRow(RoundedDouble.NaN, "Test")
+ };
+ control.SetDataSource(dataSource);
DataGridViewCell dataGridViewCell = control.GetCell(0, 0);
control.SetCurrentCell(dataGridViewCell);
int initialWidth = dataGridViewCell.OwningColumn.Width;
- dataGridViewCell.Value = "This is a long text.";
+ dataSource[0].TestString = "This is a long textwegawegwegwetawergawegawegtwaegwaeg.";
- control.RefreshDataGridView();
-
- // Precondition
- int longTextWidth = dataGridViewCell.OwningColumn.Width;
- Assert.Greater(longTextWidth, initialWidth);
-
- dataGridViewCell.Value = string.Empty;
-
// Call
- control.RefreshDataGridView();
+ control.RefreshDataGridView(false);
// Assert
- Assert.Less(dataGridViewCell.OwningColumn.Width, longTextWidth);
+ int newTextWidth = dataGridViewCell.OwningColumn.Width;
+ Assert.AreEqual(newTextWidth, initialWidth);
}
}
@@ -675,18 +670,18 @@
form.Controls.Add(control);
form.Show();
- control.AddTextBoxColumn("Test property", "Test header");
-
- control.SetDataSource(new[]
+ control.AddTextBoxColumn(nameof(TestDataGridViewMultipleColumnsRow.TestString), "Test");
+ var dataSource = new[]
{
- "Test"
- });
+ new TestDataGridViewMultipleColumnsRow(RoundedDouble.NaN, "Test")
+ };
+ control.SetDataSource(dataSource);
DataGridViewCell dataGridViewCell = control.GetCell(0, 0);
control.SetCurrentCell(dataGridViewCell);
int initialWidth = dataGridViewCell.OwningColumn.Width;
- dataGridViewCell.Value = "This is a long text.";
+ dataSource[0].TestString = "This is a long textwegawegwegwetawergawegawegtwaegwaeg.";
// Call
control.AutoResizeColumns();
@@ -706,31 +701,25 @@
form.Controls.Add(control);
form.Show();
- control.AddTextBoxColumn("Test property", "Test header");
- control.SetDataSource(new[]
+ control.AddTextBoxColumn(nameof(TestDataGridViewMultipleColumnsRow.TestString), "Test");
+ var dataSource = new[]
{
- "Test"
- });
+ new TestDataGridViewMultipleColumnsRow(RoundedDouble.NaN, "Long test text abcd")
+ };
+ control.SetDataSource(dataSource);
DataGridViewCell dataGridViewCell = control.GetCell(0, 0);
control.SetCurrentCell(dataGridViewCell);
int initialWidth = dataGridViewCell.OwningColumn.Width;
- dataGridViewCell.Value = "This is a long text.";
+ dataSource[0].TestString = "text";
- control.AutoResizeColumns();
-
- // Precondition
- int longTextWidth = dataGridViewCell.OwningColumn.Width;
- Assert.Greater(longTextWidth, initialWidth);
-
- dataGridViewCell.Value = string.Empty;
-
// Call
control.AutoResizeColumns();
// Assert
- Assert.Less(dataGridViewCell.OwningColumn.Width, longTextWidth);
+ int shortTextWidth = dataGridViewCell.OwningColumn.Width;
+ Assert.Less(shortTextWidth, initialWidth);
}
}
@@ -1306,7 +1295,7 @@
public RoundedDouble TestRoundedDouble { get; }
- public string TestString { get; }
+ public string TestString { get; set; }
}
#region Event handling
Index: Ringtoets/Common/src/Ringtoets.Common.Forms/Views/FailureMechanismResultView.cs
===================================================================
diff -u -r4994cf24768a7b54149e65713433dc4543ace82c -r899c19a3a7c943aba56a9f3db179e163c26bfd86
--- Ringtoets/Common/src/Ringtoets.Common.Forms/Views/FailureMechanismResultView.cs (.../FailureMechanismResultView.cs) (revision 4994cf24768a7b54149e65713433dc4543ace82c)
+++ Ringtoets/Common/src/Ringtoets.Common.Forms/Views/FailureMechanismResultView.cs (.../FailureMechanismResultView.cs) (revision 899c19a3a7c943aba56a9f3db179e163c26bfd86)
@@ -184,7 +184,7 @@
private void RowUpdated(object sender, EventArgs eventArgs)
{
rowUpdating = true;
- DataGridViewControl.RefreshDataGridView();
+ DataGridViewControl.RefreshDataGridView(false);
}
private void HandleCellStyling(object sender, DataGridViewCellFormattingEventArgs e)
Index: Ringtoets/Common/test/Ringtoets.Common.Forms.Test/Views/FailureMechanismResultViewTest.cs
===================================================================
diff -u -r6bfd88d43db177e5425a69c22dfd9070e8520898 -r899c19a3a7c943aba56a9f3db179e163c26bfd86
--- Ringtoets/Common/test/Ringtoets.Common.Forms.Test/Views/FailureMechanismResultViewTest.cs (.../FailureMechanismResultViewTest.cs) (revision 6bfd88d43db177e5425a69c22dfd9070e8520898)
+++ Ringtoets/Common/test/Ringtoets.Common.Forms.Test/Views/FailureMechanismResultViewTest.cs (.../FailureMechanismResultViewTest.cs) (revision 899c19a3a7c943aba56a9f3db179e163c26bfd86)
@@ -103,17 +103,20 @@
{
// Setup
const int nameColumnIndex = 0;
+ const int stringColumnIndex = 1;
// Call
using (ShowFailureMechanismResultsView(new ObservableList()))
{
// Assert
var dataGridView = (DataGridView) new ControlTester("dataGridView").TheObject;
- Assert.AreEqual(1, dataGridView.ColumnCount);
+ Assert.AreEqual(2, dataGridView.ColumnCount);
Assert.IsInstanceOf(dataGridView.Columns[nameColumnIndex]);
+ Assert.IsInstanceOf(dataGridView.Columns[stringColumnIndex]);
- Assert.AreEqual("Test", dataGridView.Columns[nameColumnIndex].HeaderText);
+ Assert.AreEqual("Name", dataGridView.Columns[nameColumnIndex].HeaderText);
+ Assert.AreEqual("String", dataGridView.Columns[stringColumnIndex].HeaderText);
}
}
@@ -298,6 +301,34 @@
}
[Test]
+ public void GivenFailureMechanismResultView_WhenRowUpdated_ThenColumnsDoNotAutoResize()
+ {
+ // Given
+ var sectionResults = new ObservableList
+ {
+ FailureMechanismSectionResultTestFactory.CreateFailureMechanismSectionResult()
+ };
+
+ using (ShowFailureMechanismResultsView(sectionResults))
+ {
+ var dataGridView = (DataGridView) new ControlTester("dataGridView").TheObject;
+ var row = (TestRow) dataGridView.Rows[0].DataBoundItem;
+
+ DataGridViewCell dataGridViewCell = dataGridView.Rows[0].Cells[1];
+ dataGridViewCell.Value = "Long string abcdefghijklmnop2wgfwgwrgqwgargwefwe";
+ int initialWidth = dataGridViewCell.OwningColumn.Width;
+
+ // When
+ row.TestString = "a";
+ row.RowUpdated?.Invoke(row, EventArgs.Empty);
+
+ // Then
+ int newWidth = dataGridViewCell.OwningColumn.Width;
+ Assert.AreEqual(initialWidth, newWidth);
+ }
+ }
+
+ [Test]
public void GivenFailureMechanismResultView_WhenResultRemovedAndSectionResultsNotified_ThenEventHandlersDisconnected()
{
// Given
@@ -337,19 +368,20 @@
}
}
- public class TestFailureMechanismResultView : FailureMechanismResultView, TestFailureMechanism>
+ public class TestFailureMechanismResultView : FailureMechanismResultView
{
public TestFailureMechanismResultView(IObservableEnumerable failureMechanismSectionResults, TestFailureMechanism failureMechanism)
: base(failureMechanismSectionResults, failureMechanism) {}
- protected override FailureMechanismSectionResultRow CreateFailureMechanismSectionResultRow(FailureMechanismSectionResult sectionResult)
+ protected override TestRow CreateFailureMechanismSectionResultRow(FailureMechanismSectionResult sectionResult)
{
return new TestRow(sectionResult);
}
protected override void AddDataGridColumns()
{
- DataGridViewControl.AddTextBoxColumn("Name", "Test", true);
+ DataGridViewControl.AddTextBoxColumn("Name", "Name", true);
+ DataGridViewControl.AddTextBoxColumn(nameof(TestRow.TestString), "String");
}
}
@@ -362,6 +394,8 @@
public bool Updated { get; private set; }
+ public string TestString { get; set; }
+
public override void Update()
{
Updated = true;
Index: Ringtoets/DuneErosion/src/Ringtoets.DuneErosion.Forms/Views/DuneLocationsView.cs
===================================================================
diff -u -r16ff9b6edce7916571518d621021b2995c1c01aa -r899c19a3a7c943aba56a9f3db179e163c26bfd86
--- Ringtoets/DuneErosion/src/Ringtoets.DuneErosion.Forms/Views/DuneLocationsView.cs (.../DuneLocationsView.cs) (revision 16ff9b6edce7916571518d621021b2995c1c01aa)
+++ Ringtoets/DuneErosion/src/Ringtoets.DuneErosion.Forms/Views/DuneLocationsView.cs (.../DuneLocationsView.cs) (revision 899c19a3a7c943aba56a9f3db179e163c26bfd86)
@@ -89,7 +89,7 @@
{
Observable = locations
};
- duneLocationObserver = new RecursiveObserver, DuneLocation>(dataGridViewControl.RefreshDataGridView, list => list)
+ duneLocationObserver = new RecursiveObserver, DuneLocation>(() => dataGridViewControl.RefreshDataGridView(), list => list)
{
Observable = locations
};
Index: Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/FailureMechanismContributionView.cs
===================================================================
diff -u -rac96d7c315129af851634ed5a4a6800b59ede718 -r899c19a3a7c943aba56a9f3db179e163c26bfd86
--- Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/FailureMechanismContributionView.cs (.../FailureMechanismContributionView.cs) (revision ac96d7c315129af851634ed5a4a6800b59ede718)
+++ Ringtoets/Integration/src/Ringtoets.Integration.Forms/Views/FailureMechanismContributionView.cs (.../FailureMechanismContributionView.cs) (revision 899c19a3a7c943aba56a9f3db179e163c26bfd86)
@@ -76,7 +76,7 @@
this.viewCommands = viewCommands;
- failureMechanismObserver = new Observer(probabilityDistributionGrid.RefreshDataGridView);
+ failureMechanismObserver = new Observer(() => probabilityDistributionGrid.RefreshDataGridView());
}
///
Index: Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Forms/Views/MacroStabilityInwardsCalculationsView.cs
===================================================================
diff -u -r38dd2d81eada00a5bcec11cb847e298aad9c83e6 -r899c19a3a7c943aba56a9f3db179e163c26bfd86
--- Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Forms/Views/MacroStabilityInwardsCalculationsView.cs (.../MacroStabilityInwardsCalculationsView.cs) (revision 38dd2d81eada00a5bcec11cb847e298aad9c83e6)
+++ Ringtoets/MacroStabilityInwards/src/Ringtoets.MacroStabilityInwards.Forms/Views/MacroStabilityInwardsCalculationsView.cs (.../MacroStabilityInwardsCalculationsView.cs) (revision 899c19a3a7c943aba56a9f3db179e163c26bfd86)
@@ -83,12 +83,14 @@
.OfType()
.Select(pc => pc.InputParameters)));
calculationGroupObserver = new RecursiveObserver(UpdateDataGridViewDataSource, cg => cg.Children);
- calculationObserver = new RecursiveObserver(dataGridViewControl.RefreshDataGridView, cg => cg.Children);
+ calculationObserver = new RecursiveObserver(
+ () => dataGridViewControl.RefreshDataGridView(), cg => cg.Children);
surfaceLineObserver = new RecursiveObserver(UpdateDataGridViewDataSource, rpslc => rpslc);
stochasticSoilModelsObserver = new Observer(OnStochasticSoilModelsUpdate);
- stochasticSoilProfileObserver = new RecursiveObserver(dataGridViewControl.RefreshDataGridView, ssmc => ssmc.SelectMany(ssm => ssm.StochasticSoilProfiles));
+ stochasticSoilProfileObserver = new RecursiveObserver(
+ () => dataGridViewControl.RefreshDataGridView(), ssmc => ssmc.SelectMany(ssm => ssm.StochasticSoilProfiles));
}
///
Index: Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingCalculationsView.cs
===================================================================
diff -u -r38dd2d81eada00a5bcec11cb847e298aad9c83e6 -r899c19a3a7c943aba56a9f3db179e163c26bfd86
--- Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingCalculationsView.cs (.../PipingCalculationsView.cs) (revision 38dd2d81eada00a5bcec11cb847e298aad9c83e6)
+++ Ringtoets/Piping/src/Ringtoets.Piping.Forms/Views/PipingCalculationsView.cs (.../PipingCalculationsView.cs) (revision 899c19a3a7c943aba56a9f3db179e163c26bfd86)
@@ -78,14 +78,18 @@
pipingFailureMechanismObserver = new Observer(OnPipingFailureMechanismUpdate);
hydraulicBoundaryLocationsObserver = new Observer(UpdateSelectableHydraulicBoundaryLocationsColumn);
// The concat is needed to observe the input of calculations in child groups.
- pipingInputObserver = new RecursiveObserver(UpdateDataGridViewDataSource, pcg => pcg.Children.Concat