Canguro.Commands.Model.AnalysisOptionsDialog.UpdateDialog C# (CSharp) Method

UpdateDialog() public method

public UpdateDialog ( ) : void
return void
        public void UpdateDialog()
        {
            try
            {
                updatingDialog = true;
                int responseSpectrumCases = 0;
                Canguro.Model.Model model = services.Model;
                analysisCasesCheckedListBox.Items.Clear();

                foreach (AbstractCase aCase in model.AbstractCases)
                {
                    if (!(aCase is AnalysisCase) || (!(((AnalysisCase)aCase).Properties is ModalCaseProps) &&
                        (!(((AnalysisCase)aCase).Properties is ResponseSpectrumCaseProps)) &&
                        (!(((AnalysisCase)aCase).Properties is PDeltaCaseProps))))
                        analysisCasesCheckedListBox.Items.Add(aCase);

                    if (aCase is AnalysisCase && ((AnalysisCase)aCase).Properties is ResponseSpectrumCaseProps)
                    {
                        if (aCase.IsActive)
                            responseSpectrumCases++;

                        switch (responseSpectrumCases)
                        {
                            case 0:
                                responseSpectrumCheckBox.CheckState = CheckState.Unchecked;
                                break;
                            case 1:
                            case 2:
                                responseSpectrumCheckBox.CheckState = CheckState.Indeterminate;
                                break;
                            default:
                                responseSpectrumCheckBox.CheckState = CheckState.Checked;
                                responseSpectrumFactorUpDown.Value = Convert.ToDecimal(((ResponseSpectrumCaseProps)((AnalysisCase)aCase).Properties).ScaleFactor);
                                dampingFactorUpDown.Value = Convert.ToDecimal(((ResponseSpectrumCaseProps)((AnalysisCase)aCase).Properties).ModalDamping);
                                break;
                        }
                    }

                    if (aCase is AnalysisCase && ((AnalysisCase)aCase).Properties is ModalCaseProps)
                        modalAnalysisCheckBox.Checked = aCase.IsActive;

                    if (aCase is AnalysisCase && ((AnalysisCase)aCase).Properties is PDeltaCaseProps)
                        pDeltaCheckBox.Checked = aCase.IsActive;
                }

                for (int i = 0; i < analysisCasesCheckedListBox.Items.Count; i++)
                    analysisCasesCheckedListBox.SetItemChecked(i,
                        ((AbstractCase)analysisCasesCheckedListBox.Items[i]).IsActive);

                if (modalCase != null)
                    modesNumericUpDown.Value = ((ModalCaseProps)modalCase.Properties).MaxModes;
                if (responseCases.Count > 0 && responseCases[0].IsActive)
                {
                    ResponseSpectrumCaseProps rsProps = (ResponseSpectrumCaseProps)responseCases[0].Properties;
                    //responseSpectrumFunctionsComboBox.SelectedText = rsProps.ResponseSpectrumFunction.ToString();
                    if (responseSpectrumFunctionsComboBox.SelectedValue == null ||
                        !responseSpectrumFunctionsComboBox.SelectedValue.ToString().Equals(rsProps.ResponseSpectrumFunction.ToString()))
                    {
                        foreach (object obj in responseSpectrumFunctionsComboBox.Items)
                            if (rsProps != null && obj.ToString().Equals(rsProps.ResponseSpectrumFunction.ToString()))
                                responseSpectrumFunctionsComboBox.SelectedItem = obj;
                    }
                    viewSpectrumLink.Enabled = true;
                }
                else
                    viewSpectrumLink.Enabled = false;

                modesNumericUpDown.Enabled = modalAnalysisCheckBox.Checked;
                //responseSpectrumCheckBox.Enabled = modalAnalysisCheckBox.Checked;
                responseSpectrumFunctionsComboBox.Enabled = responseSpectrumCheckBox.Checked;
                responseSpectrumFactorUpDown.Enabled = responseSpectrumCheckBox.Checked;
                dampingFactorLabel.Enabled = responseSpectrumCheckBox.Checked;
                dampingFactorUpDown.Enabled = responseSpectrumCheckBox.Checked;

                editSteelDesignLinkLabel.Enabled = steelDesignComboBox.Enabled && model.SteelDesignOptions is SteelDesignOptions;
                steelCombosLinkLabel.Enabled = editSteelDesignLinkLabel.Enabled;
                editConcreteDesignLinkLabel.Enabled = concreteDesignComboBox.Enabled && model.ConcreteDesignOptions is ConcreteDesignOptions;
                concreteCombosLinkLabel.Enabled = editConcreteDesignLinkLabel.Enabled;

                if (model.SteelDesignOptions is SteelDesignOptions && model.SteelDesignOptions.DesignCombinations.Count == 0)
                    currentDesignOptions = model.SteelDesignOptions;
                else if (model.ConcreteDesignOptions is ConcreteDesignOptions && model.ConcreteDesignOptions.DesignCombinations.Count == 0)
                    currentDesignOptions = model.ConcreteDesignOptions;
                else
                    currentDesignOptions = null;

                AnalyzeButton.Text = (currentDesignOptions == null) ? Culture.Get("analyze") : Culture.Get("next");
                AcceptButton = AnalyzeButton;
            }
            finally
            {
                updatingDialog = false;
            }

            Update();
        }