Index: DamClients/DamUI/trunk/src/Dam/Forms/DamProjectCalculationSpecificationPropertyControl.cs =================================================================== diff -u -r6946 -r6964 --- DamClients/DamUI/trunk/src/Dam/Forms/DamProjectCalculationSpecificationPropertyControl.cs (.../DamProjectCalculationSpecificationPropertyControl.cs) (revision 6946) +++ DamClients/DamUI/trunk/src/Dam/Forms/DamProjectCalculationSpecificationPropertyControl.cs (.../DamProjectCalculationSpecificationPropertyControl.cs) (revision 6964) @@ -19,13 +19,15 @@ // Stichting Deltares and remain full property of Stichting Deltares at all times. // All rights reserved. -using System.Windows.Forms; using Deltares.Dam.Data; using Deltares.Standard.EventPublisher; using Deltares.Standard.EventPublisher.Enum; using Deltares.Standard.Forms; using Deltares.Standard.Forms.DExpress; +using System; +using System.Windows.Forms; + namespace Deltares.Dam.Forms { public partial class DamProjectCalculationSpecificationPropertyControl : UserControl, IPropertyControl @@ -37,43 +39,59 @@ public DamProjectCalculationSpecificationPropertyControl() { InitializeComponent(); - // Make sure PropertyEditorReactionType is set to Ignore (Design time this does NOT work TODO for Grid component). - Grid.PropertyEditorReactionType = PropertyEditorReactionType.Ignore; + Name = "Calculation"; - - BindSupport.Bind(this, Grid, p => p.DamCalculationSpecifications); - + + BindSupport.BindTextAndValue(CalculationDefinitionPanelControl, FailureMechanismLabel, FailureMechanismCombobox, p => p.FailureMechanismSystemType); + BindSupport.BindTextAndValue(CalculationDefinitionPanelControl, CalculationModelLabel, CalculationModelComboBox, p => p.CalculationModel); DataEventPublisher.OnSelectionChanged += DataEventPublisher_OnSubSelectionChanged; DataEventPublisher.OnAfterChange += DataEventPublisher_OnAfterChange; FormsSupport.RepairRightAnchoredControls(this); + FormsSupport.AdjustSizeToContents(CalculationDefinitionPanelControl); FormsSupport.AdjustSizeToContents(damProjectCalculationOptionsPropertyControl1); firstEdit = true; } private void DataEventPublisher_OnAfterChange(object sender, PublishEventArgs e) { - var specification = sender as DamFailureMechanismeCalculationSpecification; + var specification = sender as DamProjectCalculationSpecification; if (specification != null && damProjectCalculationSpecification != null) { - damProjectCalculationSpecification.CurrentSpecification = specification; + damProjectCalculationSpecification = specification; SetSelectedDamCalculationSpecification(); } + if (sender is DamProject pd) + { + damProjectCalculationSpecification = pd.DamProjectData.DamProjectCalculationSpecification; + //currentSpecification = pd.DamProjectData.DamProjectCalculationSpecification.DamStabilityParameters; + SetSelectedDamCalculationSpecification(); + } } private void SetSelectedDamCalculationSpecification() { - DamFailureMechanismeCalculationSpecification selection = damProjectCalculationSpecification.CurrentSpecification; + DamProjectCalculationSpecification selection = damProjectCalculationSpecification; if (selection != null) { - selection.SlipCircleDefinition.Specification = selection; + selection.DamStabilityParameters.SlipCircleDefinition.Specification = selection; BindSupport.Assign(damProjectCalculationOptionsPropertyControl1, selection); if (firstEdit) { // Ensure that all edits of the damProjectCalculationOptionsPropertyControl1 are updated at start damProjectCalculationOptionsPropertyControl1.SelectedObject = selection; } + if (CalculationDefinitionPanelControl.InvokeRequired) + { + Action action = () => BindSupport.Assign(CalculationDefinitionPanelControl, selection); + CalculationDefinitionPanelControl.Invoke(action); + } + else + { + BindSupport.Assign(CalculationDefinitionPanelControl, selection); + } + if (selection.FailureMechanismSystemType != FailureMechanismSystemType.Piping && firstEdit) { // this is a hack to force update on ill placed edits. @@ -85,13 +103,23 @@ private void DataEventPublisher_OnSubSelectionChanged(object sender, PublishEventArgs e) { - if (((SelectionEventArgs) e).PropertyEditorReactionType == PropertyEditorReactionType.Ignore && - sender is DamFailureMechanismeCalculationSpecification item && - damProjectCalculationSpecification.DamCalculationSpecifications.Contains(item)) + if (((SelectionEventArgs)e).PropertyEditorReactionType == PropertyEditorReactionType.Ignore && + sender is DamProjectCalculationSpecification item && + damProjectData.DamProjectCalculationSpecifications.Contains(item)) { - damProjectCalculationSpecification.CurrentSpecification = item; + damProjectCalculationSpecification = item; SetSelectedDamCalculationSpecification(); } + + DamProjectData data = sender as DamProjectData; + if (data != null && ((SelectionEventArgs)e).PropertyEditorReactionType == PropertyEditorReactionType.Update && + data.DamProjectCalculationSpecifications.Contains(data.DamProjectCalculationSpecification)) + { + damProjectData = data; + damProjectCalculationSpecification = data.DamProjectCalculationSpecification; + SetSelectedDamCalculationSpecification(); + SelectedObject = data; + } } #region IPropertyControl Members @@ -109,11 +137,10 @@ damProjectData = data; damProjectCalculationSpecification = damProjectData.DamProjectCalculationSpecification; BindSupport.Assign(this, damProjectCalculationSpecification); + BindSupport.Assign(CalculationDefinitionPanelControl, data.DamProjectCalculationSpecifications); + SetSelectedDamCalculationSpecification(); - if (damProjectData.DamProjectType == DamProjectType.Design) - { - Grid.ShowToolbar = false; - } + CalculationSpecificationsGroupControl.Visible = true; } } }