/// <summary>
        /// Get the Average options from the dictionary.  This will
        /// check if the subsystem configuration is in the hashset.
        /// If it is in the hashset, it will get the Average options.
        /// If it is not, it will return a default configuration.
        /// </summary>
        /// <param name="ssConfig">Subsystem configuration to check.</param>
        /// <returns>Screen options.</returns>
        public AverageSubsystemConfigOptions GetAverageOptions(SubsystemConfiguration ssConfig)
        {
            AverageSubsystemConfigOptions options = null;

            if (SubsystemConfigList.Contains(ssConfig))
            {
                options = SubsysOptions[ssConfig.IndexCodeString()].AverageOptions;
            }
            else
            {
                options = new AverageSubsystemConfigOptions();
            }

            return(options);
        }
        /// <summary>
        /// Get the Screen options from the dictionary.  This will
        /// check if the subsystem configuration is in the hashset.
        /// If it is in the hashset, it will get the Screen options.
        /// If it is not, it will return a default configuration.
        /// </summary>
        /// <param name="ssConfig">Subsystem configuration to check.</param>
        /// <returns>Screen options.</returns>
        public ScreenSubsystemConfigOptions GetScreenOptions(SubsystemConfiguration ssConfig)
        {
            ScreenSubsystemConfigOptions options = null;

            if (SubsystemConfigList.Contains(ssConfig))
            {
                options = SubsysOptions[ssConfig.IndexCodeString()].ScreenOptions;
            }
            else
            {
                options = new ScreenSubsystemConfigOptions();
            }

            return(options);
        }
        /// <summary>
        /// Get the Graphical options from the dictionary.  This will
        /// check if the subsystem configuration is in the hashset.
        /// If it is in the hashset, it will get the Graphical options.
        /// If it is not, it will return a default configuration.
        /// </summary>
        /// <param name="ssConfig">Subsystem configuration to check.</param>
        /// <returns>Graphical options.</returns>
        public ViewDataGraphicalOptions GetGraphicalOptions(SubsystemConfiguration ssConfig)
        {
            ViewDataGraphicalOptions options = null;

            if (SubsystemConfigList.Contains(ssConfig))
            {
                options = SubsysOptions[ssConfig.IndexCodeString()].GraphicalOptions;
            }
            else
            {
                options = new ViewDataGraphicalOptions();
            }

            return(options);
        }
        /// <summary>
        /// Get the text options from the hashset.  This will
        /// check if the subsystem configuration is in the hashset.
        /// If it is in the hashset, it will get the text options.
        /// If it is not, it will return a default configuration.
        /// </summary>
        /// <param name="ssConfig">Subsystem configuration to check.</param>
        /// <returns>Text options.</returns>
        public TextSubsystemConfigOptions GetTextOptions(SubsystemConfiguration ssConfig)
        {
            TextSubsystemConfigOptions options = null;

            if (SubsystemConfigList.Contains(ssConfig))
            {
                options = SubsysOptions[ssConfig.IndexCodeString()].TextOptions;
            }
            else
            {
                options = new TextSubsystemConfigOptions();
            }

            return(options);
        }
        /// <summary>
        /// Save the Average SubsystemConfiguration options to the project database.
        /// This will store the options so the user can retreive them when the project
        /// is loaded again.
        /// </summary>
        /// <param name="ssConfig">Subsystem Configuration.</param>
        /// <param name="options">Average SubsystemConfiguration options.</param>
        public void SaveAverageOptions(SubsystemConfiguration ssConfig, AverageSubsystemConfigOptions options)
        {
            // Check if the subsystem exist in the dictionary
            if (SubsystemConfigList.Contains(ssConfig))
            {
                // Store the graphical options to the SubsystemConfig entry
                SubsysOptions[ssConfig.IndexCodeString()].AverageOptions = options;
            }
            else
            {
                // Add new subsystem configuration
                AddConfiguration(ssConfig);

                // Store the new options if the entry could be made
                if (SubsystemConfigList.Contains(ssConfig))
                {
                    // Store the graphical options to the SubsystemConfig entry
                    SubsysOptions[ssConfig.IndexCodeString()].AverageOptions = options;
                }
            }

            // Store the new options to the project DB
            SaveOptions();
        }
        /// <summary>
        /// Get the Validation View options from the dictionary.  This will
        /// check if the subsystem configuration is in the hashset.
        /// If it is in the hashset, it will get the Validation View options.
        /// If it is not, it will return a default configuration.
        /// </summary>
        /// <param name="ssConfig">Subsystem configuration to check.</param>
        /// <returns>Validation View options.</returns>
        public ValidationTestViewOptions GetValidationViewOptions(SubsystemConfiguration ssConfig)
        {
            ValidationTestViewOptions options = null;

            if (SubsystemConfigList.Contains(ssConfig))
            {
                options = SubsysOptions[ssConfig.IndexCodeString()].ValidationViewOptions;
            }
            else
            {
                // If there are any exist, use the first one
                if (SubsystemConfigList.Count > 0)
                {
                    options = SubsysOptions.First().Value.ValidationViewOptions;
                }
                else
                {
                    // No exist, so create a default option
                    options = new ValidationTestViewOptions();
                }
            }

            return(options);
        }