/// <summary> /// Layouts and calculates the space used by the line chart. /// </summary> internal override void Format() { ChartRendererInfo cri = (ChartRendererInfo)_rendererParms.RendererInfo; LegendRenderer lr = new ColumnLikeLegendRenderer(_rendererParms); lr.Format(); // axes AxisRenderer xar = new HorizontalXAxisRenderer(_rendererParms); xar.Format(); AxisRenderer yar = new VerticalYAxisRenderer(_rendererParms); yar.Format(); // Calculate rects and positions. CalcLayout(); // Calculated remaining plot area, now it's safe to format. LinePlotAreaRenderer lpar = new LinePlotAreaRenderer(_rendererParms); lpar.Format(); }
/// <summary> /// Returns an initialized and renderer specific rendererInfo. /// </summary> internal override RendererInfo Init() { ChartRendererInfo cri = new ChartRendererInfo { _chart = (Chart)_rendererParms.DrawingItem }; _rendererParms.RendererInfo = cri; InitSeriesRendererInfo(); LegendRenderer lr = new ColumnLikeLegendRenderer(_rendererParms); cri.legendRendererInfo = (LegendRendererInfo)lr.Init(); AxisRenderer xar = new HorizontalXAxisRenderer(_rendererParms); cri.xAxisRendererInfo = (AxisRendererInfo)xar.Init(); AxisRenderer yar = new VerticalYAxisRenderer(_rendererParms); cri.yAxisRendererInfo = (AxisRendererInfo)yar.Init(); PlotArea plotArea = cri._chart.PlotArea; LinePlotAreaRenderer lpar = new LinePlotAreaRenderer(_rendererParms); cri.plotAreaRendererInfo = (PlotAreaRendererInfo)lpar.Init(); return(cri); }
/// <summary> /// Draws the line chart. /// </summary> internal override void Draw() { ChartRendererInfo cri = (ChartRendererInfo)_rendererParms.RendererInfo; LegendRenderer lr = new ColumnLikeLegendRenderer(_rendererParms); lr.Draw(); // Draw wall. WallRenderer wr = new WallRenderer(_rendererParms); wr.Draw(); // Draw gridlines. GridlinesRenderer glr = new ColumnLikeGridlinesRenderer(_rendererParms); glr.Draw(); PlotAreaBorderRenderer pabr = new PlotAreaBorderRenderer(_rendererParms); pabr.Draw(); // Draw line chart's plot area. LinePlotAreaRenderer lpar = new LinePlotAreaRenderer(_rendererParms); lpar.Draw(); // Draw x- and y-axis. if (cri.xAxisRendererInfo._axis != null) { AxisRenderer xar = new HorizontalXAxisRenderer(_rendererParms); xar.Draw(); } if (cri.yAxisRendererInfo._axis != null) { AxisRenderer yar = new VerticalYAxisRenderer(_rendererParms); yar.Draw(); } }
/// <summary> /// Draws the column chart. /// </summary> internal override void Draw() { CombinationRendererInfo cri = (CombinationRendererInfo)_rendererParms.RendererInfo; cri.seriesRendererInfos = cri._commonSeriesRendererInfos; LegendRenderer lr = new ColumnLikeLegendRenderer(_rendererParms); lr.Draw(); WallRenderer wr = new WallRenderer(_rendererParms); wr.Draw(); GridlinesRenderer glr = new ColumnLikeGridlinesRenderer(_rendererParms); glr.Draw(); PlotAreaBorderRenderer pabr = new PlotAreaBorderRenderer(_rendererParms); pabr.Draw(); PlotAreaRenderer renderer; if (cri._areaSeriesRendererInfos != null) { cri.seriesRendererInfos = cri._areaSeriesRendererInfos; renderer = new AreaPlotAreaRenderer(_rendererParms); renderer.Draw(); } if (cri._columnSeriesRendererInfos != null) { cri.seriesRendererInfos = cri._columnSeriesRendererInfos; //TODO Check for Clustered- or StackedPlotAreaRenderer renderer = new ColumnClusteredPlotAreaRenderer(_rendererParms); renderer.Draw(); } if (cri._lineSeriesRendererInfos != null) { cri.seriesRendererInfos = cri._lineSeriesRendererInfos; renderer = new LinePlotAreaRenderer(_rendererParms); renderer.Draw(); } // Draw data labels. if (cri._columnSeriesRendererInfos != null) { cri.seriesRendererInfos = cri._columnSeriesRendererInfos; DataLabelRenderer dlr = new ColumnDataLabelRenderer(_rendererParms); dlr.Draw(); } // Draw axes. cri.seriesRendererInfos = cri._commonSeriesRendererInfos; if (cri.xAxisRendererInfo._axis != null) { AxisRenderer xar = new HorizontalXAxisRenderer(_rendererParms); xar.Draw(); } if (cri.yAxisRendererInfo._axis != null) { AxisRenderer yar = new VerticalYAxisRenderer(_rendererParms); yar.Draw(); } }
/// <summary> /// Layouts and calculates the space used by the combination chart. /// </summary> internal override void Format() { CombinationRendererInfo cri = (CombinationRendererInfo)_rendererParms.RendererInfo; cri.seriesRendererInfos = cri._commonSeriesRendererInfos; LegendRenderer lr = new ColumnLikeLegendRenderer(_rendererParms); lr.Format(); // axes AxisRenderer xar = new HorizontalXAxisRenderer(_rendererParms); xar.Format(); AxisRenderer yar = new VerticalYAxisRenderer(_rendererParms); yar.Format(); // Calculate rects and positions. XRect chartRect = LayoutLegend(); cri.xAxisRendererInfo.X = chartRect.Left + cri.yAxisRendererInfo.Width; cri.xAxisRendererInfo.Y = chartRect.Bottom - cri.xAxisRendererInfo.Height; cri.xAxisRendererInfo.Width = chartRect.Width - cri.yAxisRendererInfo.Width; cri.yAxisRendererInfo.X = chartRect.Left; cri.yAxisRendererInfo.Y = chartRect.Top; cri.yAxisRendererInfo.Height = chartRect.Height - cri.xAxisRendererInfo.Height; cri.plotAreaRendererInfo.X = cri.xAxisRendererInfo.X; cri.plotAreaRendererInfo.Y = cri.yAxisRendererInfo.InnerRect.Y; cri.plotAreaRendererInfo.Width = cri.xAxisRendererInfo.Width; cri.plotAreaRendererInfo.Height = cri.yAxisRendererInfo.InnerRect.Height; // Calculated remaining plot area, now it's safe to format. PlotAreaRenderer renderer; if (cri._areaSeriesRendererInfos != null) { cri.seriesRendererInfos = cri._areaSeriesRendererInfos; renderer = new AreaPlotAreaRenderer(_rendererParms); renderer.Format(); } if (cri._columnSeriesRendererInfos != null) { cri.seriesRendererInfos = cri._columnSeriesRendererInfos; //TODO Check for Clustered- or StackedPlotAreaRenderer renderer = new ColumnClusteredPlotAreaRenderer(_rendererParms); renderer.Format(); } if (cri._lineSeriesRendererInfos != null) { cri.seriesRendererInfos = cri._lineSeriesRendererInfos; renderer = new LinePlotAreaRenderer(_rendererParms); renderer.Format(); } // Draw data labels. if (cri._columnSeriesRendererInfos != null) { cri.seriesRendererInfos = cri._columnSeriesRendererInfos; DataLabelRenderer dlr = new ColumnDataLabelRenderer(_rendererParms); dlr.Format(); } }