private void enableOptions()
{
Dictionary<ReportOptions, bool> enabledOptions = new Dictionary<ReportOptions, bool>();
bool notEmptyModel = (model.Summary.NumJoints > 0);
bool resultsArrived = (model.Results != null && model.Results.Finished);
bool haveDesignOptions = false;
Canguro.Model.Design.DesignOptions[] desopt = new Canguro.Model.Design.DesignOptions[] { model.SteelDesignOptions, model.ConcreteDesignOptions, model.ColdFormedDesignOptions, model.AluminumDesignOptions };
foreach (Canguro.Model.Design.DesignOptions opt in desopt)
if (!(opt is Canguro.Model.Design.NoDesign)) {
haveDesignOptions = true;
break;
}
bool steelDesign = model.SteelDesignOptions.ToString().Contains("Sin") || model.SteelDesignOptions.ToString().Contains("No") ? false : true;
bool concreteDesign = model.ConcreteDesignOptions.ToString().Contains("Sin") || model.ConcreteDesignOptions.ToString().Contains("No") ? false : true;
enabledOptions.Add(ReportOptions.Joints, notEmptyModel);
enabledOptions.Add(ReportOptions.Lines, notEmptyModel);
enabledOptions.Add(ReportOptions.LoadCases, model.LoadCases.Count > 0);
enabledOptions.Add(ReportOptions.JointForces, notEmptyModel);
enabledOptions.Add(ReportOptions.GroundDisplacements, notEmptyModel);
enabledOptions.Add(ReportOptions.LineConcentratedForces, notEmptyModel);
enabledOptions.Add(ReportOptions.LineDistributedLoads, notEmptyModel);
enabledOptions.Add(ReportOptions.Materials, notEmptyModel);
enabledOptions.Add(ReportOptions.Constraints, model.ConstraintList.Count > 0);
enabledOptions.Add(ReportOptions.MaterialAmounts, notEmptyModel);
enabledOptions.Add(ReportOptions.Sections, notEmptyModel);
enabledOptions.Add(ReportOptions.JointDisplacements, resultsArrived);
enabledOptions.Add(ReportOptions.BaseReactions, resultsArrived);
enabledOptions.Add(ReportOptions.ElementJointForces, resultsArrived);
enabledOptions.Add(ReportOptions.AssembledJointMasses, resultsArrived);
// Begin modal tables
enabledOptions.Add(ReportOptions.ModalLoadParticipationRatios, model.Results.ModalLPR != null && model.Results.ModalLPR.Count > 0);
enabledOptions.Add(ReportOptions.ModalParticipatingMassRatios, model.Results.ModalLPR != null && model.Results.ModalLPR.Count > 0);
enabledOptions.Add(ReportOptions.ModalParticipationFactors, model.Results.ModalLPR != null && model.Results.ModalLPR.Count > 0);
enabledOptions.Add(ReportOptions.ModalPeriodsAndFrequencies, model.Results.ModalLPR != null && model.Results.ModalLPR.Count > 0);
// End modal tables
enabledOptions.Add(ReportOptions.ResponseSpectrumInfo, model.Results.ResponseSpectrumMI != null);
enabledOptions.Add(ReportOptions.JointReactions, resultsArrived);
enabledOptions.Add(ReportOptions.JointAccelerations, model.Results.JointAccelerations != null);
enabledOptions.Add(ReportOptions.JointVelocities, model.Results.JointVelocities != null);
// Begin design
enabledOptions.Add(ReportOptions.DesignOptions, haveDesignOptions);
enabledOptions.Add(ReportOptions.SteelDesign, model.Results.DesignSteelSummary != null && model.Results.DesignSteelSummary.Length > 0 && steelDesign);
enabledOptions.Add(ReportOptions.SteelDesignPMM, model.Results.DesignSteelPMMDetails != null && model.Results.DesignSteelPMMDetails.Length > 0 && steelDesign);
enabledOptions.Add(ReportOptions.SteelDesignShear, model.Results.DesignSteelShearDetails != null && model.Results.DesignSteelShearDetails.Length > 0 && steelDesign);
enabledOptions.Add(ReportOptions.ConcreteColumnDesign, model.Results.DesignConcreteColumn != null && model.Results.DesignConcreteColumn.Length > 0 && concreteDesign);
enabledOptions.Add(ReportOptions.ConcreteBeamDesign, model.Results.DesignConcreteBeam != null && model.Results.DesignConcreteBeam.Length > 0 && concreteDesign);
foreach (string str in allReports.Keys)
if (enabledOptions[allReports[str]])
optionsCheckedListBox.Items.Add(str);
}