/****************************************************************************************/

        #region Constructors
        /// <summary>
        ///
        /// </summary>
        /// <param name="address"></param>
        /// <param name="priority"></param>
        /// <param name="worksheet"></param>
        /// <param name="itemElementNode"></param>
        /// <param name="namespaceManager"></param>
        internal ExcelConditionalFormattingThreeColorScale(
            ExcelAddress address,
            int priority,
            ExcelWorksheet worksheet,
            XmlNode itemElementNode,
            XmlNamespaceManager namespaceManager)
            : base(
                eExcelConditionalFormattingRuleType.ThreeColorScale,
                address,
                priority,
                worksheet,
                itemElementNode,
                (namespaceManager == null) ? worksheet.NameSpaceManager : namespaceManager)
        {
            if (itemElementNode == null)
            {
                // Create the <colorScale> node inside the <cfRule> node
                var colorScaleNode = CreateComplexNode(
                    Node,
                    ExcelConditionalFormattingConstants.Paths.ColorScale);

                // LowValue default
                LowValue = new ExcelConditionalFormattingColorScaleValue(
                    eExcelConditionalFormattingValueObjectPosition.Low,
                    eExcelConditionalFormattingValueObjectType.Min,
                    ColorTranslator.FromHtml(ExcelConditionalFormattingConstants.Colors.CfvoLowValue),
                    eExcelConditionalFormattingRuleType.ThreeColorScale,
                    address,
                    priority,
                    worksheet,
                    NameSpaceManager);

                // MiddleValue default
                MiddleValue = new ExcelConditionalFormattingColorScaleValue(
                    eExcelConditionalFormattingValueObjectPosition.Middle,
                    eExcelConditionalFormattingValueObjectType.Percent,
                    ColorTranslator.FromHtml(ExcelConditionalFormattingConstants.Colors.CfvoMiddleValue),
                    50,
                    string.Empty,
                    eExcelConditionalFormattingRuleType.ThreeColorScale,
                    address,
                    priority,
                    worksheet,
                    NameSpaceManager);

                // HighValue default
                HighValue = new ExcelConditionalFormattingColorScaleValue(
                    eExcelConditionalFormattingValueObjectPosition.High,
                    eExcelConditionalFormattingValueObjectType.Max,
                    ColorTranslator.FromHtml(ExcelConditionalFormattingConstants.Colors.CfvoHighValue),
                    eExcelConditionalFormattingRuleType.ThreeColorScale,
                    address,
                    priority,
                    worksheet,
                    NameSpaceManager);
            }
        }
        /****************************************************************************************/

        #region Constructors
        /// <summary>
        ///
        /// </summary>
        /// <param name="priority"></param>
        /// <param name="address"></param>
        /// <param name="worksheet"></param>
        /// <param name="itemElementNode"></param>
        /// <param name="namespaceManager"></param>
        internal ExcelConditionalFormattingTwoColorScale(
            ExcelAddress address,
            int priority,
            ExcelWorksheet worksheet,
            XmlNode itemElementNode,
            XmlNamespaceManager namespaceManager)
            : base(
                eExcelConditionalFormattingRuleType.TwoColorScale,
                address,
                priority,
                worksheet,
                itemElementNode,
                (namespaceManager == null) ? worksheet.NameSpaceManager : namespaceManager)
        {
            // If the node is not null, parse values out of it instead of clobbering it.
            if (itemElementNode == null)
            {
                // Create the <colorScale> node inside the <cfRule> node
                CreateComplexNode(
                    TopNode,
                    ExcelConditionalFormattingConstants.Paths.ColorScale);
            }
            else
            {
                itemElementNode = itemElementNode.ChildNodes[0];
            }
            // LowValue default
            LowValue = new ExcelConditionalFormattingColorScaleValue(
                eExcelConditionalFormattingValueObjectPosition.Low,
                eExcelConditionalFormattingValueObjectType.Min,
                ExcelConditionalFormattingConstants.Colors.CfvoLowValue,
                eExcelConditionalFormattingRuleType.TwoColorScale,
                address,
                priority,
                worksheet,
                itemElementNode,
                NameSpaceManager);

            // HighValue default
            HighValue = new ExcelConditionalFormattingColorScaleValue(
                eExcelConditionalFormattingValueObjectPosition.High,
                eExcelConditionalFormattingValueObjectType.Max,
                ExcelConditionalFormattingConstants.Colors.CfvoHighValue,
                eExcelConditionalFormattingRuleType.TwoColorScale,
                address,
                priority,
                worksheet,
                itemElementNode,
                NameSpaceManager);
        }
    /****************************************************************************************/

    #region Constructors
    /// <summary>
    /// 
    /// </summary>
    /// <param name="priority"></param>
    /// <param name="address"></param>
    /// <param name="worksheet"></param>
    /// <param name="itemElementNode"></param>
    /// <param name="namespaceManager"></param>
    internal ExcelConditionalFormattingTwoColorScale(
      ExcelAddress address,
      int priority,
      ExcelWorksheet worksheet,
      XmlNode itemElementNode,
      XmlNamespaceManager namespaceManager)
      : base(
        eExcelConditionalFormattingRuleType.TwoColorScale,
        address,
        priority,
        worksheet,
        itemElementNode,
        (namespaceManager == null) ? worksheet.NameSpaceManager : namespaceManager)
    {
      // Create the <colorScale> node inside the <cfRule> node
      var colorScaleNode = CreateComplexNode(
        Node,
        ExcelConditionalFormattingConstants.Paths.ColorScale);

      // LowValue default
      LowValue = new ExcelConditionalFormattingColorScaleValue(
        eExcelConditionalFormattingValueObjectPosition.Low,
        eExcelConditionalFormattingValueObjectType.Min,
        ColorTranslator.FromHtml(ExcelConditionalFormattingConstants.Colors.CfvoLowValue),
        eExcelConditionalFormattingRuleType.TwoColorScale,
        address,
        priority,
        worksheet,
        NameSpaceManager);

      // HighValue default
      HighValue = new ExcelConditionalFormattingColorScaleValue(
        eExcelConditionalFormattingValueObjectPosition.High,
        eExcelConditionalFormattingValueObjectType.Max,
        ColorTranslator.FromHtml(ExcelConditionalFormattingConstants.Colors.CfvoHighValue),
        eExcelConditionalFormattingRuleType.TwoColorScale,
        address,
        priority,
        worksheet,
        NameSpaceManager);
    }