/// <summary>
 ///
 /// </summary>
 /// <param name="sourceGroup"></param>
 /// <returns></returns>
 private bool specialSourceCondition(ContributedGroup sourceGroup)
 {
     if (sourceGroup == null)
     {
         return(false);
     }
     else
     {
         return(isFixed(sourceGroup.contribution) ||
                //    (((sourceGroup.contribution.Status & ParameterStatus.Free) > 0) &&
                //        (((sourceGroup.contribution.Status & ParameterStatus.Common) > 0 && ParentProject.SearchMode != SearchMode.Preliminary) ||
                //        ParentProject.SearchMode == SearchMode.PreliminaryInts));
                (((sourceGroup.contribution.Status & (ParameterStatus.Common | ParameterStatus.Free)) == (ParameterStatus.Common | ParameterStatus.Free)) &&
                 ParentProject.SearchMode != SearchMode.Preliminary));
     }
 }
        private void getGroups(ISpectrum spectrum)  //, out IGroup zeroGroup,
        {
            sourceGroup = null;
            rangesGroup = null;
            sampleGroup = null;
            for (int i = 0; i < spectrum.Parameters.GroupCount; i++)
            {
                switch (spectrum.Parameters[i].Definition.kind)
                {
                case 1: sampleGroup = (ContributedGroup)spectrum.Parameters[i]; break;

                case 2:
                    if (spectrum.Parameters[i].Components.Size > 0)
                    {
                        sourceGroup = (ContributedGroup)spectrum.Parameters[i];
                    }
                    break;

                case 4: rangesGroup = spectrum.Parameters[i]; break;
                }
            }

            //foreach (IGroup group in spectrum.Parameters) {
            //    GroupType gt = group.Definition.Type;
            //    if (group.Definition.kind == 1) {
            //        sampleGroup = (ContributedGroup)group;
            //    } else {
            //        if (group.Definition.kind == 2 && group.Components.Size > 0)  //source
            //            sourceGroup = (ContributedGroup)group;
            //        else {
            //            if (group.Definition.kind == 4)  //ranges
            //                rangesGroup = group;
            //        }

            //    }
            //}
        }