Browse Source
git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/reports@6130 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61pull/1/head
74 changed files with 75 additions and 1119 deletions
@ -1,195 +0,0 @@ |
|||||||
/* |
|
||||||
* Created by SharpDevelop. |
|
||||||
* User: Peter Forstmeier |
|
||||||
* Date: 24.05.2010 |
|
||||||
* Time: 19:53 |
|
||||||
* |
|
||||||
* To change this template use Tools | Options | Coding | Edit Standard Headers. |
|
||||||
*/ |
|
||||||
using System; |
|
||||||
using System.Collections.Generic; |
|
||||||
using System.Collections.ObjectModel; |
|
||||||
using System.Drawing; |
|
||||||
using System.Linq; |
|
||||||
|
|
||||||
using ICSharpCode.Reports.Core.BaseClasses.Printing; |
|
||||||
using ICSharpCode.Reports.Core.Exporter.Converter; |
|
||||||
using ICSharpCode.Reports.Core.Interfaces; |
|
||||||
|
|
||||||
namespace ICSharpCode.Reports.Core.Exporter |
|
||||||
{ |
|
||||||
/// <summary>
|
|
||||||
/// Description of AbstractExportListBuilder.
|
|
||||||
/// </summary>
|
|
||||||
public class AbstractExportListBuilder |
|
||||||
{ |
|
||||||
|
|
||||||
private readonly object pageLock = new object(); |
|
||||||
private readonly IItemsConverter itemsConverter; |
|
||||||
|
|
||||||
private PageDescriptions pages; |
|
||||||
|
|
||||||
public event EventHandler<NewPageCreatedEventArgs> PageCreated; |
|
||||||
public event EventHandler<SectionRenderEventArgs> SectionRendering; |
|
||||||
|
|
||||||
|
|
||||||
public AbstractExportListBuilder (IReportModel reportModel,IItemsConverter itemsConverter) |
|
||||||
{ |
|
||||||
this.ReportModel = reportModel; |
|
||||||
this.itemsConverter = itemsConverter; |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
public virtual void WritePages () |
|
||||||
{ |
|
||||||
|
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
protected virtual Point BuildReportHeader (Point reportHeaderStart) |
|
||||||
{ |
|
||||||
System.Console.WriteLine("BuildReportHeader at {0} with {1} items ",reportHeaderStart,ReportModel.ReportHeader.Items.Count); |
|
||||||
|
|
||||||
BaseSection section = ReportModel.ReportHeader; |
|
||||||
Size size = section.Size; |
|
||||||
Point retval = Point.Empty; |
|
||||||
|
|
||||||
if ((!CanGrow(section.Items)) | (!CanShrink(section.Items))) { |
|
||||||
ReportItemCollection result = itemsConverter.Convert(section,section.Items); |
|
||||||
this.SinglePage.Items.AddRange(result); |
|
||||||
|
|
||||||
retval = itemsConverter.LocationAfterConvert; |
|
||||||
} else { |
|
||||||
retval = new Point (reportHeaderStart.X , 150); |
|
||||||
} |
|
||||||
|
|
||||||
return retval; |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
private bool CanGrow (IEnumerable<BaseReportItem> collection) |
|
||||||
{ |
|
||||||
IEnumerable<BaseReportItem> canGrowShrinkCollection = from bt in collection where bt.CanGrow == true select bt; |
|
||||||
return (canGrowShrinkCollection.Count() > 0); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
private bool CanShrink (IEnumerable<BaseReportItem> collection) |
|
||||||
{ |
|
||||||
IEnumerable<BaseReportItem> canGrowShrinkCollection = from bt in collection where bt.CanShrink == true select bt; |
|
||||||
return (canGrowShrinkCollection.Count() > 0); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
protected virtual void BuildPageHeader () |
|
||||||
{ |
|
||||||
System.Diagnostics.Trace.WriteLine(" BuildPageHeader"); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
protected virtual void BuildDetailInternal (BaseSection section) |
|
||||||
{ |
|
||||||
System.Diagnostics.Trace.WriteLine("BuildDetailInterna "); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
protected virtual void BuildPageFooter () |
|
||||||
{ |
|
||||||
System.Diagnostics.Trace.WriteLine("BuildPageFooter "); |
|
||||||
} |
|
||||||
|
|
||||||
protected virtual void BuildReportFooter () |
|
||||||
{ |
|
||||||
System.Diagnostics.Trace.WriteLine("BuildReportFooter "); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
protected virtual void FinishRendering () |
|
||||||
{ |
|
||||||
|
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
protected virtual void CreateNewPage () |
|
||||||
{ |
|
||||||
this.SinglePage = this.InitNewPage(); |
|
||||||
|
|
||||||
|
|
||||||
PrintHelper.InitPage(this.SinglePage,this.ReportModel.ReportSettings); |
|
||||||
this.SinglePage.CalculatePageBounds(this.ReportModel); |
|
||||||
|
|
||||||
// this.pageFull = false;
|
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private PageDescription InitNewPage () |
|
||||||
{ |
|
||||||
SectionBounds sectionBounds = new SectionBounds (ReportModel.ReportSettings,(this.Pages.Count == 0)); |
|
||||||
return new PageDescription(sectionBounds,Pages.Count + 1); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
protected void AddPage (PageDescription page) |
|
||||||
{ |
|
||||||
if (page == null) { |
|
||||||
throw new ArgumentNullException("page"); |
|
||||||
} |
|
||||||
// lock (addLock) {
|
|
||||||
Pages.Add(page); |
|
||||||
|
|
||||||
// }
|
|
||||||
FirePageCreated(page); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
#region Event's
|
|
||||||
|
|
||||||
|
|
||||||
protected void FirePageCreated(PageDescription page) |
|
||||||
{ |
|
||||||
EventHelper.Raise<NewPageCreatedEventArgs>(PageCreated,this, |
|
||||||
new NewPageCreatedEventArgs(page)); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
protected void FireSectionRenderEvent (BaseSection section,int currentRow) |
|
||||||
{ |
|
||||||
SectionRenderEventArgs ea = |
|
||||||
new SectionRenderEventArgs(section, |
|
||||||
pages.Count, |
|
||||||
currentRow, |
|
||||||
section); |
|
||||||
|
|
||||||
EventHelper.Raise<SectionRenderEventArgs>(SectionRendering,this,ea); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
|
|
||||||
public PageDescription SinglePage {get;private set;} |
|
||||||
|
|
||||||
public IReportModel ReportModel {get;private set;} |
|
||||||
|
|
||||||
public Point PositionAfterRenderSection {get;set;} |
|
||||||
|
|
||||||
|
|
||||||
public PageDescriptions Pages |
|
||||||
{ |
|
||||||
get { |
|
||||||
lock(pageLock) { |
|
||||||
if (this.pages == null) { |
|
||||||
pages = new PageDescriptions(); |
|
||||||
|
|
||||||
} |
|
||||||
return pages; |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
} |
|
||||||
} |
|
||||||
@ -1,92 +0,0 @@ |
|||||||
/* |
|
||||||
* Created by SharpDevelop. |
|
||||||
* User: Peter Forstmeier |
|
||||||
* Date: 14.05.2010 |
|
||||||
* Time: 19:48 |
|
||||||
* |
|
||||||
* To change this template use Tools | Options | Coding | Edit Standard Headers. |
|
||||||
*/ |
|
||||||
using System; |
|
||||||
using System.Drawing; |
|
||||||
using ICSharpCode.Reports.Core.Interfaces; |
|
||||||
|
|
||||||
namespace ICSharpCode.Reports.Core.Exporter |
|
||||||
{ |
|
||||||
/// <summary>
|
|
||||||
/// Description of BaseReportCreator.
|
|
||||||
/// </summary>
|
|
||||||
public class AbstractReportCreator:IReportCreator_2 |
|
||||||
{ |
|
||||||
|
|
||||||
|
|
||||||
public AbstractReportCreator(IReportModel reportModel) |
|
||||||
{ |
|
||||||
if (reportModel == null) { |
|
||||||
throw new ArgumentNullException("ReportModel"); |
|
||||||
} |
|
||||||
|
|
||||||
this.ReportModel = reportModel; |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
#region Convertion
|
|
||||||
|
|
||||||
/* |
|
||||||
protected virtual void BuildReportHeader () |
|
||||||
{ |
|
||||||
} |
|
||||||
|
|
||||||
protected virtual void BuildPageHeader () |
|
||||||
{ |
|
||||||
} |
|
||||||
|
|
||||||
protected virtual void BuildDetailInternal (BaseSection section) |
|
||||||
{ |
|
||||||
} |
|
||||||
|
|
||||||
protected virtual void BuildPageFooter () |
|
||||||
{ |
|
||||||
} |
|
||||||
|
|
||||||
protected virtual void BuildReportFooter () |
|
||||||
{ |
|
||||||
} |
|
||||||
|
|
||||||
*/ |
|
||||||
|
|
||||||
public virtual void BuildExportList () |
|
||||||
{ |
|
||||||
this.Pages.Clear(); |
|
||||||
AbstractExportListBuilder.WritePages(); |
|
||||||
} |
|
||||||
|
|
||||||
protected virtual void AddPage () |
|
||||||
{ |
|
||||||
} |
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
protected IReportModel ReportModel {get; set;} |
|
||||||
|
|
||||||
protected AbstractExportListBuilder AbstractExportListBuilder {get;set;} |
|
||||||
|
|
||||||
#region IReportCreator
|
|
||||||
|
|
||||||
public event EventHandler<ICSharpCode.Reports.Core.old_Exporter.PageCreatedEventArgs> PageCreated; |
|
||||||
|
|
||||||
public event EventHandler<SectionRenderEventArgs> SectionRendering; |
|
||||||
|
|
||||||
|
|
||||||
public virtual PageDescriptions Pages { |
|
||||||
get { |
|
||||||
return AbstractExportListBuilder.Pages; |
|
||||||
|
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
} |
|
||||||
} |
|
||||||
@ -1,73 +0,0 @@ |
|||||||
/* |
|
||||||
* Created by SharpDevelop. |
|
||||||
* User: Peter Forstmeier |
|
||||||
* Date: 21.05.2010 |
|
||||||
* Time: 19:35 |
|
||||||
* |
|
||||||
* To change this template use Tools | Options | Coding | Edit Standard Headers. |
|
||||||
*/ |
|
||||||
using System; |
|
||||||
using System.Collections; |
|
||||||
using System.Collections.Generic; |
|
||||||
using System.Drawing; |
|
||||||
using iTextSharp.text; |
|
||||||
|
|
||||||
namespace ICSharpCode.Reports.Core.Exporter.Converter |
|
||||||
{ |
|
||||||
|
|
||||||
public interface IItemsConverter |
|
||||||
{ |
|
||||||
ReportItemCollection Convert (BaseReportItem parent,IEnumerable<BaseReportItem> itemsSource); |
|
||||||
Point LocationAfterConvert {get;} |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Description of ItemsConverterr.
|
|
||||||
/// </summary>
|
|
||||||
|
|
||||||
|
|
||||||
public class ItemsConverter:IItemsConverter |
|
||||||
{ |
|
||||||
Point locationAfterConvert; |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public ItemsConverter() |
|
||||||
{ |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public ReportItemCollection Convert (BaseReportItem parent,IEnumerable<BaseReportItem> itemsSource) |
|
||||||
{ |
|
||||||
var col = new ReportItemCollection(); |
|
||||||
foreach (BaseReportItem item in itemsSource) { |
|
||||||
item.Location = AdjustLocation (parent,item); |
|
||||||
col.Add(item); |
|
||||||
} |
|
||||||
this.locationAfterConvert = AdjustLocationAfterDraw(parent); |
|
||||||
return col; |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private static Point AdjustLocation (IReportItem parent , IReportItem item) |
|
||||||
{ |
|
||||||
return new Point(parent.Location.X + item.Location.X,parent.Location.Y + item.Location.Y); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
private static Point AdjustLocationAfterDraw (IReportItem parent) |
|
||||||
{ |
|
||||||
return new Point(parent.Location.X + parent.Size.Width,parent.Location.Y + parent.Size.Height); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
public Point LocationAfterConvert { |
|
||||||
get { return locationAfterConvert; } |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
} |
|
||||||
@ -1,106 +0,0 @@ |
|||||||
/* |
|
||||||
* Created by SharpDevelop. |
|
||||||
* User: Peter Forstmeier |
|
||||||
* Date: 15.05.2010 |
|
||||||
* Time: 18:21 |
|
||||||
* |
|
||||||
* To change this template use Tools | Options | Coding | Edit Standard Headers. |
|
||||||
*/ |
|
||||||
using System; |
|
||||||
using System.Collections.ObjectModel; |
|
||||||
using System.Drawing; |
|
||||||
using ICSharpCode.Reports.Core.Exporter.Converter; |
|
||||||
using ICSharpCode.Reports.Core.Interfaces; |
|
||||||
|
|
||||||
namespace ICSharpCode.Reports.Core.Exporter |
|
||||||
{ |
|
||||||
/// <summary>
|
|
||||||
/// Description of BuildExportList.
|
|
||||||
/// </summary>
|
|
||||||
public class DataExportListBuilder:AbstractExportListBuilder |
|
||||||
{ |
|
||||||
|
|
||||||
|
|
||||||
public DataExportListBuilder(IReportModel reportModel,IDataManager dataManager):base(reportModel,new ItemsConverter()) |
|
||||||
{ |
|
||||||
this.DataManager = dataManager; |
|
||||||
this.DataManager.GetNavigator.MoveNext(); |
|
||||||
|
|
||||||
} |
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// This constructor os ONLY for testing reasons
|
|
||||||
/// </summary>
|
|
||||||
|
|
||||||
public DataExportListBuilder (IReportModel reportModel,IDataManager dataManager,IItemsConverter itemsConverter):base(reportModel,itemsConverter) |
|
||||||
{ |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
public override void WritePages () |
|
||||||
{ |
|
||||||
base.CreateNewPage(); |
|
||||||
|
|
||||||
base.PositionAfterRenderSection = this.BuildReportHeader(SinglePage.SectionBounds.ReportHeaderRectangle.Location); |
|
||||||
|
|
||||||
this.BuildPageHeader(); |
|
||||||
|
|
||||||
|
|
||||||
this.BuildDetailInternal (base.ReportModel.DetailSection); |
|
||||||
//
|
|
||||||
this.BuildReportFooter(); |
|
||||||
this.BuildPageFooter(); |
|
||||||
|
|
||||||
|
|
||||||
base.AddPage(base.SinglePage); |
|
||||||
//base.FinishRendering(this.dataNavigator);
|
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
protected override System.Drawing.Point BuildReportHeader(System.Drawing.Point reportHeaderStart) |
|
||||||
{ |
|
||||||
|
|
||||||
Point p = base.BuildReportHeader(reportHeaderStart); |
|
||||||
base.FireSectionRenderEvent(ReportModel.ReportHeader,0); |
|
||||||
return p; |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
protected override void BuildPageHeader() |
|
||||||
{ |
|
||||||
base.FireSectionRenderEvent(ReportModel.PageHeader,0); |
|
||||||
base.BuildPageHeader(); |
|
||||||
|
|
||||||
} |
|
||||||
|
|
||||||
protected override void BuildDetailInternal(BaseSection section) |
|
||||||
{ |
|
||||||
base.FireSectionRenderEvent(ReportModel.DetailSection,0); |
|
||||||
base.BuildDetailInternal(section); |
|
||||||
} |
|
||||||
|
|
||||||
protected override void BuildPageFooter() |
|
||||||
{ |
|
||||||
base.FireSectionRenderEvent(ReportModel.ReportFooter,0); |
|
||||||
base.BuildPageFooter(); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
protected override void BuildReportFooter() |
|
||||||
{ |
|
||||||
base.FireSectionRenderEvent(ReportModel.ReportFooter,0); |
|
||||||
base.BuildReportFooter(); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
public IDataManager DataManager {get; private set;} |
|
||||||
|
|
||||||
} |
|
||||||
|
|
||||||
public class PageDescriptions :Collection<PageDescription> |
|
||||||
{ |
|
||||||
|
|
||||||
} |
|
||||||
|
|
||||||
} |
|
||||||
@ -1,65 +0,0 @@ |
|||||||
/* |
|
||||||
* Created by SharpDevelop. |
|
||||||
* User: Peter Forstmeier |
|
||||||
* Date: 13.05.2010 |
|
||||||
* Time: 19:58 |
|
||||||
* |
|
||||||
* To change this template use Tools | Options | Coding | Edit Standard Headers. |
|
||||||
*/ |
|
||||||
|
|
||||||
using System; |
|
||||||
using ICSharpCode.Reports.Core.Interfaces; |
|
||||||
|
|
||||||
|
|
||||||
namespace ICSharpCode.Reports.Core.Exporter |
|
||||||
{ |
|
||||||
/// <summary>
|
|
||||||
/// Description of DataReportCreator.
|
|
||||||
/// </summary>
|
|
||||||
public class DataReportCreator:AbstractReportCreator |
|
||||||
{ |
|
||||||
|
|
||||||
IReportModel reportModel; |
|
||||||
IDataManager dataManager; |
|
||||||
ILayouter layouter; |
|
||||||
|
|
||||||
#region Constructor
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public static AbstractReportCreator CreateInstance(IReportModel reportModel, IDataManager dataManager,ILayouter layouter) |
|
||||||
{ |
|
||||||
if (reportModel == null) { |
|
||||||
throw new ArgumentNullException("reportModel"); |
|
||||||
} |
|
||||||
if (dataManager == null) { |
|
||||||
throw new ArgumentNullException("dataManager"); |
|
||||||
} |
|
||||||
if (layouter == null) { |
|
||||||
throw new ArgumentNullException("layouter"); |
|
||||||
} |
|
||||||
var instance = new DataReportCreator(reportModel,dataManager,layouter); |
|
||||||
|
|
||||||
return instance; |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
private DataReportCreator (IReportModel reportModel,IDataManager dataManager,ILayouter layouter):base(reportModel) |
|
||||||
{ |
|
||||||
this.reportModel = reportModel; |
|
||||||
this.dataManager = dataManager; |
|
||||||
this.layouter = layouter; |
|
||||||
|
|
||||||
base.AbstractExportListBuilder = new DataExportListBuilder(reportModel,dataManager); |
|
||||||
} |
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
public override void BuildExportList() |
|
||||||
{ |
|
||||||
base.AbstractExportListBuilder.WritePages(); |
|
||||||
|
|
||||||
} |
|
||||||
|
|
||||||
} |
|
||||||
} |
|
||||||
@ -1,31 +0,0 @@ |
|||||||
/* |
|
||||||
* Created by SharpDevelop. |
|
||||||
* User: Peter Forstmeier |
|
||||||
* Date: 24.05.2010 |
|
||||||
* Time: 20:04 |
|
||||||
* |
|
||||||
* To change this template use Tools | Options | Coding | Edit Standard Headers. |
|
||||||
*/ |
|
||||||
using System; |
|
||||||
using ICSharpCode.Reports.Core.Exporter; |
|
||||||
|
|
||||||
namespace ICSharpCode.Reports.Core.Exporter |
|
||||||
{ |
|
||||||
/// <summary>
|
|
||||||
/// Description of PageCreatedEventArgs.
|
|
||||||
/// </summary>
|
|
||||||
public class NewPageCreatedEventArgs:System.EventArgs |
|
||||||
{ |
|
||||||
PageDescription singlePage; |
|
||||||
|
|
||||||
public NewPageCreatedEventArgs(PageDescription page) |
|
||||||
{ |
|
||||||
this.singlePage = page; |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
public PageDescription SinglePage { |
|
||||||
get { return singlePage; } |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
@ -1,44 +0,0 @@ |
|||||||
/* |
|
||||||
* Created by SharpDevelop. |
|
||||||
* User: Peter Forstmeier |
|
||||||
* Date: 16.05.2010 |
|
||||||
* Time: 19:06 |
|
||||||
* |
|
||||||
* To change this template use Tools | Options | Coding | Edit Standard Headers. |
|
||||||
*/ |
|
||||||
using System; |
|
||||||
|
|
||||||
namespace ICSharpCode.Reports.Core.Exporter |
|
||||||
{ |
|
||||||
/// <summary>
|
|
||||||
/// Description of PageDescription.
|
|
||||||
/// </summary>
|
|
||||||
|
|
||||||
|
|
||||||
public class PageDescription:SinglePage |
|
||||||
{ |
|
||||||
|
|
||||||
private ReportItemCollection items; |
|
||||||
|
|
||||||
|
|
||||||
public PageDescription (SectionBounds sectionBounds,int pageNumber):base(sectionBounds,pageNumber) |
|
||||||
{ |
|
||||||
if (sectionBounds == null) { |
|
||||||
throw new ArgumentNullException("sectionBounds"); |
|
||||||
} |
|
||||||
this.SectionBounds = sectionBounds; |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
public ReportItemCollection Items |
|
||||||
{ |
|
||||||
get { |
|
||||||
if (this.items == null) { |
|
||||||
this.items = new ReportItemCollection(); |
|
||||||
} |
|
||||||
return this.items; |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
} |
|
||||||
} |
|
||||||
@ -1,24 +0,0 @@ |
|||||||
/* |
|
||||||
* Created by SharpDevelop. |
|
||||||
* User: Peter Forstmeier |
|
||||||
* Date: 24.05.2010 |
|
||||||
* Time: 19:52 |
|
||||||
* |
|
||||||
* To change this template use Tools | Options | Coding | Edit Standard Headers. |
|
||||||
*/ |
|
||||||
using System; |
|
||||||
|
|
||||||
namespace ICSharpCode.Reports.Core.Test.Exporter |
|
||||||
{ |
|
||||||
/// <summary>
|
|
||||||
/// Description of AbstractExportListBuilder.
|
|
||||||
/// </summary>
|
|
||||||
/* |
|
||||||
public class AbstractExportListBuilder |
|
||||||
{ |
|
||||||
public AbstractExportListBuilder() |
|
||||||
{ |
|
||||||
} |
|
||||||
} |
|
||||||
*/ |
|
||||||
} |
|
||||||
@ -1,98 +0,0 @@ |
|||||||
/* |
|
||||||
* Created by SharpDevelop. |
|
||||||
* User: Peter Forstmeier |
|
||||||
* Date: 21.05.2010 |
|
||||||
* Time: 19:44 |
|
||||||
* |
|
||||||
* To change this template use Tools | Options | Coding | Edit Standard Headers. |
|
||||||
*/ |
|
||||||
|
|
||||||
using System; |
|
||||||
using System.Collections.Generic; |
|
||||||
using System.Drawing; |
|
||||||
using ICSharpCode.Reports.Core.Exporter.Converter; |
|
||||||
using ICSharpCode.Reports.Core.Test.TestHelpers; |
|
||||||
using NUnit.Framework; |
|
||||||
|
|
||||||
namespace ICSharpCode.Reports.Core.Test.Exporter.Converter |
|
||||||
{ |
|
||||||
[TestFixture] |
|
||||||
public class ItemsConverterFixture:ConcernOf<ItemsConverter> |
|
||||||
{ |
|
||||||
[Test] |
|
||||||
public void ConvertSimpleItem() |
|
||||||
{ |
|
||||||
BaseSection section = new BaseSection(); |
|
||||||
section.Items.Add(CreateSimpeTextItem()); |
|
||||||
Point point = new Point(1,1); |
|
||||||
ReportItemCollection result = Sut.Convert (section,section.Items); |
|
||||||
|
|
||||||
Assert.AreEqual(new Point(section.Size.Width,section.Size.Height),Sut.LocationAfterConvert); |
|
||||||
Assert.AreEqual(1,result.Count); |
|
||||||
|
|
||||||
} |
|
||||||
|
|
||||||
[Test] |
|
||||||
public void Check_Location_Of_Item_In_Section () |
|
||||||
{ |
|
||||||
BaseSection section = new BaseSection(); |
|
||||||
section.Location = new Point (10,10); |
|
||||||
|
|
||||||
var textItem = CreateSimpeTextItem(); |
|
||||||
section.Items.Add(textItem); |
|
||||||
|
|
||||||
Point checkPoint = new Point(section.Location.X + textItem.Location.X,section.Location.Y + textItem.Location.Y); |
|
||||||
|
|
||||||
ReportItemCollection result = Sut.Convert (section,section.Items); |
|
||||||
var checkItem = result[0]; |
|
||||||
|
|
||||||
Assert.AreEqual(checkPoint,checkItem.Location); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
[Test] |
|
||||||
public void Check_Location_After_Convert () |
|
||||||
{ |
|
||||||
BaseSection section = new BaseSection(); |
|
||||||
section.Location = new Point (10,10); |
|
||||||
|
|
||||||
var textItem = CreateSimpeTextItem(); |
|
||||||
section.Items.Add(textItem); |
|
||||||
|
|
||||||
Point checkPoint = new Point(section.Location.X + section.Size.Width,section.Location.Y + section.Size.Height); |
|
||||||
|
|
||||||
ReportItemCollection result = Sut.Convert (section,section.Items); |
|
||||||
|
|
||||||
Assert.AreEqual(checkPoint,Sut.LocationAfterConvert); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
private BaseReportItem CreateSimpeTextItem () |
|
||||||
{ |
|
||||||
BaseTextItem bt = new BaseTextItem(); |
|
||||||
bt.Location = new Point(10,10); |
|
||||||
bt.Text = "MyText"; |
|
||||||
return bt; |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
public override void Setup() |
|
||||||
{ |
|
||||||
Sut = new ItemsConverter(); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[TestFixtureSetUp] |
|
||||||
public void Init() |
|
||||||
{ |
|
||||||
// TODO: Add Init code.
|
|
||||||
} |
|
||||||
|
|
||||||
[TestFixtureTearDown] |
|
||||||
public void Dispose() |
|
||||||
{ |
|
||||||
// TODO: Add tear down code.
|
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
@ -1,173 +0,0 @@ |
|||||||
/* |
|
||||||
* Created by SharpDevelop. |
|
||||||
* User: Peter Forstmeier |
|
||||||
* Date: 15.05.2010 |
|
||||||
* Time: 18:29 |
|
||||||
* |
|
||||||
* To change this template use Tools | Options | Coding | Edit Standard Headers. |
|
||||||
*/ |
|
||||||
|
|
||||||
using System; |
|
||||||
using System.Drawing; |
|
||||||
using ICSharpCode.Reports.Core.Exporter; |
|
||||||
using ICSharpCode.Reports.Core.Exporter.Converter; |
|
||||||
using ICSharpCode.Reports.Core.Interfaces; |
|
||||||
using ICSharpCode.Reports.Core.Project.Interfaces; |
|
||||||
using ICSharpCode.Reports.Core.Test.TestHelpers; |
|
||||||
using NUnit.Framework; |
|
||||||
|
|
||||||
namespace ICSharpCode.Reports.Core.Test.Exporter |
|
||||||
{ |
|
||||||
[TestFixture] |
|
||||||
public class DataListBuilderFixture:ConcernOf<DataExportListBuilder> |
|
||||||
{ |
|
||||||
ReportModel reportModel; |
|
||||||
|
|
||||||
[Test] |
|
||||||
public void Can_Create_ExportListBuilder() |
|
||||||
{ |
|
||||||
ReportSettings rs = new ReportSettings(); |
|
||||||
rs.ConnectionString = "goodConnection"; |
|
||||||
|
|
||||||
IDataAccessStrategy da = new MockDataAccessStrategy (rs); |
|
||||||
IDataManager dataManager = ICSharpCode.Reports.Core.DataManager.CreateInstance(rs,da); |
|
||||||
|
|
||||||
var reportModel = ReportModel.Create(); |
|
||||||
|
|
||||||
DataExportListBuilder sut = new DataExportListBuilder(reportModel,dataManager); |
|
||||||
Assert.IsNotNull(sut); |
|
||||||
IDataNavigator n = sut.DataManager.GetNavigator; |
|
||||||
Assert.AreEqual(0,sut.DataManager.GetNavigator.CurrentRow); |
|
||||||
} |
|
||||||
|
|
||||||
#region Render empty ReportModel
|
|
||||||
|
|
||||||
[Test] |
|
||||||
public void PagesCollection_Should_Be_Not_Null() |
|
||||||
{ |
|
||||||
Sut.WritePages(); |
|
||||||
Assert.IsNotNull(Sut.Pages); |
|
||||||
Assert.AreEqual(1,Sut.Pages.Count); |
|
||||||
|
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[Test] |
|
||||||
public void PageNumber_Should_Be_One() |
|
||||||
{ |
|
||||||
Sut.WritePages(); |
|
||||||
Assert.AreEqual(1,Sut.Pages.Count); |
|
||||||
Assert.AreEqual(1,Sut.Pages[0].PageNumber); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Events
|
|
||||||
|
|
||||||
[Test] |
|
||||||
public void SectionRenderingEvent_Should_Fire() |
|
||||||
{ |
|
||||||
|
|
||||||
bool eventFired = false; |
|
||||||
Sut.SectionRendering += delegate { { eventFired = true;}}; |
|
||||||
Sut.WritePages(); |
|
||||||
Assert.IsTrue(eventFired); |
|
||||||
} |
|
||||||
|
|
||||||
[Test] |
|
||||||
public void PageCreatedEvent_Should_Fire () |
|
||||||
{ |
|
||||||
bool eventFired = false; |
|
||||||
Sut.PageCreated += delegate { { eventFired = true;}}; |
|
||||||
Sut.WritePages(); |
|
||||||
|
|
||||||
Assert.IsTrue(eventFired); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
[Test] |
|
||||||
public void Every_Section_Should_Fire_Event() |
|
||||||
{ |
|
||||||
int noOfEvents = 0; |
|
||||||
int noOfsections = 5; |
|
||||||
Sut.SectionRendering += delegate { { noOfEvents ++;}}; |
|
||||||
Sut.WritePages(); |
|
||||||
Assert.AreEqual(noOfsections,noOfEvents); |
|
||||||
} |
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
|
|
||||||
#region Location after rendering
|
|
||||||
|
|
||||||
[Test] |
|
||||||
public void Location_After_Render_Empty_Section() |
|
||||||
{ |
|
||||||
Sut.WritePages(); |
|
||||||
BaseSection section = reportModel.ReportHeader; |
|
||||||
Point retVal = new Point (section.Location.X + section.Size.Width,section.Location.Y + section.Size.Height); |
|
||||||
Assert.AreEqual(retVal.Y,Sut.PositionAfterRenderSection.Y); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
[Test] |
|
||||||
public void Add_One_Item_In_ReportHeader() |
|
||||||
{ |
|
||||||
var item = CreateSimpeTextItem(); |
|
||||||
reportModel.ReportHeader.Items.Add(item); |
|
||||||
Sut.WritePages(); |
|
||||||
BaseReportItem it = Sut.Pages[0].Items[0]; |
|
||||||
Assert.IsNotNull(it); |
|
||||||
Assert.AreEqual(1,Sut.Pages[0].Items.Count); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
[Test] |
|
||||||
public void Add_Container_In_ReportHeader() |
|
||||||
{ |
|
||||||
BaseRowItem row = new BaseRowItem() { |
|
||||||
Location = new Point (5,5) |
|
||||||
}; |
|
||||||
row.Items.Add(CreateSimpeTextItem()); |
|
||||||
|
|
||||||
reportModel.ReportHeader.Items.Add(row); |
|
||||||
Sut.WritePages(); |
|
||||||
|
|
||||||
|
|
||||||
var item = Sut.Pages[0].Items[0]; |
|
||||||
Assert.IsAssignableFrom(typeof(BaseRowItem),item,"10"); |
|
||||||
Assert.AreEqual(1,((BaseRowItem)item).Items.Count,"20"); |
|
||||||
|
|
||||||
var textItem = ((BaseRowItem)item).Items[0]; |
|
||||||
Assert.IsAssignableFrom(typeof(BaseTextItem),textItem,"30"); |
|
||||||
|
|
||||||
} |
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
|
|
||||||
private BaseReportItem CreateSimpeTextItem () |
|
||||||
{ |
|
||||||
BaseTextItem bt = new BaseTextItem(); |
|
||||||
bt.Text = "MyText"; |
|
||||||
return bt; |
|
||||||
} |
|
||||||
|
|
||||||
public override void Setup() |
|
||||||
{ |
|
||||||
ReportSettings rs = new ReportSettings(); |
|
||||||
rs.ConnectionString = "goodConnection"; |
|
||||||
|
|
||||||
IDataAccessStrategy da = new MockDataAccessStrategy (rs); |
|
||||||
IDataManager dataManager = ICSharpCode.Reports.Core.DataManager.CreateInstance(rs,da); |
|
||||||
|
|
||||||
reportModel = ReportModel.Create(); |
|
||||||
var itemsConverter = new ItemsConverter(); |
|
||||||
|
|
||||||
Sut = new DataExportListBuilder(reportModel,dataManager,itemsConverter); |
|
||||||
} |
|
||||||
|
|
||||||
} |
|
||||||
} |
|
||||||
@ -1,114 +0,0 @@ |
|||||||
/* |
|
||||||
* Created by SharpDevelop. |
|
||||||
* User: Peter Forstmeier |
|
||||||
* Date: 14.05.2010 |
|
||||||
* Time: 20:04 |
|
||||||
* |
|
||||||
* To change this template use Tools | Options | Coding | Edit Standard Headers. |
|
||||||
*/ |
|
||||||
|
|
||||||
using System; |
|
||||||
using System.Data; |
|
||||||
using ICSharpCode.Reports.Core.BaseClasses.Printing; |
|
||||||
using ICSharpCode.Reports.Core.Exporter; |
|
||||||
using ICSharpCode.Reports.Core.Interfaces; |
|
||||||
using ICSharpCode.Reports.Core.Project.Interfaces; |
|
||||||
using ICSharpCode.Reports.Core.Test.TestHelpers; |
|
||||||
using NUnit.Framework; |
|
||||||
|
|
||||||
namespace ICSharpCode.Reports.Core.Test.Exporter |
|
||||||
{ |
|
||||||
[TestFixture] |
|
||||||
public class DataPageBuilderFixture:ConcernOf<IReportCreator_2> |
|
||||||
{ |
|
||||||
|
|
||||||
IReportModel reportModel; |
|
||||||
|
|
||||||
|
|
||||||
[Test] |
|
||||||
public void Can_Create_DataReportCreator() |
|
||||||
{ |
|
||||||
|
|
||||||
ReportSettings rs = new ReportSettings(); |
|
||||||
rs.ConnectionString = "goodConnection"; |
|
||||||
|
|
||||||
IDataAccessStrategy da = new MockDataAccessStrategy (rs); |
|
||||||
IDataManager dataManager = ICSharpCode.Reports.Core.DataManager.CreateInstance(rs,da); |
|
||||||
|
|
||||||
ILayouter layouter = new Layouter(); |
|
||||||
IReportCreator_2 sut = DataReportCreator.CreateInstance(reportModel,dataManager,layouter); |
|
||||||
Assert.IsNotNull(sut); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
[Test] |
|
||||||
public void Empty_ReportModel_Should_Return_Empty_List() |
|
||||||
{ |
|
||||||
Sut.BuildExportList(); |
|
||||||
Assert.AreEqual(1,Sut.Pages.Count); |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
public override void Setup() |
|
||||||
{ |
|
||||||
reportModel = ReportModel.Create(); |
|
||||||
ILayouter layouter = new Layouter(); |
|
||||||
|
|
||||||
ReportSettings rs = new ReportSettings(); |
|
||||||
rs.ConnectionString = "goodConnection"; |
|
||||||
|
|
||||||
IDataAccessStrategy da = new MockDataAccessStrategy (rs); |
|
||||||
|
|
||||||
IDataManager dataManager = ICSharpCode.Reports.Core.DataManager.CreateInstance(rs,da); |
|
||||||
|
|
||||||
Sut = DataReportCreator.CreateInstance(reportModel,dataManager,layouter); |
|
||||||
} |
|
||||||
|
|
||||||
[TestFixtureSetUp] |
|
||||||
public void Init() |
|
||||||
{ |
|
||||||
// TODO: Add Init code.
|
|
||||||
} |
|
||||||
|
|
||||||
[TestFixtureTearDown] |
|
||||||
public void Dispose() |
|
||||||
{ |
|
||||||
// TODO: Add tear down code.
|
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
public class MockDataAccessStrategy:IDataAccessStrategy |
|
||||||
{ |
|
||||||
ReportSettings reportSettings; |
|
||||||
|
|
||||||
public MockDataAccessStrategy(ReportSettings reportSettings) |
|
||||||
{ |
|
||||||
this.reportSettings = reportSettings; |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public bool OpenConnection () |
|
||||||
{ |
|
||||||
|
|
||||||
if (String.IsNullOrEmpty(reportSettings.ConnectionString)) { |
|
||||||
throw new ArgumentNullException("ConnectionString"); |
|
||||||
} |
|
||||||
|
|
||||||
if (reportSettings.ConnectionString == "bad") { |
|
||||||
throw new ArgumentException(); |
|
||||||
} |
|
||||||
return true; |
|
||||||
} |
|
||||||
|
|
||||||
public System.Data.DataSet ReadData() |
|
||||||
{ |
|
||||||
ContributorsList contributorsList = new ContributorsList(); |
|
||||||
DataSet ds = new DataSet(); |
|
||||||
ds.Tables.Add(contributorsList.ContributorTable); |
|
||||||
return ds; |
|
||||||
} |
|
||||||
|
|
||||||
} |
|
||||||
} |
|
||||||
Loading…
Reference in new issue