public Singulation_DynamicQ(SingulationAlgorithmParms parms, SingulationAlgorithm alg)
 {
     switch (current = alg)
     {
         case SingulationAlgorithm.DYNAMICQ:
             if (parms.GetType() == typeof(DynamicQParms))
             {
                 dynQ = parms as DynamicQParms;
             }
             else
             {
                 dynQ.startQValue = 7;
                 dynQ.minQValue = 0;
                 dynQ.maxQValue = 15;
                 dynQ.maxQueryRepCount = 0;
                 dynQ.retryCount = 0;
                 dynQ.toggleTarget = 1;
             }
             break;
         case SingulationAlgorithm.DYNAMICQ_ADJUST:
             if (parms.GetType() == typeof(DynamicQAdjustParms))
             {
                 dynQAdjust = parms as DynamicQAdjustParms;
             }
             else
             {
                 dynQAdjust.startQValue = 7;
                 dynQAdjust.minQValue = 0;
                 dynQAdjust.maxQValue = 15;
                 dynQAdjust.maxQueryRepCount = 0;
                 dynQAdjust.retryCount = 0;
                 dynQAdjust.toggleTarget = 1;
             }
             break;
         case SingulationAlgorithm.DYNAMICQ_THRESH:
             if (parms.GetType() == typeof(DynamicQThresholdParms))
             {
                 dynQThreshold = parms as DynamicQThresholdParms;
             }
             else
             {
                 dynQThreshold.startQValue = 7;
                 dynQThreshold.minQValue = 0;
                 dynQThreshold.maxQValue = 15;
                 dynQThreshold.thresholdMultiplier = 0;
                 dynQThreshold.retryCount = 0;
                 dynQThreshold.toggleTarget = 1;
             }
             break;
     }
     InitializeComponent();
     Refresh();
 }
        /*public DynamicQThresholdParms DynamicQThreshold
         * {
         *  get { return dynQThreshold; }
         *  set { dynQThreshold = value; }
         * }*/

        public Singulation_DynamicQ(SingulationAlgorithmParms parms, SingulationAlgorithm alg)
        {
            switch (current = alg)
            {
            case SingulationAlgorithm.DYNAMICQ:
                if (parms.GetType() == typeof(DynamicQParms))
                {
                    dynQ = parms as DynamicQParms;
                }
                else
                {
                    dynQ.startQValue         = 7;
                    dynQ.minQValue           = 0;
                    dynQ.maxQValue           = 15;
                    dynQ.thresholdMultiplier = 0;
                    dynQ.retryCount          = 0;
                    dynQ.toggleTarget        = 1;
                }
                break;

                /*case SingulationAlgorithm.DYNAMICQ_ADJUST:
                 *  if (parms.GetType() == typeof(DynamicQAdjustParms))
                 *  {
                 *      dynQAdjust = parms as DynamicQAdjustParms;
                 *  }
                 *  else
                 *  {
                 *      dynQAdjust.startQValue = 7;
                 *      dynQAdjust.minQValue = 0;
                 *      dynQAdjust.maxQValue = 15;
                 *      dynQAdjust.maxQueryRepCount = 0;
                 *      dynQAdjust.retryCount = 0;
                 *      dynQAdjust.toggleTarget = 1;
                 *  }
                 *  break;
                 * case SingulationAlgorithm.DYNAMICQ_THRESH:
                 *  if (parms.GetType() == typeof(DynamicQThresholdParms))
                 *  {
                 *      dynQThreshold = parms as DynamicQThresholdParms;
                 *  }
                 *  else
                 *  {
                 *      dynQThreshold.startQValue = 7;
                 *      dynQThreshold.minQValue = 0;
                 *      dynQThreshold.maxQValue = 15;
                 *      dynQThreshold.thresholdMultiplier = 0;
                 *      dynQThreshold.retryCount = 0;
                 *      dynQThreshold.toggleTarget = 1;
                 *  }
                 *  break;*/
            }
            InitializeComponent();
            Refresh();
        }
        public Singulation_FixedQ(SingulationAlgorithmParms fixedQ)
        {
            InitializeComponent();

            if (fixedQ.GetType() == typeof(FixedQParms))
            {
                FixedQ = (FixedQParms)fixedQ;
            }
            else
            {
                FixedQ.qValue            = 7;
                FixedQ.retryCount        = 0;
                FixedQ.toggleTarget      = 1;
                FixedQ.repeatUntilNoTags = 0;
            }

            Refresh();
        }
        public Singulation_FixedQ(SingulationAlgorithmParms fixedQ)
        {
            InitializeComponent();

            if (fixedQ.GetType() == typeof(FixedQParms))
            {
                FixedQ = (FixedQParms)fixedQ;
            }
            else
            {
                FixedQ.qValue = 7;
                FixedQ.retryCount = 0;
                FixedQ.toggleTarget = 1;
                FixedQ.repeatUntilNoTags = 0;
            }

            Refresh();
        }