Smrf.NodeXL.ExcelTemplate.TableColumnMapper.TryMapToColor C# (CSharp) Method

TryMapToColor() public static method

public static TryMapToColor ( ListObject table, String sourceColumnName, String destinationColumnName, System.Boolean useSourceNumber1, System.Boolean useSourceNumber2, Double sourceNumber1, Double sourceNumber2, Color destinationColor1, Color destinationColor2, System.Boolean ignoreOutliers, System.Boolean useLogs, Double &sourceCalculationNumber1, Double &sourceCalculationNumber2, Int32 &decimalPlaces ) : System.Boolean
table ListObject
sourceColumnName String
destinationColumnName String
useSourceNumber1 System.Boolean
useSourceNumber2 System.Boolean
sourceNumber1 Double
sourceNumber2 Double
destinationColor1 Color
destinationColor2 Color
ignoreOutliers System.Boolean
useLogs System.Boolean
sourceCalculationNumber1 Double
sourceCalculationNumber2 Double
decimalPlaces System.Int32
return System.Boolean
    TryMapToColor
    (
        ListObject table,
        String sourceColumnName,
        String destinationColumnName,
        Boolean useSourceNumber1,
        Boolean useSourceNumber2,
        Double sourceNumber1,
        Double sourceNumber2,
        Color destinationColor1,
        Color destinationColor2,
        Boolean ignoreOutliers,
        Boolean useLogs,
        out Double sourceCalculationNumber1,
        out Double sourceCalculationNumber2,
        out Int32 decimalPlaces
    )
    {
        Debug.Assert(table != null);
        Debug.Assert( !String.IsNullOrEmpty(sourceColumnName) );
        Debug.Assert( !String.IsNullOrEmpty(destinationColumnName) );
        Debug.Assert(!useLogs || !useSourceNumber1 || sourceNumber1 > 0);
        Debug.Assert(!useLogs || !useSourceNumber2 || sourceNumber2 > 0);

        sourceCalculationNumber1 = sourceCalculationNumber2 = Double.MinValue;
        decimalPlaces = Int32.MinValue;

        Range oVisibleSourceRange, oVisibleDestinationRange;

        if ( !TryGetVisibleSourceAndDestination(table, sourceColumnName,
            destinationColumnName, out oVisibleSourceRange,
            out oVisibleDestinationRange) )
        {
            return (false);
        }

        // Get the source calculation range, which is the range of source
        // numbers used in calculating the mapping of source numbers to
        // destination numbers.

        if ( !TryGetSourceCalculationRange(oVisibleSourceRange,
            useSourceNumber1, useSourceNumber2, sourceNumber1, sourceNumber2,
            ignoreOutliers, useLogs, out sourceCalculationNumber1,
            out sourceCalculationNumber2) )
        {
            return (false);
        }

        // Create an object that maps a range of numbers to a range of colors.

        Double dSourceCalculationNumberWithLog1 =
            GetLogIfRequested(sourceCalculationNumber1, useLogs);

        Double dSourceCalculationNumberWithLog2 =
            GetLogIfRequested(sourceCalculationNumber2, useLogs);

        ColorGradientMapper oColorGradientMapper = GetColorGradientMapper(
            dSourceCalculationNumberWithLog1, dSourceCalculationNumberWithLog2,
            destinationColor1, destinationColor2);

        ColorConverter2 oColorConverter2 = new ColorConverter2();

        // Loop through the areas.

        Int32 iAreas = oVisibleSourceRange.Areas.Count;

        Debug.Assert(iAreas == oVisibleDestinationRange.Areas.Count);

        for (Int32 iArea = 1; iArea <= iAreas; iArea++)
        {
            Range oSourceArea = oVisibleSourceRange.Areas[iArea];
            Range oDestinationArea = oVisibleDestinationRange.Areas[iArea];

            Debug.Assert(oSourceArea.Rows.Count ==
                oDestinationArea.Rows.Count);

            Object [,] aoSourceAreaValues =
                ExcelUtil.GetRangeValues(oSourceArea);

            Object [,] aoDestinationAreaValues =
                ExcelUtil.GetRangeValues(oDestinationArea);

            Int32 iRows = oSourceArea.Rows.Count;

            for (Int32 iRow = 1; iRow <= iRows; iRow++)
            {
                // If the source cell doesn't contain a number, skip it.

                Double dSourceNumber;

                if ( !TryGetNumber( aoSourceAreaValues[iRow, 1], useLogs,
                    out dSourceNumber) )
                {
                    continue;
                }

                dSourceNumber = GetLogIfRequested(dSourceNumber, useLogs);

                Color oDestinationColor =
                    oColorGradientMapper.ColorMetricToColor(dSourceNumber);

                // Write the color in a format that is understood by
                // ColorConverter2.WorkbookToGraph(), which is what
                // WorksheetReaderBase uses.

                aoDestinationAreaValues[iRow, 1] =
                    oColorConverter2.GraphToWorkbook(oDestinationColor);
            }

            oDestinationArea.set_Value(Missing.Value, aoDestinationAreaValues);
        }

        decimalPlaces = GetDecimalPlaces(table, sourceColumnName);

        return (true);
    }

Same methods

TableColumnMapper::TryMapToColor ( ListObject table, String sourceColumnName, String destinationColumnName, ICollection &categoryNames ) : System.Boolean