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);
                }
            }
        }
        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);
        }