Browse Source

Remove IExportItemsConverter.cs, move Renderer and Converters to dedicated classes

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/reports@6078 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
pull/1/head
Peter Forstmeier 16 years ago
parent
commit
ad3e80a77c
  1. 147
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/Printing/StandardPrinter.cs
  2. 7
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Interfaces/IExportItemsConverter.cs
  3. 27
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Printing/AbstractDataRenderer.cs
  4. 31
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Printing/AbstractRenderer.cs
  5. 31
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/old_Exporter/BasePager.cs
  6. 22
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/old_Exporter/Converters/BaseConverter.cs
  7. 6
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/old_Exporter/Converters/ConverterFactory.cs
  8. 5
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/old_Exporter/Converters/RowConverter.cs
  9. 6
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/old_Exporter/Converters/TableConverter.cs
  10. 9
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/old_Exporter/DataPageBuilder.cs
  11. 65
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/old_Exporter/ExportItemsConverter.cs
  12. 2
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/ICSharpCode.Reports.Core.Test.csproj
  13. 142
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/old_Exporter/ExportItemsConverterFixture.cs

147
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/Printing/StandardPrinter.cs

@ -10,6 +10,7 @@ using System; @@ -10,6 +10,7 @@ using System;
using System.Drawing;
using ICSharpCode.Reports.Core.Interfaces;
using ICSharpCode.Reports.Core.old_Exporter;
using ICSharpCode.Reports.Expressions.ReportingLanguage;
namespace ICSharpCode.Reports.Core.BaseClasses.Printing
{
@ -63,6 +64,152 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing @@ -63,6 +64,152 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing
border.DrawBorder(graphics,decorator.DisplayRectangle);
}
}
#region Render/Convert SimpleItem
/// <summary>
/// Convert a single item, Location is calculated as follows
/// </summary>
/// <param name="offset"> only Y value is used, gives the offset to Items location.Y </param>
/// <param name="item">Item to convert</param>
/// <returns></returns>
public static BaseExportColumn ConvertLineItem (BaseReportItem item,Point offset)
{
if (item == null) {
throw new ArgumentNullException("item");
}
IExportColumnBuilder columnBuilder = item as IExportColumnBuilder;
BaseExportColumn lineItem = null;
if (columnBuilder != null) {
lineItem = columnBuilder.CreateExportColumn();
lineItem.StyleDecorator.Location = new Point(offset.X + lineItem.StyleDecorator.Location.X,
lineItem.StyleDecorator.Location.Y + offset.Y);
lineItem.StyleDecorator.DisplayRectangle = new Rectangle(lineItem.StyleDecorator.Location,
lineItem.StyleDecorator.Size);
}
return lineItem;
}
public static void RenderLineItem (BaseReportItem item, Point offset,IExpressionEvaluatorFacade evaluator,ReportPageEventArgs rpea)
{
Point saveLocation = new Point (item.Location.X,item.Location.Y);
item.Location = new Point(offset.X + item.Location.X,
offset.Y + item.Location.Y);
BaseTextItem textItem = item as BaseTextItem;
if (textItem != null) {
string str = textItem.Text;
textItem.Text = evaluator.Evaluate(textItem.Text);
textItem.Render(rpea);
textItem.Text = str;
} else {
item.Render (rpea);
}
item.Location = saveLocation;
}
#endregion
#region Render Collection
public static Rectangle RenderPlainCollection (BaseReportItem parent,ReportItemCollection items,IExpressionEvaluatorFacade evaluator, Point offset,ReportPageEventArgs rpea)
{
Rectangle retVal = Rectangle.Empty;
Size size = Size.Empty;
if (items.Count > 0) {
foreach (BaseReportItem child in items) {
child.Parent = parent;
StandardPrinter.RenderLineItem (child,offset,evaluator,rpea);
}
retVal = new Rectangle(offset,size);
return retVal;
} else {
retVal = new Rectangle(offset.X,offset.Y,0,0);
return retVal;
}
}
public static ExporterCollection ConvertPlainCollection (BaseReportItem parent,ReportItemCollection items,Point offset)
{
if (items == null) {
throw new ArgumentNullException("items");
}
ExporterCollection col = new ExporterCollection();
if (items.Count > 0) {
foreach(BaseReportItem item in items)
{
col.Add(StandardPrinter.ConvertLineItem(item,offset));
}
}
return col;
}
#endregion
#region Container
public static Rectangle RenderContainer (ISimpleContainer simpleContainer,IExpressionEvaluatorFacade evaluator,Point offset,ReportPageEventArgs rpea)
{
BaseReportItem item = simpleContainer as BaseReportItem;
Rectangle retVal = new Rectangle(offset,item.Size);
Point loc = item.Location;
item.Location = new Point (offset.X + item.Location.X,offset.Y + item.Location.Y);
item.Render(rpea);
if (simpleContainer.Items != null) {
retVal = StandardPrinter.RenderPlainCollection(item,simpleContainer.Items,evaluator,offset,rpea);
}
retVal = new Rectangle (retVal.X,retVal.Y,
retVal.X + item.Size.Width,
item.Size.Height + 3 * GlobalValues.GapBetweenContainer);
item.Location = loc;
return retVal;
}
public static ExportContainer ConvertToContainer (BaseReportItem parent,ISimpleContainer item,Point offset)
{
if (item == null) {
throw new ArgumentNullException("item");
}
IExportColumnBuilder lineBuilder = item as IExportColumnBuilder;
if (lineBuilder != null) {
ExportContainer lineItem = (ExportContainer)lineBuilder.CreateExportColumn();
lineItem.StyleDecorator.Location = new Point (offset.X + lineItem.StyleDecorator.Location.X,
offset.Y);
lineItem.StyleDecorator.DisplayRectangle = new Rectangle(lineItem.StyleDecorator.Location,
lineItem.StyleDecorator.Size);
return lineItem;
}
return null;
}
#endregion
}
}

7
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Interfaces/IExportItemsConverter.cs

@ -18,9 +18,10 @@ namespace ICSharpCode.Reports.Core.old_Exporter @@ -18,9 +18,10 @@ namespace ICSharpCode.Reports.Core.old_Exporter
public interface IExportItemsConverter
{
ExporterCollection ConvertSimpleItems (BaseReportItem parent,Point offset,ReportItemCollection items);
//ExporterCollection ConvertSimpleItems (BaseReportItem parent,ReportItemCollection items,Point offset);
ExportContainer ConvertToContainer (BaseReportItem parent,Point offset,ISimpleContainer item);
Rectangle ParentRectangle {get;set;}
//ExportContainer ConvertToContainer (BaseReportItem parent,ISimpleContainer item,Point offset);
// Rectangle ParentRectangle {get;set;}
}
}

27
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Printing/AbstractDataRenderer.cs

@ -11,6 +11,7 @@ using System.Drawing.Printing; @@ -11,6 +11,7 @@ using System.Drawing.Printing;
using ICSharpCode.Reports.Core.BaseClasses.Printing;
using ICSharpCode.Reports.Core.Interfaces;
using ICSharpCode.Reports.Expressions.ReportingLanguage;
namespace ICSharpCode.Reports.Core
{
@ -81,7 +82,7 @@ namespace ICSharpCode.Reports.Core @@ -81,7 +82,7 @@ namespace ICSharpCode.Reports.Core
if (PrintHelper.IsTextOnlyRow(row) )
{
Rectangle r = this.RenderContainer(row,currentPosition,rpea);
Rectangle r = StandardPrinter.RenderContainer(row,Evaluator,currentPosition,rpea);
currentPosition = ConvertRectangleToCurentPosition (r);
currentPosition = new Point(parent.Location.X + row.Location.X,currentPosition.Y);
@ -101,7 +102,7 @@ namespace ICSharpCode.Reports.Core @@ -101,7 +102,7 @@ namespace ICSharpCode.Reports.Core
}
this.dataNavigator.Fill(row.Items);
Rectangle r = this.RenderContainer(row,currentPosition,rpea);
Rectangle r = StandardPrinter.RenderContainer(row,Evaluator,currentPosition,rpea);
currentPosition = ConvertRectangleToCurentPosition (r);
currentPosition = new Point(parent.Location.X + row.Location.X,currentPosition.Y);
@ -177,7 +178,7 @@ namespace ICSharpCode.Reports.Core @@ -177,7 +178,7 @@ namespace ICSharpCode.Reports.Core
ISimpleContainer con = item as ISimpleContainer;
if (con != null) {
Rectangle r = RenderContainer(container,offset,rpea);
Rectangle r = StandardPrinter.RenderContainer(container,Evaluator,offset,rpea);
currentPosition = base.ConvertRectangleToCurentPosition(r);
}
@ -192,7 +193,7 @@ namespace ICSharpCode.Reports.Core @@ -192,7 +193,7 @@ namespace ICSharpCode.Reports.Core
ISimpleContainer cont = item as ISimpleContainer;
Rectangle r = this.RenderContainer(cont,currentPosition,rpea);
Rectangle r = StandardPrinter.RenderContainer(cont,Evaluator,currentPosition,rpea);
currentPosition = ConvertRectangleToCurentPosition (r);
item.Location = saveLocation;
@ -217,25 +218,7 @@ namespace ICSharpCode.Reports.Core @@ -217,25 +218,7 @@ namespace ICSharpCode.Reports.Core
}
private Rectangle RenderContainer (ISimpleContainer simpleContainer,Point offset,ReportPageEventArgs rpea)
{
BaseReportItem item = simpleContainer as BaseReportItem;
Rectangle retVal = new Rectangle(offset,item.Size);
Point loc = item.Location;
item.Location = new Point (offset.X + item.Location.X,offset.Y + item.Location.Y);
item.Render(rpea);
if (simpleContainer.Items != null) {
retVal = base.RenderPlainCollection(item,simpleContainer.Items,offset,rpea);
}
retVal = new Rectangle (retVal.X,retVal.Y,
retVal.X + item.Size.Width,
item.Size.Height + 3 * GlobalValues.GapBetweenContainer);
item.Location = loc;
return retVal;
}

31
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Printing/AbstractRenderer.cs

@ -36,7 +36,6 @@ namespace ICSharpCode.Reports.Core @@ -36,7 +36,6 @@ namespace ICSharpCode.Reports.Core
private int currentPageNumber;
//private IExpressionEvaluatorFacade expressionFassade;
private ILayouter layout;
private IReportModel reportModel;
@ -232,9 +231,7 @@ namespace ICSharpCode.Reports.Core @@ -232,9 +231,7 @@ namespace ICSharpCode.Reports.Core
}
// currentPosition = RenderPlainCollection (this.CurrentSection,this.CurrentSection.Items,new Point(this.CurrentSection.Location.X,
// this.CurrentSection.SectionOffset),rpea);
Rectangle r = RenderPlainCollection (this.CurrentSection,this.CurrentSection.Items,new Point(this.CurrentSection.Location.X,
Rectangle r = StandardPrinter.RenderPlainCollection (this.CurrentSection,this.CurrentSection.Items,Evaluator,new Point(this.CurrentSection.Location.X,
this.CurrentSection.SectionOffset),rpea);
currentPosition = ConvertRectangleToCurentPosition(r);
@ -249,8 +246,8 @@ namespace ICSharpCode.Reports.Core @@ -249,8 +246,8 @@ namespace ICSharpCode.Reports.Core
return currentPosition;
}
protected Rectangle RenderPlainCollection (BaseReportItem parent,ReportItemCollection items, Point offset,ReportPageEventArgs rpea)
/*
protected static Rectangle RenderPlainCollection (BaseReportItem parent,ReportItemCollection items,IExpressionEvaluatorFacade evaluator, Point offset,ReportPageEventArgs rpea)
{
Rectangle retVal = Rectangle.Empty;
Size size = Size.Empty;
@ -258,26 +255,9 @@ namespace ICSharpCode.Reports.Core @@ -258,26 +255,9 @@ namespace ICSharpCode.Reports.Core
if (items.Count > 0) {
foreach (BaseReportItem child in items) {
child.Parent = parent;
Point saveLocation = new Point (child.Location.X,child.Location.Y);
child.Location = new Point(offset.X + child.Location.X,
offset.Y + child.Location.Y);
BaseTextItem textItem = child as BaseTextItem;
if (textItem != null) {
string str = textItem.Text;
textItem.Text = Evaluator.Evaluate(textItem.Text);
textItem.Render(rpea);
textItem.Text = str;
} else {
child.Render (rpea);
}
size = child.Size;
child.Location = saveLocation;
StandardPrinter.RenderLineItem (child,offset,evaluator,rpea);
}
retVal = new Rectangle(offset,size);
return retVal;
@ -286,6 +266,7 @@ namespace ICSharpCode.Reports.Core @@ -286,6 +266,7 @@ namespace ICSharpCode.Reports.Core
return retVal;
}
}
*/
protected Point ConvertRectangleToCurentPosition (Rectangle r)

31
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/old_Exporter/BasePager.cs

@ -26,7 +26,7 @@ namespace ICSharpCode.Reports.Core.old_Exporter @@ -26,7 +26,7 @@ namespace ICSharpCode.Reports.Core.old_Exporter
private Graphics graphics;
private bool pageFull;
private readonly object pageLock = new object();
private IExportItemsConverter exportItemsConverter;
// private IExportItemsConverter exportItemsConverter;
private ILayouter layouter;
public event EventHandler<PageCreatedEventArgs> PageCreated;
@ -45,7 +45,7 @@ namespace ICSharpCode.Reports.Core.old_Exporter @@ -45,7 +45,7 @@ namespace ICSharpCode.Reports.Core.old_Exporter
this.reportModel = reportModel;
this.layouter = layouter;
this.graphics = CreateGraphicObject.FromSize(this.reportModel.ReportSettings.PageSize);
this.exportItemsConverter = new ExportItemsConverter();
// this.exportItemsConverter = new ExportItemsConverter();
}
#endregion
@ -89,6 +89,7 @@ namespace ICSharpCode.Reports.Core.old_Exporter @@ -89,6 +89,7 @@ namespace ICSharpCode.Reports.Core.old_Exporter
#endregion
#region Converters
@ -113,17 +114,17 @@ namespace ICSharpCode.Reports.Core.old_Exporter @@ -113,17 +114,17 @@ namespace ICSharpCode.Reports.Core.old_Exporter
ISimpleContainer container = item as ISimpleContainer;
if (container != null) {
ExportContainer exportContainer = this.exportItemsConverter.ConvertToContainer(section,offset,container);
ExportContainer exportContainer = StandardPrinter.ConvertToContainer(section,container,offset);
StandardPrinter.AdjustBackColor (container);
ExporterCollection clist = this.exportItemsConverter.ConvertSimpleItems(item,offset,container.Items);
ExporterCollection clist = StandardPrinter.ConvertPlainCollection(item,container.Items,offset);
exportContainer.Items.AddRange(clist);
list.Add(exportContainer);
} else {
this.exportItemsConverter.ParentRectangle = new Rectangle (section.Location,section.Size);
// this.exportItemsConverter.ParentRectangle = new Rectangle (section.Location,section.Size);
Rectangle desiredRectangle = layouter.Layout(this.graphics,section);
Rectangle sectionRectangle = new Rectangle(0,0,section.Size.Width,section.Size.Height);
@ -132,7 +133,7 @@ namespace ICSharpCode.Reports.Core.old_Exporter @@ -132,7 +133,7 @@ namespace ICSharpCode.Reports.Core.old_Exporter
section.Size = new Size(section.Size.Width,desiredRectangle.Size.Height);
}
list = this.exportItemsConverter.ConvertSimpleItems(section,offset,section.Items);
list = StandardPrinter.ConvertPlainCollection(section,section.Items,offset);
}
}
}
@ -151,14 +152,6 @@ namespace ICSharpCode.Reports.Core.old_Exporter @@ -151,14 +152,6 @@ namespace ICSharpCode.Reports.Core.old_Exporter
}
// private static void AdjustBackColor (ISimpleContainer container)
// {
// BaseReportItem parent = container as BaseReportItem;
// foreach (BaseReportItem item in container.Items)
// {
// item.BackColor = parent.BackColor;
// }
// }
#endregion
@ -315,11 +308,11 @@ namespace ICSharpCode.Reports.Core.old_Exporter @@ -315,11 +308,11 @@ namespace ICSharpCode.Reports.Core.old_Exporter
}
protected IExportItemsConverter ExportItemsConverter
{
get { return exportItemsConverter; }
set { exportItemsConverter = value; }
}
// protected IExportItemsConverter ExportItemsConverter
// {
// get { return exportItemsConverter; }
// set { exportItemsConverter = value; }
// }
#endregion
}

22
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/old_Exporter/Converters/BaseConverter.cs

@ -27,7 +27,7 @@ namespace ICSharpCode.Reports.Core.old_Exporter @@ -27,7 +27,7 @@ namespace ICSharpCode.Reports.Core.old_Exporter
private ExporterPage singlePage;
private SectionBounds sectionBounds;
private Rectangle parentRectangle;
private IExportItemsConverter exportItemsConverter;
// private IExportItemsConverter exportItemsConverter;
private ILayouter layouter;
private Size saveSize;
private IExpressionEvaluatorFacade evaluator;
@ -36,8 +36,11 @@ namespace ICSharpCode.Reports.Core.old_Exporter @@ -36,8 +36,11 @@ namespace ICSharpCode.Reports.Core.old_Exporter
public event EventHandler<SectionRenderEventArgs> SectionRendering;
// public BaseConverter(IDataNavigator dataNavigator,ExporterPage singlePage,
// IExportItemsConverter exportItemsConverter,ILayouter layouter)
public BaseConverter(IDataNavigator dataNavigator,ExporterPage singlePage,
IExportItemsConverter exportItemsConverter,ILayouter layouter)
ILayouter layouter)
{
if (dataNavigator == null) {
throw new ArgumentNullException("dataNavigator");
@ -45,16 +48,16 @@ namespace ICSharpCode.Reports.Core.old_Exporter @@ -45,16 +48,16 @@ namespace ICSharpCode.Reports.Core.old_Exporter
if (singlePage == null) {
throw new ArgumentNullException("singlePage");
}
if (exportItemsConverter == null) {
throw new ArgumentNullException("exportItemsConverter");
}
// if (exportItemsConverter == null) {
// throw new ArgumentNullException("exportItemsConverter");
// }
if (layouter == null) {
throw new ArgumentNullException("layouter");
}
this.singlePage = singlePage;
this.dataNavigator = dataNavigator;
this.sectionBounds = this.singlePage.SectionBounds;
this.exportItemsConverter = exportItemsConverter;
// this.exportItemsConverter = exportItemsConverter;
this.layouter = layouter;
this.evaluator = PrintHelper.SetupEvaluator(this.singlePage,this.dataNavigator);
}
@ -84,13 +87,13 @@ namespace ICSharpCode.Reports.Core.old_Exporter @@ -84,13 +87,13 @@ namespace ICSharpCode.Reports.Core.old_Exporter
if (exportLineBuilder != null) {
ExportContainer lineItem = this.exportItemsConverter.ConvertToContainer(row.Parent,offset,row);
ExportContainer lineItem = StandardPrinter.ConvertToContainer(row.Parent,row,offset);
BaseReportItem baseReportItem = row as BaseReportItem;
this.exportItemsConverter.ParentRectangle = new Rectangle(baseReportItem.Location,baseReportItem.Size);
// this.exportItemsConverter.ParentRectangle = new Rectangle(baseReportItem.Location,baseReportItem.Size);
StandardPrinter.AdjustBackColor(row);
ExporterCollection list = this.exportItemsConverter.ConvertSimpleItems(row as BaseReportItem,offset,row.Items);
ExporterCollection list = StandardPrinter.ConvertPlainCollection(row as BaseReportItem,row.Items,offset);
lineItem.Items.AddRange(list);
@ -178,7 +181,6 @@ namespace ICSharpCode.Reports.Core.old_Exporter @@ -178,7 +181,6 @@ namespace ICSharpCode.Reports.Core.old_Exporter
protected Point BaseConvert(ExporterCollection myList,ISimpleContainer container,int leftPos,Point curPos)
{
container.Location = new Point (leftPos,container.Location.Y);
ExporterCollection ml = this.ConvertItems (container, curPos);
myList.AddRange(ml);
return new Point (leftPos,curPos.Y + container.Size.Height + (3 *GlobalValues.GapBetweenContainer));

6
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/old_Exporter/Converters/ConverterFactory.cs

@ -21,16 +21,16 @@ namespace ICSharpCode.Reports.Core.old_Exporter @@ -21,16 +21,16 @@ namespace ICSharpCode.Reports.Core.old_Exporter
public static IBaseConverter CreateConverter (BaseReportItem itemToConvert,IDataNavigator dataNavigator,
ExporterPage singlePage,IExportItemsConverter exportItemsConverter,ILayouter layouter)
ExporterPage singlePage,ILayouter layouter)
{
Type t = itemToConvert.GetType();
if (t.Equals(typeof(BaseTableItem))) {
return new TableConverter(dataNavigator,singlePage,exportItemsConverter,layouter);
return new TableConverter(dataNavigator,singlePage,layouter);
}
if (t.Equals(typeof(BaseRowItem))) {
return new RowConverter (dataNavigator,singlePage,exportItemsConverter,layouter);
return new RowConverter (dataNavigator,singlePage,layouter);
}
return null;

5
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/old_Exporter/Converters/RowConverter.cs

@ -27,8 +27,8 @@ namespace ICSharpCode.Reports.Core.old_Exporter @@ -27,8 +27,8 @@ namespace ICSharpCode.Reports.Core.old_Exporter
public RowConverter(IDataNavigator dataNavigator,
ExporterPage singlePage,
IExportItemsConverter exportItemsConverter,
ILayouter layouter):base(dataNavigator,singlePage,exportItemsConverter,layouter)
ILayouter layouter):base(dataNavigator,singlePage,layouter)
{
}
@ -77,6 +77,7 @@ namespace ICSharpCode.Reports.Core.old_Exporter @@ -77,6 +77,7 @@ namespace ICSharpCode.Reports.Core.old_Exporter
base.LayoutRow(simpleContainer);
base.FireSectionRendering(section);
currentPosition = base.BaseConvert(mylist,simpleContainer,defaultLeftPos,currentPosition);
EvaluateRow(mylist);

6
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/old_Exporter/Converters/TableConverter.cs

@ -23,8 +23,8 @@ namespace ICSharpCode.Reports.Core.old_Exporter @@ -23,8 +23,8 @@ namespace ICSharpCode.Reports.Core.old_Exporter
public TableConverter(IDataNavigator dataNavigator,
ExporterPage singlePage,
IExportItemsConverter exportItemsConverter,
ILayouter layouter ):base(dataNavigator,singlePage,exportItemsConverter,layouter)
ILayouter layouter ):base(dataNavigator,singlePage,layouter)
{
}
@ -59,7 +59,7 @@ namespace ICSharpCode.Reports.Core.old_Exporter @@ -59,7 +59,7 @@ namespace ICSharpCode.Reports.Core.old_Exporter
foreach (ISimpleContainer simpleContainer in this.baseTable.Items)
{
if (simpleContainer.Items.Count > 0) {
simpleContainer.Location = new Point (simpleContainer.Location.X + defaultLeftPos,simpleContainer.Location.Y);
simpleContainer.Location = new Point (simpleContainer.Location.X,simpleContainer.Location.Y);
simpleContainer.Parent = (BaseReportItem)this.baseTable;
base.SaveSize( new Size (simpleContainer.Size.Width,simpleContainer.Size.Height));
// Header/FooterRow

9
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/old_Exporter/DataPageBuilder.cs

@ -130,9 +130,14 @@ namespace ICSharpCode.Reports.Core.old_Exporter @@ -130,9 +130,14 @@ namespace ICSharpCode.Reports.Core.old_Exporter
foreach (BaseReportItem item in section.Items)
{
IBaseConverter baseConverter = ConverterFactory.CreateConverter(item,dataNavigator,
this.SinglePage,this.ExportItemsConverter,
// IBaseConverter baseConverter = ConverterFactory.CreateConverter(item,dataNavigator,
// this.SinglePage,this.ExportItemsConverter,
// base.Layouter);
IBaseConverter baseConverter = ConverterFactory.CreateConverter(item,dataNavigator,
this.SinglePage,
base.Layouter);
if (baseConverter != null) {

65
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/old_Exporter/ExportItemsConverter.cs

@ -7,11 +7,12 @@ @@ -7,11 +7,12 @@
using System;
using System.Drawing;
using ICSharpCode.Reports.Core.BaseClasses.Printing;
using ICSharpCode.Reports.Core.Interfaces;
namespace ICSharpCode.Reports.Core.old_Exporter
{
/*
public class ExportItemsConverter:IExportItemsConverter
{
@ -20,58 +21,7 @@ namespace ICSharpCode.Reports.Core.old_Exporter @@ -20,58 +21,7 @@ namespace ICSharpCode.Reports.Core.old_Exporter
}
public ExporterCollection ConvertSimpleItems (BaseReportItem parent,Point offset,ReportItemCollection items)
{
if (items == null) {
throw new ArgumentNullException("items");
}
ExporterCollection col = new ExporterCollection();
if (items.Count > 0) {
foreach(BaseReportItem item in items)
{
col.Add(ConvertToLineItem(parent,item,offset));
}
}
return col;
}
/// <summary>
/// Convert a single item, Location is calculated as follows
/// (X = ParentRectangle.X + Item.X Y = offset.Y + Item.Y)
/// </summary>
/// <param name="offset"> only Y value is used, gives the offset to Items location.Y </param>
/// <param name="item">Item to convert</param>
/// <returns></returns>
// protected Rectangle RenderPlainCollection (BaseReportItem parent,ReportItemCollection items, Point offset,ReportPageEventArgs rpea)
private static BaseExportColumn ConvertToLineItem (BaseReportItem parent,BaseReportItem item,Point offset)
{
if (item == null) {
throw new ArgumentNullException("item");
}
IExportColumnBuilder columnBuilder = item as IExportColumnBuilder;
BaseExportColumn lineItem = null;
if (columnBuilder != null) {
lineItem = columnBuilder.CreateExportColumn();
lineItem.StyleDecorator.Location = new Point(parent.Location.X + lineItem.StyleDecorator.Location.X,
lineItem.StyleDecorator.Location.Y + offset.Y);
lineItem.StyleDecorator.DisplayRectangle = new Rectangle(lineItem.StyleDecorator.Location,
lineItem.StyleDecorator.Size);
}
return lineItem;
}
public ExportContainer ConvertToContainer (BaseReportItem parent,Point offset,ISimpleContainer item)
public static ExportContainer ConvertToContainer (BaseReportItem parent,ISimpleContainer item,Point offset)
{
if (item == null) {
throw new ArgumentNullException("item");
@ -80,9 +30,10 @@ namespace ICSharpCode.Reports.Core.old_Exporter @@ -80,9 +30,10 @@ namespace ICSharpCode.Reports.Core.old_Exporter
if (lineBuilder != null) {
ExportContainer lineItem = (ExportContainer)lineBuilder.CreateExportColumn();
lineItem.StyleDecorator.Location = new Point (parent.Location.X + lineItem.StyleDecorator.Location.X,
lineItem.StyleDecorator.Location = new Point (offset.X + lineItem.StyleDecorator.Location.X,
offset.Y);
lineItem.StyleDecorator.DisplayRectangle = new Rectangle(lineItem.StyleDecorator.Location,
lineItem.StyleDecorator.Size);
@ -91,7 +42,7 @@ namespace ICSharpCode.Reports.Core.old_Exporter @@ -91,7 +42,7 @@ namespace ICSharpCode.Reports.Core.old_Exporter
return null;
}
public Rectangle ParentRectangle {get;set;}
//public Rectangle ParentRectangle {get;set;}
}
*/
}

2
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/ICSharpCode.Reports.Core.Test.csproj

@ -80,7 +80,6 @@ @@ -80,7 +80,6 @@
<Compile Include="Exporter\Converter\ItemsConverterFixture.cs" />
<Compile Include="Exporter\DataPageBuilderFixture.cs" />
<Compile Include="Exporter\DataListBuilderFixture.cs" />
<Compile Include="old_Exporter\ExportItemsConverterFixture.cs" />
<Compile Include="Printing\SectionBoundFixture.cs" />
<Compile Include="Printing\Shapes\BaseLineFixture.cs" />
<Compile Include="Printing\Shapes\EllipseShapeFixture.cs" />
@ -128,7 +127,6 @@ @@ -128,7 +127,6 @@
<Folder Include="Collections" />
<Folder Include="BaseClasses" />
<Folder Include="Exporter" />
<Folder Include="old_Exporter" />
<Folder Include="Printing\Shapes" />
<Folder Include="TestHelpers" />
<Folder Include="Printing" />

142
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/old_Exporter/ExportItemsConverterFixture.cs

@ -1,142 +0,0 @@ @@ -1,142 +0,0 @@
/*
* Created by SharpDevelop.
* User: Peter Forstmeier
* Date: 06.05.2010
* Time: 19:54
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Drawing;
using ICSharpCode.Reports.Core.old_Exporter;
using NUnit.Framework;
using ICSharpCode.Reports.Core.Test.TestHelpers;
namespace ICSharpCode.Reports.Core.Test.old_Exporter
{
[TestFixture]
public class ExportItemsConverterFixture:ConcernOf<ExportItemsConverter>
{
[Test]
public void CanCreateExportItemsConverter()
{
IExportItemsConverter sut = new ExportItemsConverter();
Assert.IsNotNull(sut);
}
// [Test]
// [ExpectedException(typeof(ArgumentNullException))]
// public void ConvertSimpleItems_Throw_On_Null_Items()
// {
// IExportItemsConverter sut = new ExportItemsConverter();
// ExporterCollection ec = sut.ConvertSimpleItems(new Point (10,10),null);
//
// }
//
// [Test]
// public void Convert_SimpleItems_Should_Return_Valid_Collection()
// {
// ReportItemCollection ri = new ReportItemCollection();
// BaseReportItem r = new BaseTextItem(){
// Location = new Point (10,10),
// Size = new Size(20,100)
// };
// ri.Add(r);
// IExportItemsConverter sut = new ExportItemsConverter();
//
// ExporterCollection ec = sut.ConvertSimpleItems(new Point (10,10),ri);
//
// Assert.IsNotNull(ec);
// Assert.AreEqual(1,ec.Count);
// }
//
/*
[Test]
public void Convert_SimpleItems_Should_Calculate_Correct_Locations ()
{
ReportItemCollection ri = new ReportItemCollection();
Point itemLocation = new Point (10,10);
BaseReportItem r = new BaseTextItem(){
Location = itemLocation,
Size = new Size(20,100)
};
ri.Add(r);
Point offset = new Point(20,20);
Rectangle parentRectangle = new Rectangle (50,50,700,50);
Sut.ParentRectangle = parentRectangle;
ExporterCollection ec = Sut.ConvertSimpleItems(offset,ri);
BaseExportColumn be = ec[0];
// this.ParentRectangle.Location.X + lineItem.StyleDecorator.Location.X,
// lineItem.StyleDecorator.Location.Y + offset.Y);
Point resultLocation = new Point (parentRectangle.Location.X + itemLocation.X,itemLocation.Y + offset.Y);
Assert.AreEqual(resultLocation,be.StyleDecorator.Location);
}
*/
/*
[Test]
public void Convert_Container_Should_Return_ExportContainer ()
{
ReportItemCollection ri = new ReportItemCollection();
Point itemLocation = new Point (10,10);
BaseRowItem row = new BaseRowItem() {
Location = itemLocation
};
Point offset = new Point(20,20);
Rectangle parentRectangle = new Rectangle (50,50,700,50);
Sut.ParentRectangle = parentRectangle;
var exportContainer = Sut.ConvertToContainer(offset,row);
Assert.IsAssignableFrom(typeof(ExportContainer),exportContainer);
}
*/
/*
[Test]
public void Convert_Container_Should_Calculate_Correct_Locations()
{
ReportItemCollection ri = new ReportItemCollection();
Point itemLocation = new Point (10,10);
BaseRowItem row = new BaseRowItem() {
Location = itemLocation
};
Point offset = new Point(20,20);
Rectangle parentRectangle = new Rectangle (50,50,700,50);
Sut.ParentRectangle = parentRectangle;
var exportContainer = Sut.ConvertToContainer(offset,row);
Point containerLoction = new Point (itemLocation.X, offset.Y);
Assert.AreEqual(containerLoction,exportContainer.StyleDecorator.Location);
}
*/
public override void Setup()
{
Sut = new ExportItemsConverter();
}
}
}
Loading…
Cancel
Save