using System.Drawing; using System.Globalization; using System.Windows.Forms; using FastReport.DataVisualization.Charting; namespace FastReport.Import.RDL { /// /// The RDL units converter. /// public static partial class UnitsConverter { #region Public Methods /// /// Converts the RDL GradientType to GradientStyle. /// /// The RDL GradientType value. /// The GradientStyle value. public static GradientStyle ConvertGradientType(string gradientType) { if (gradientType == "LeftRight") { return GradientStyle.LeftRight; } else if (gradientType == "TopBottom") { return GradientStyle.TopBottom; } else if (gradientType == "Center") { return GradientStyle.Center; } else if (gradientType == "DiagonalLeft") { return GradientStyle.DiagonalLeft; } else if (gradientType == "DiagonalRight") { return GradientStyle.DiagonalRight; } else if (gradientType == "HorizontalCenter") { return GradientStyle.HorizontalCenter; } else if (gradientType == "VerticalCenter") { return GradientStyle.VerticalCenter; } return GradientStyle.None; } /// /// Converts the RDL Chart.Type to SeriesChartType. /// /// The RDL Chart.Type value. /// The SeriesChartType value. public static SeriesChartType ConvertChartType(string chartType) { if (chartType == "Area") { return SeriesChartType.Area; } else if (chartType == "Bar") { return SeriesChartType.Bar; } else if (chartType == "Doughnut") { return SeriesChartType.Doughnut; } else if (chartType == "Line") { return SeriesChartType.Line; } else if (chartType == "Pie") { return SeriesChartType.Pie; } else if (chartType == "Bubble") { return SeriesChartType.Bubble; } return SeriesChartType.Column; } /// /// Converts the RDL Chart.Palette to ChartColorPalette. /// /// The RDL Chart.Palette value. /// The RDL ChartColorPalette value. public static ChartColorPalette ConvertChartPalette(string chartPalette) { if (chartPalette == "EarthTones") { return ChartColorPalette.EarthTones; } else if (chartPalette == "Excel") { return ChartColorPalette.Excel; } else if (chartPalette == "GrayScale") { return ChartColorPalette.Grayscale; } else if (chartPalette == "Light") { return ChartColorPalette.Light; } else if (chartPalette == "Pastel") { return ChartColorPalette.Pastel; } else if (chartPalette == "SemiTransparent") { return ChartColorPalette.SemiTransparent; } return ChartColorPalette.None; } /// /// Converts the RDL Chart.Legend.Position to Legend.Docking and Legend.Alignment. /// /// The RDL Chart.Legend.Position value. /// The Legend instance to convert to. public static void ConvertChartLegendPosition(string chartLegendPosition, Legend legend) { if (chartLegendPosition == "TopLeft") { legend.Docking = Docking.Top; legend.Alignment = StringAlignment.Near; } else if (chartLegendPosition == "TopCenter") { legend.Docking = Docking.Top; legend.Alignment = StringAlignment.Center; } else if (chartLegendPosition == "TopRight") { legend.Docking = Docking.Top; legend.Alignment = StringAlignment.Far; } else if (chartLegendPosition == "LeftTop") { legend.Docking = Docking.Left; legend.Alignment = StringAlignment.Near; } else if (chartLegendPosition == "LeftCenter") { legend.Docking = Docking.Left; legend.Alignment = StringAlignment.Center; } else if (chartLegendPosition == "LeftBottom") { legend.Docking = Docking.Left; legend.Alignment = StringAlignment.Far; } else if (chartLegendPosition == "RightTop") { legend.Docking = Docking.Right; legend.Alignment = StringAlignment.Near; } else if (chartLegendPosition == "RightCenter") { legend.Docking = Docking.Right; legend.Alignment = StringAlignment.Center; } else if (chartLegendPosition == "RightBottom") { legend.Docking = Docking.Right; legend.Alignment = StringAlignment.Far; } else if (chartLegendPosition == "BottomLeft") { legend.Docking = Docking.Bottom; legend.Alignment = StringAlignment.Near; } else if (chartLegendPosition == "BottomCenter") { legend.Docking = Docking.Bottom; legend.Alignment = StringAlignment.Center; } else if (chartLegendPosition == "BottomRight") { legend.Docking = Docking.Bottom; legend.Alignment = StringAlignment.Far; } } /// /// Converts the RDL Chart.Legend.Layout to LegendStyle. /// /// The RDL Chart.Legend.Layout value. /// The LegendStyle value. public static LegendStyle ConvertChartLegendLayout(string chartLegendLayout) { if (chartLegendLayout == "Table") { return LegendStyle.Table; } else if (chartLegendLayout == "Row") { return LegendStyle.Row; } return LegendStyle.Column; } /// /// Converts the RDL BorderStyle to ChartDashStyle. /// /// The RDL BorderStyle value. /// The ChartDashStyle value. public static ChartDashStyle ConvertBorderStyleToChartDashStyle(string borderStyle) { if (borderStyle == "Dotted") { return ChartDashStyle.Dot; } else if (borderStyle == "Dashed") { return ChartDashStyle.Dash; } return ChartDashStyle.Solid; } /// /// Converts the RDL Axis.Visible to AxisEnabled. /// /// The RDL Axis.Visible value. /// The AxisEnabled value. public static AxisEnabled ConvertAxisVisibleToAxisEnabled(string axisVisible) { if (axisVisible.ToLower() == "true") { return AxisEnabled.True; } else if (axisVisible.ToLower() == "false") { return AxisEnabled.False; } return AxisEnabled.Auto; } /// /// Converts the RDL TickMarkStyle to TickMarkStyle. /// /// The RDL TickMarkStyle value. /// The TickMarkStyle value. public static TickMarkStyle ConvertTickMarkStyle(string tickMarkStyle) { if (tickMarkStyle == "Inside") { return TickMarkStyle.InsideArea; } else if (tickMarkStyle == "Outside") { return TickMarkStyle.OutsideArea; } else if (tickMarkStyle == "Cross") { return TickMarkStyle.AcrossAxis; } return TickMarkStyle.None; } /// /// Converts the RDL Shading to LightStyle. /// /// The RDL Shading value. /// The LightStyle value. public static LightStyle ConvertShading(string shading) { if (shading == "Simple") { return LightStyle.Simplistic; } else if (shading == "Real") { return LightStyle.Realistic; } return LightStyle.None; } #endregion // Public Methods } }