Index: Riskeer/Piping/src/Riskeer.Piping.Forms/Views/PipingFailureMechanismSectionResultRow.cs
===================================================================
diff -u -rae221df798313584619c15c5504d1d19c7bfdcba -r65d1333335d29e7cc91e360a91805ff7a304aa5a
--- Riskeer/Piping/src/Riskeer.Piping.Forms/Views/PipingFailureMechanismSectionResultRow.cs (.../PipingFailureMechanismSectionResultRow.cs) (revision ae221df798313584619c15c5504d1d19c7bfdcba)
+++ Riskeer/Piping/src/Riskeer.Piping.Forms/Views/PipingFailureMechanismSectionResultRow.cs (.../PipingFailureMechanismSectionResultRow.cs) (revision 65d1333335d29e7cc91e360a91805ff7a304aa5a)
@@ -21,7 +21,9 @@
using System;
using System.ComponentModel;
+using Core.Common.Controls.DataGrid;
using Riskeer.Common.Data.FailureMechanism;
+using Riskeer.Common.Forms.Helpers;
using Riskeer.Common.Forms.TypeConverters;
using Riskeer.Common.Forms.Views;
using Riskeer.Piping.Data;
@@ -76,8 +78,23 @@
probabilityRefinementTypeIndex = constructionProperties.ProbabilityRefinementTypeIndex;
refinedProfileProbabilityIndex = constructionProperties.RefinedProfileProbabilityIndex;
refinedSectionProbabilityIndex = constructionProperties.RefinedSectionProbabilityIndex;
+
+ CreateColumnStateDefinitions();
+
+ Update();
}
+ private void CreateColumnStateDefinitions()
+ {
+ ColumnStateDefinitions.Add(initialFailureMechanismResultIndex, new DataGridViewColumnStateDefinition());
+ ColumnStateDefinitions.Add(initialFailureMechanismResultProfileProbabilityIndex, new DataGridViewColumnStateDefinition());
+ ColumnStateDefinitions.Add(initialFailureMechanismResultSectionProbabilityIndex, new DataGridViewColumnStateDefinition());
+ ColumnStateDefinitions.Add(furtherAnalysisNeededIndex, new DataGridViewColumnStateDefinition());
+ ColumnStateDefinitions.Add(probabilityRefinementTypeIndex, new DataGridViewColumnStateDefinition());
+ ColumnStateDefinitions.Add(refinedProfileProbabilityIndex, new DataGridViewColumnStateDefinition());
+ ColumnStateDefinitions.Add(refinedSectionProbabilityIndex, new DataGridViewColumnStateDefinition());
+ }
+
///
/// Gets or sets whether the section is relevant.
///
@@ -194,8 +211,27 @@
}
}
- public override void Update() {}
+ public override void Update()
+ {
+ UpdateColumnStateDefinitions();
+ }
+ private void UpdateColumnStateDefinitions()
+ {
+ bool initialFailureMechanismResultNoFailureProbability = InitialFailureMechanismResult == InitialFailureMechanismResultType.NoFailureProbability;
+
+ ColumnStateHelper.SetColumnState(ColumnStateDefinitions[initialFailureMechanismResultIndex], !IsRelevant);
+ ColumnStateHelper.SetColumnState(ColumnStateDefinitions[initialFailureMechanismResultProfileProbabilityIndex],
+ !IsRelevant || initialFailureMechanismResultNoFailureProbability);
+
+ ColumnStateHelper.SetColumnState(ColumnStateDefinitions[initialFailureMechanismResultSectionProbabilityIndex],
+ !IsRelevant || initialFailureMechanismResultNoFailureProbability);
+ ColumnStateHelper.SetColumnState(ColumnStateDefinitions[furtherAnalysisNeededIndex], !IsRelevant);
+ ColumnStateHelper.SetColumnState(ColumnStateDefinitions[probabilityRefinementTypeIndex], !IsRelevant || !FurtherAnalysisNeeded);
+ ColumnStateHelper.SetColumnState(ColumnStateDefinitions[refinedProfileProbabilityIndex], !IsRelevant || !FurtherAnalysisNeeded);
+ ColumnStateHelper.SetColumnState(ColumnStateDefinitions[refinedSectionProbabilityIndex], !IsRelevant || !FurtherAnalysisNeeded);
+ }
+
///
/// Class holding the various construction parameters for .
///
Index: Riskeer/Piping/test/Riskeer.Piping.Forms.Test/Views/PipingFailureMechanismSectionResultRowTest.cs
===================================================================
diff -u -rae221df798313584619c15c5504d1d19c7bfdcba -r65d1333335d29e7cc91e360a91805ff7a304aa5a
--- Riskeer/Piping/test/Riskeer.Piping.Forms.Test/Views/PipingFailureMechanismSectionResultRowTest.cs (.../PipingFailureMechanismSectionResultRowTest.cs) (revision ae221df798313584619c15c5504d1d19c7bfdcba)
+++ Riskeer/Piping/test/Riskeer.Piping.Forms.Test/Views/PipingFailureMechanismSectionResultRowTest.cs (.../PipingFailureMechanismSectionResultRowTest.cs) (revision 65d1333335d29e7cc91e360a91805ff7a304aa5a)
@@ -22,11 +22,13 @@
using System;
using System.Collections.Generic;
using Core.Common.Base;
+using Core.Common.Controls.DataGrid;
using Core.Common.TestUtil;
using NUnit.Framework;
using Rhino.Mocks;
using Riskeer.Common.Data.FailureMechanism;
using Riskeer.Common.Data.TestUtil;
+using Riskeer.Common.Forms.TestUtil;
using Riskeer.Common.Forms.TypeConverters;
using Riskeer.Common.Forms.Views;
using Riskeer.Piping.Data;
@@ -37,6 +39,18 @@
[TestFixture]
public class PipingFailureMechanismSectionResultRowTest
{
+ private static PipingFailureMechanismSectionResultRow.ConstructionProperties ConstructionProperties =>
+ new PipingFailureMechanismSectionResultRow.ConstructionProperties
+ {
+ InitialFailureMechanismResultIndex = 2,
+ InitialFailureMechanismResultProfileProbabilityIndex = 3,
+ InitialFailureMechanismResultSectionProbabilityIndex = 4,
+ FurtherAnalysisNeededIndex = 5,
+ ProbabilityRefinementTypeIndex = 6,
+ RefinedProfileProbabilityIndex = 7,
+ RefinedSectionProbabilityIndex = 8
+ };
+
[Test]
public void Constructor_CalculateProbabilityStrategyNull_ThrowsArgumentNullException()
{
@@ -45,7 +59,7 @@
var result = new PipingFailureMechanismSectionResult(section);
// Call
- void Call() => new PipingFailureMechanismSectionResultRow(result, null, new PipingFailureMechanismSectionResultRow.ConstructionProperties());
+ void Call() => new PipingFailureMechanismSectionResultRow(result, null, ConstructionProperties);
// Assert
var exception = Assert.Throws(Call);
@@ -89,7 +103,7 @@
var result = new PipingFailureMechanismSectionResult(section);
// Call
- var row = new PipingFailureMechanismSectionResultRow(result, calculateStrategy, new PipingFailureMechanismSectionResultRow.ConstructionProperties());
+ var row = new PipingFailureMechanismSectionResultRow(result, calculateStrategy, ConstructionProperties);
// Assert
Assert.IsInstanceOf>(row);
@@ -110,6 +124,17 @@
nameof(PipingFailureMechanismSectionResultRow.RefinedProfileProbability));
TestHelper.AssertTypeConverter(
nameof(PipingFailureMechanismSectionResultRow.RefinedSectionProbability));
+
+ IDictionary columnStateDefinitions = row.ColumnStateDefinitions;
+ Assert.AreEqual(7, columnStateDefinitions.Count);
+
+ DataGridViewControlColumnStateDefinitionTestHelper.AssertColumnStateDefinition(columnStateDefinitions, ConstructionProperties.InitialFailureMechanismResultIndex);
+ DataGridViewControlColumnStateDefinitionTestHelper.AssertColumnStateDefinition(columnStateDefinitions, ConstructionProperties.InitialFailureMechanismResultProfileProbabilityIndex);
+ DataGridViewControlColumnStateDefinitionTestHelper.AssertColumnStateDefinition(columnStateDefinitions, ConstructionProperties.InitialFailureMechanismResultSectionProbabilityIndex);
+ DataGridViewControlColumnStateDefinitionTestHelper.AssertColumnStateDefinition(columnStateDefinitions, ConstructionProperties.FurtherAnalysisNeededIndex);
+ DataGridViewControlColumnStateDefinitionTestHelper.AssertColumnStateDefinition(columnStateDefinitions, ConstructionProperties.ProbabilityRefinementTypeIndex);
+ DataGridViewControlColumnStateDefinitionTestHelper.AssertColumnStateDefinition(columnStateDefinitions, ConstructionProperties.RefinedProfileProbabilityIndex);
+ DataGridViewControlColumnStateDefinitionTestHelper.AssertColumnStateDefinition(columnStateDefinitions, ConstructionProperties.RefinedSectionProbabilityIndex);
mocks.VerifyAll();
}
@@ -131,7 +156,7 @@
FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();
var result = new PipingFailureMechanismSectionResult(section);
- var row = new PipingFailureMechanismSectionResultRow(result, calculateStrategy, new PipingFailureMechanismSectionResultRow.ConstructionProperties());
+ var row = new PipingFailureMechanismSectionResultRow(result, calculateStrategy, ConstructionProperties);
// Precondition
Assert.AreEqual(profileProbability, row.InitialFailureMechanismResultProfileProbability);
@@ -276,7 +301,7 @@
var result = new PipingFailureMechanismSectionResult(section);
result.Attach(observer);
- var row = new PipingFailureMechanismSectionResultRow(result, calculateStrategy, new PipingFailureMechanismSectionResultRow.ConstructionProperties());
+ var row = new PipingFailureMechanismSectionResultRow(result, calculateStrategy, ConstructionProperties);
// Call
setPropertyAction(row);
@@ -297,7 +322,7 @@
FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();
var result = new PipingFailureMechanismSectionResult(section);
- var row = new PipingFailureMechanismSectionResultRow(result, calculateStrategy, new PipingFailureMechanismSectionResultRow.ConstructionProperties());
+ var row = new PipingFailureMechanismSectionResultRow(result, calculateStrategy, ConstructionProperties);
// Call
void Call() => setPropertyAction(row);
@@ -326,5 +351,114 @@
}
#endregion
+
+ #region Column States
+
+ [Test]
+ [TestCase(true)]
+ [TestCase(false)]
+ public void Constructor_WithIsRelevant_ExpectedColumnStates(bool isRelevant)
+ {
+ // Setup
+ var mocks = new MockRepository();
+ var calculateStrategy = mocks.Stub();
+ mocks.ReplayAll();
+
+ FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();
+ var result = new PipingFailureMechanismSectionResult(section)
+ {
+ IsRelevant = isRelevant,
+ FurtherAnalysisNeeded = true
+ };
+
+ // Call
+ var row = new PipingFailureMechanismSectionResultRow(result, calculateStrategy, ConstructionProperties);
+
+ // Assert
+ IDictionary columnStateDefinitions = row.ColumnStateDefinitions;
+
+ DataGridViewControlColumnStateDefinitionTestHelper.AssertColumnState(
+ columnStateDefinitions[ConstructionProperties.InitialFailureMechanismResultIndex], isRelevant);
+ DataGridViewControlColumnStateDefinitionTestHelper.AssertColumnState(
+ columnStateDefinitions[ConstructionProperties.InitialFailureMechanismResultProfileProbabilityIndex], isRelevant);
+ DataGridViewControlColumnStateDefinitionTestHelper.AssertColumnState(
+ columnStateDefinitions[ConstructionProperties.InitialFailureMechanismResultSectionProbabilityIndex], isRelevant);
+ DataGridViewControlColumnStateDefinitionTestHelper.AssertColumnState(
+ columnStateDefinitions[ConstructionProperties.FurtherAnalysisNeededIndex], isRelevant);
+ DataGridViewControlColumnStateDefinitionTestHelper.AssertColumnState(
+ columnStateDefinitions[ConstructionProperties.ProbabilityRefinementTypeIndex], isRelevant);
+ DataGridViewControlColumnStateDefinitionTestHelper.AssertColumnState(
+ columnStateDefinitions[ConstructionProperties.RefinedProfileProbabilityIndex], isRelevant);
+ DataGridViewControlColumnStateDefinitionTestHelper.AssertColumnState(
+ columnStateDefinitions[ConstructionProperties.RefinedSectionProbabilityIndex], isRelevant);
+
+ mocks.VerifyAll();
+ }
+
+ [Test]
+ [TestCase(InitialFailureMechanismResultType.Adopt, true)]
+ [TestCase(InitialFailureMechanismResultType.Manual, true)]
+ [TestCase(InitialFailureMechanismResultType.NoFailureProbability, false)]
+ public void Constructor_WithInitialFailureMechanismResult_ExpectedColumnStates(InitialFailureMechanismResultType initialFailureMechanismResultType,
+ bool isEnabled)
+ {
+ // Setup
+ var mocks = new MockRepository();
+ var calculateStrategy = mocks.Stub();
+ mocks.ReplayAll();
+
+ FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();
+ var result = new PipingFailureMechanismSectionResult(section)
+ {
+ InitialFailureMechanismResult = initialFailureMechanismResultType
+ };
+
+ // Call
+ var row = new PipingFailureMechanismSectionResultRow(result, calculateStrategy, ConstructionProperties);
+
+ // Assert
+ IDictionary columnStateDefinitions = row.ColumnStateDefinitions;
+
+ DataGridViewControlColumnStateDefinitionTestHelper.AssertColumnState(
+ columnStateDefinitions[ConstructionProperties.InitialFailureMechanismResultProfileProbabilityIndex], isEnabled);
+ DataGridViewControlColumnStateDefinitionTestHelper.AssertColumnState(
+ columnStateDefinitions[ConstructionProperties.InitialFailureMechanismResultSectionProbabilityIndex], isEnabled);
+
+ mocks.VerifyAll();
+ }
+
+ [Test]
+ [TestCase(true)]
+ [TestCase(false)]
+ public void Constructor_WithFurtherAnalysisNeeded_ExpectedColumnStates(bool furtherAnalysisNeeded)
+ {
+ // Setup
+ var mocks = new MockRepository();
+ var calculateStrategy = mocks.Stub();
+ mocks.ReplayAll();
+
+ FailureMechanismSection section = FailureMechanismSectionTestFactory.CreateFailureMechanismSection();
+ var result = new PipingFailureMechanismSectionResult(section)
+ {
+ FurtherAnalysisNeeded = furtherAnalysisNeeded
+ };
+
+ // Call
+ var row = new PipingFailureMechanismSectionResultRow(result, calculateStrategy, ConstructionProperties);
+
+ // Assert
+ IDictionary columnStateDefinitions = row.ColumnStateDefinitions;
+
+ DataGridViewControlColumnStateDefinitionTestHelper.AssertColumnState(
+ columnStateDefinitions[ConstructionProperties.ProbabilityRefinementTypeIndex], furtherAnalysisNeeded);
+ DataGridViewControlColumnStateDefinitionTestHelper.AssertColumnState(
+ columnStateDefinitions[ConstructionProperties.RefinedProfileProbabilityIndex], furtherAnalysisNeeded);
+ DataGridViewControlColumnStateDefinitionTestHelper.AssertColumnState(
+ columnStateDefinitions[ConstructionProperties.RefinedSectionProbabilityIndex], furtherAnalysisNeeded);
+
+ mocks.VerifyAll();
+ }
+
+ #endregion
}
}
\ No newline at end of file