TryAutoFillNumericRangeColumn
        (
            ListObject oTable,
            String sSourceColumnName,
            String sDestinationColumnName,
            NumericRangeColumnAutoFillUserSettings oDetails,
            out Double dSourceCalculationNumber1,
            out Double dSourceCalculationNumber2,
            out Int32 iDecimalPlaces
        )
        {
            Debug.Assert(oTable != null);
            Debug.Assert(!String.IsNullOrEmpty(sDestinationColumnName));
            Debug.Assert(oDetails != null);

            dSourceCalculationNumber1 = dSourceCalculationNumber2 =
                Double.MinValue;

            iDecimalPlaces = Int32.MinValue;

            if (String.IsNullOrEmpty(sSourceColumnName))
            {
                return(false);
            }

            return(TableColumnMapper.TryMapToNumericRange(
                       oTable, sSourceColumnName, sDestinationColumnName,
                       oDetails.UseSourceNumber1,
                       oDetails.UseSourceNumber2,
                       oDetails.SourceNumber1,
                       oDetails.SourceNumber2,
                       oDetails.DestinationNumber1,
                       oDetails.DestinationNumber2,
                       oDetails.IgnoreOutliers,
                       oDetails.UseLogs,
                       out dSourceCalculationNumber1,
                       out dSourceCalculationNumber2,
                       out iDecimalPlaces
                       ));
        }
Beispiel #2
0
        AutoFillByEdgeWeight
        (
            Microsoft.Office.Interop.Excel.Workbook workbook,
            String edgeWeightColumnName,
            Boolean showVertexLabels,
            String vertexLabelColumnName
        )
        {
            Debug.Assert(workbook != null);
            Debug.Assert(!String.IsNullOrEmpty(edgeWeightColumnName));

            Debug.Assert(!showVertexLabels ||
                         !String.IsNullOrEmpty(vertexLabelColumnName));

            ListObject         oVertexTable         = null;
            ListObject         oEdgeTable           = null;
            ExcelHiddenColumns oHiddenVertexColumns = null;
            ExcelHiddenColumns oHiddenEdgeColumns   = null;

            AutoFillWorkbookWithSchemeResults oAutoFillWorkbookWithSchemeResults =
                new AutoFillWorkbookWithSchemeResults();

            try
            {
                if (
                    !TryStartAutoFill(workbook, showVertexLabels,
                                      vertexLabelColumnName, out oEdgeTable, out oVertexTable,
                                      out oHiddenEdgeColumns, out oHiddenVertexColumns)
                    ||
                    ExcelUtil.VisibleTableRangeIsEmpty(oEdgeTable)
                    )
                {
                    return;
                }

                // Map the edge weight column to the edge width column.

                Double dSourceCalculationNumber1, dSourceCalculationNumber2;
                Int32  iDecimalPlaces;

                if (!TableColumnMapper.TryMapToNumericRange(oEdgeTable,
                                                            edgeWeightColumnName, EdgeTableColumnNames.Width, false, false,
                                                            0, 0,
                                                            MinimumEdgeWeightWidthWorkbook, MaximumEdgeWeightWidthWorkbook,
                                                            false, false,
                                                            out dSourceCalculationNumber1, out dSourceCalculationNumber2,
                                                            out iDecimalPlaces
                                                            ))
                {
                    return;
                }

                // Fill in other columns with constants.

                String sBlack = (new ColorConverter2()).GraphToWorkbook(
                    Color.FromArgb(0, 0, 0));

                FillColumnsWithConstants(

                    oEdgeTable, EdgeTableColumnNames.Color, sBlack,

                    oEdgeTable, CommonTableColumnNames.Alpha,
                    0.6F * (AlphaConverter.MaximumAlphaWorkbook -
                            AlphaConverter.MinimumAlphaWorkbook),

                    oVertexTable, VertexTableColumnNames.Shape,
                    (new VertexShapeConverter()).GraphToWorkbook(
                        VertexShape.Circle),

                    oVertexTable, VertexTableColumnNames.Color, sBlack,

                    oVertexTable, VertexTableColumnNames.Radius, 3.0F,

                    oVertexTable, CommonTableColumnNames.Alpha,
                    AlphaConverter.MaximumAlphaWorkbook
                    );

                // Save the results.

                oAutoFillWorkbookWithSchemeResults.SetEdgeWeightResults(
                    edgeWeightColumnName, dSourceCalculationNumber1,
                    dSourceCalculationNumber2, iDecimalPlaces);
            }
            finally
            {
                (new PerWorkbookSettings(workbook)).
                AutoFillWorkbookWithSchemeResults =
                    oAutoFillWorkbookWithSchemeResults;

                EndAutoFill(workbook, oEdgeTable, oVertexTable,
                            oHiddenEdgeColumns, oHiddenVertexColumns);
            }
        }