/// <summary>
        /// Sets up and data binds interface controls to ParametericRecruitent data.
        /// </summary>
        /// <param name="currentRecruit"></param>
        /// <param name="panelRecruitModelParameter"></param>
        public override void SetParametricRecruitmentControls(ParametricRecruitment currentRecruit, Panel panelRecruitModelParameter)
        {
            ParametricLognormal currentLognormalRecruit = (ParametricLognormal)currentRecruit;

            DataBindTextBox(textBoxMean, currentLognormalRecruit, "mean");
            DataBindTextBox(textBoxStdDeviation, currentLognormalRecruit, "stdDev");

            textBoxMean.PrevValidValue         = currentLognormalRecruit.Mean.ToString();
            textBoxStdDeviation.PrevValidValue = currentLognormalRecruit.Mean.ToString();

            if (currentLognormalRecruit.Autocorrelated)
            {
                labelPhi.Enabled            = true;
                labelLastResidual.Enabled   = true;
                textBoxPhi.Enabled          = true;
                textBoxLastResidual.Enabled = true;

                DataBindTextBox(textBoxPhi, currentLognormalRecruit, "phi");
                DataBindTextBox(textBoxLastResidual, currentLognormalRecruit, "lastResidual");
            }

            base.SetParametricRecruitmentControls(currentRecruit, panelRecruitModelParameter);
        }
        //TODO:REFACTOR
        private void LoadRecruitModelParameterControls(RecruitmentModel currentRecruitSelection)
        {
            if (currentRecruitSelection is EmpiricalRecruitment)
            {
                if (((EmpiricalRecruitment)currentRecruitSelection).subType == EmpiricalType.Empirical)
                {
                    EmpiricalRecruitment currentEmpiricalRecruitSelection = (EmpiricalRecruitment)currentRecruitSelection;

                    ControlRecruitmentEmpirical empiricalParameterControls = new ControlRecruitmentEmpirical();

                    empiricalParameterControls.SetEmpiricalRecruitmentControls(currentEmpiricalRecruitSelection, panelRecruitModelParameter);
                    empiricalParameterControls.collectionAgeproRecruitmentModels = this.collectionAgeproRecruitmentModels;
                    empiricalParameterControls.collectionSelectedIndex           = this.comboBoxRecruitSelection.SelectedIndex;
                }
                else if (((EmpiricalRecruitment)currentRecruitSelection).subType == EmpiricalType.TwoStage)
                {
                    TwoStageEmpiricalRecruitment currentTwoStageEmpiricalRecruitSelection =
                        (TwoStageEmpiricalRecruitment)currentRecruitSelection;

                    //Load TwoStage Controls
                    ControlRecruitmentEmpiricalTwoStage twoStageControls = new ControlRecruitmentEmpiricalTwoStage();
                    twoStageControls.SetTwoStageEmpiricalRecruitmentControls(currentTwoStageEmpiricalRecruitSelection,
                                                                             panelRecruitModelParameter);
                    twoStageControls.collectionAgeproRecruitmentModels = this.collectionAgeproRecruitmentModels;
                    twoStageControls.collectionSelectedIndex           = this.comboBoxRecruitSelection.SelectedIndex;
                }
                else if (((EmpiricalRecruitment)currentRecruitSelection).subType == EmpiricalType.CDFZero)
                {
                    EmpiricalCDFZero currentEmpiricalCDFZeroRecruitmentSelection = (EmpiricalCDFZero)currentRecruitSelection;

                    ControlRecruitmentEmpirical empiricalCDFZeroControls = new ControlRecruitmentEmpirical();

                    empiricalCDFZeroControls.SetEmpiricalCDFZeroRecruitmentControls(
                        currentEmpiricalCDFZeroRecruitmentSelection, panelRecruitModelParameter);
                    empiricalCDFZeroControls.collectionAgeproRecruitmentModels = this.collectionAgeproRecruitmentModels;
                    empiricalCDFZeroControls.collectionSelectedIndex           = this.comboBoxRecruitSelection.SelectedIndex;
                }
                else if (((EmpiricalRecruitment)currentRecruitSelection).subType == EmpiricalType.Fixed)
                {
                    FixedEmpiricalRecruitment currentFixedRecruitmentSelection = (FixedEmpiricalRecruitment)currentRecruitSelection;

                    ControlRecruitmentFixed fixedRecruitmentControls = new ControlRecruitmentFixed();
                    fixedRecruitmentControls.seqYears = this.seqRecruitYears;
                    fixedRecruitmentControls.SetFixedRecruitmentControls(currentFixedRecruitmentSelection, panelRecruitModelParameter);
                    fixedRecruitmentControls.collectionAgeproRecruitmentModels = this.collectionAgeproRecruitmentModels;
                    fixedRecruitmentControls.collectionSelectedIndex           = this.comboBoxRecruitSelection.SelectedIndex;
                }
            }
            else if (currentRecruitSelection is ParametricRecruitment)
            {
                if (((ParametricRecruitment)currentRecruitSelection).subtype == ParametricType.Curve)
                {
                    ParametricCurve currentParametricCurveRecruit = (ParametricCurve)currentRecruitSelection;

                    ControlRecruitmentParametricCurve parametricCurveControls = new ControlRecruitmentParametricCurve();

                    parametricCurveControls.collectionAgeproRecruitmentModels = this.collectionAgeproRecruitmentModels;
                    parametricCurveControls.collectionSelectedIndex           = this.comboBoxRecruitSelection.SelectedIndex;
                    parametricCurveControls.SetParametricRecruitmentControls(currentParametricCurveRecruit, panelRecruitModelParameter);
                }
                else if (((ParametricRecruitment)currentRecruitSelection).subtype == ParametricType.Lognormal)
                {
                    ParametricLognormal currentParametricLognormalRecruit = (ParametricLognormal)currentRecruitSelection;

                    ControlRecruitmentParametricLognormal lognormalControls = new ControlRecruitmentParametricLognormal();

                    lognormalControls.SetParametricRecruitmentControls(currentParametricLognormalRecruit, panelRecruitModelParameter);
                    lognormalControls.collectionAgeproRecruitmentModels = this.collectionAgeproRecruitmentModels;
                    lognormalControls.collectionSelectedIndex           = this.comboBoxRecruitSelection.SelectedIndex;
                }
            }
            else if (currentRecruitSelection is PredictorRecruitment)
            {
                PredictorRecruitment currentPredictorRecruitSelection = (PredictorRecruitment)currentRecruitSelection;

                ControlRecruitmentPredictor predictorParameterControls = new ControlRecruitmentPredictor();

                predictorParameterControls.seqYears = this.seqRecruitYears;
                predictorParameterControls.collectionSelectedIndex           = this.comboBoxRecruitSelection.SelectedIndex;
                predictorParameterControls.collectionAgeproRecruitmentModels = this.collectionAgeproRecruitmentModels;
                predictorParameterControls.SetPredictorRecruitmentcontrols(currentPredictorRecruitSelection, panelRecruitModelParameter);
            }
            else if (currentRecruitSelection is MarkovMatrixRecruitment)
            {
                MarkovMatrixRecruitment currentRecruit = (MarkovMatrixRecruitment)currentRecruitSelection;

                ControlRecruitmentMarkovMatrix markovControls = new ControlRecruitmentMarkovMatrix();

                markovControls.SetRecruitmentControls(currentRecruit, panelRecruitModelParameter);
                markovControls.collectionAgeproRecruitModels = this.collectionAgeproRecruitmentModels;
                markovControls.collectionSelectedIndex       = this.comboBoxRecruitSelection.SelectedIndex;
            }
            else
            {
                panelRecruitModelParameter.Controls.Clear();
            }
        }