Browse Source

Cleanup test's

reports
Peter Forstmeier 13 years ago
parent
commit
4469614665
  1. 19
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/BasePageBuilder.cs
  2. 30
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/Converter/ContainerConverter.cs
  3. 4
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/Converter/IContainerConverter.cs
  4. 33
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/DataPageBuilder.cs
  5. 2
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/MeasureArrange/ContainerArrangeStrategyFixture.cs
  6. 7
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/Model/Report_FromListFixture.cs
  7. 1
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/BaseConvertFixture.cs
  8. 1
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/Reportingfactory/PushModelFixture.cs

19
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/BasePageBuilder.cs

@ -115,10 +115,12 @@ namespace ICSharpCode.Reporting.PageBuilder
{ {
var containerConverter = new ContainerConverter(Graphics, location); var containerConverter = new ContainerConverter(Graphics, location);
var convertedContainer = containerConverter.Convert(container); var convertedContainer = containerConverter.Convert(container);
var list = containerConverter.CreateConvertedList(container,convertedContainer); var list = containerConverter.CreateConvertedList(container,convertedContainer);
convertedContainer.ExportedItems.AddRange(list); convertedContainer.ExportedItems.AddRange(list);
containerConverter.Measure(convertedContainer);
containerConverter.ArrangeContainer(convertedContainer); convertedContainer.DesiredSize = MeasureElement(convertedContainer);
ArrangeContainer(convertedContainer);
return convertedContainer; return convertedContainer;
} }
@ -130,6 +132,19 @@ namespace ICSharpCode.Reporting.PageBuilder
} }
protected Size MeasureElement (IExportColumn element) {
var measureStrategy = element.MeasurementStrategy();
return measureStrategy.Measure(element, Graphics);
}
protected void ArrangeContainer(IExportContainer exportContainer)
{
var exportArrange = exportContainer.GetArrangeStrategy();
exportArrange.Arrange(exportContainer);
}
IPageInfo CreatePageInfo() IPageInfo CreatePageInfo()
{ {
var pi = new PageInfo(); var pi = new PageInfo();

30
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/Converter/ContainerConverter.cs

@ -36,26 +36,28 @@ namespace ICSharpCode.Reporting.PageBuilder.Converter
{ {
var exportContainer = (ExportContainer)reportContainer.CreateExportColumn(); var exportContainer = (ExportContainer)reportContainer.CreateExportColumn();
exportContainer.Location = CurrentLocation; exportContainer.Location = CurrentLocation;
exportContainer.DesiredSize = Measure(exportContainer); // exportContainer.DesiredSize = Measure(exportContainer);
return exportContainer; return exportContainer;
} }
public List<IExportColumn> CreateConvertedList(IReportContainer reportContainer,IExportContainer exportContainer,Point position){ public List<IExportColumn> CreateConvertedList(IReportContainer reportContainer,
IExportContainer exportContainer,
Point position){
var itemsList = new List<IExportColumn>(); var itemsList = new List<IExportColumn>();
foreach (var element in reportContainer.Items) { foreach (var item in reportContainer.Items) {
var exportColumn = ExportColumnFactory.CreateItem(element); var exportColumn = ExportColumnFactory.CreateItem(item);
exportColumn.Parent = exportContainer; exportColumn.Parent = exportContainer;
exportColumn.Location = new Point(element.Location.X,element.Location.Y + position.Y); exportColumn.Location = new Point(item.Location.X,item.Location.Y + position.Y);
// exportColumn.Location = new Point(element.Location.X,element.Location.Y + position.Y);
itemsList.Add(exportColumn); itemsList.Add(exportColumn);
} }
return itemsList; return itemsList;
} }
public List<IExportColumn> CreateConvertedList(IReportContainer reportContainer,IExportContainer exportContainer)
{ public List<IExportColumn> CreateConvertedList(IReportContainer reportContainer
,IExportContainer exportContainer){
// Console.WriteLine("CreateConvertedList {0}",reportContainer.Name); // Console.WriteLine("CreateConvertedList {0}",reportContainer.Name);
var itemsList = new List<IExportColumn>(); var itemsList = new List<IExportColumn>();
foreach (var element in reportContainer.Items) { foreach (var element in reportContainer.Items) {
@ -69,20 +71,14 @@ namespace ICSharpCode.Reporting.PageBuilder.Converter
return itemsList; return itemsList;
} }
public Size Measure(IExportColumn element) /*
{
// Console.WriteLine("Measure {0}",element.Name);
var measureStrategy = element.MeasurementStrategy();
return measureStrategy.Measure(element, Graphics);
}
public void ArrangeContainer(IExportContainer exportContainer) public void ArrangeContainer(IExportContainer exportContainer)
{ {
// Console.WriteLine("ArrangeContainer {0}",exportContainer.Name); Console.WriteLine("ArrangeContainer {0}",exportContainer.Name);
var exportArrange = exportContainer.GetArrangeStrategy(); var exportArrange = exportContainer.GetArrangeStrategy();
exportArrange.Arrange(exportContainer); exportArrange.Arrange(exportContainer);
} }
*/
internal IReportContainer Container { get; private set; } internal IReportContainer Container { get; private set; }

4
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/Converter/IContainerConverter.cs

@ -20,7 +20,7 @@ namespace ICSharpCode.Reporting.PageBuilder.Converter
IExportContainer Convert(IReportContainer reportContainer); IExportContainer Convert(IReportContainer reportContainer);
List<IExportColumn> CreateConvertedList(IReportContainer reportContainer,IExportContainer exportContainer); List<IExportColumn> CreateConvertedList(IReportContainer reportContainer,IExportContainer exportContainer);
List<IExportColumn> CreateConvertedList(IReportContainer reportContainer,IExportContainer exportContainer,Point position); List<IExportColumn> CreateConvertedList(IReportContainer reportContainer,IExportContainer exportContainer,Point position);
Size Measure(IExportColumn element); // Size Measure(IExportColumn element);
void ArrangeContainer(IExportContainer exportContainer); // void ArrangeContainer(IExportContainer exportContainer);
} }
} }

33
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/DataPageBuilder.cs

@ -46,7 +46,7 @@ namespace ICSharpCode.Reporting.PageBuilder
void aaBuildDetail() void aaBuildDetail()
{ {
Container = ReportModel.DetailSection; CurrentSection = ReportModel.DetailSection;
var collectionSource = new CollectionSource(List,ElementType,ReportModel.ReportSettings); var collectionSource = new CollectionSource(List,ElementType,ReportModel.ReportSettings);
IExportContainer detail = null; IExportContainer detail = null;
if(collectionSource.Count > 0) { if(collectionSource.Count > 0) {
@ -60,7 +60,7 @@ namespace ICSharpCode.Reporting.PageBuilder
do { do {
collectionSource.Fill(Container.Items); collectionSource.Fill(CurrentSection.Items);
var convertedItems = converter.CreateConvertedList(ReportModel.DetailSection,detail,position); var convertedItems = converter.CreateConvertedList(ReportModel.DetailSection,detail,position);
if (PageFull(convertedItems)) { if (PageFull(convertedItems)) {
detail.ExportedItems.AddRange(convertedItems); detail.ExportedItems.AddRange(convertedItems);
@ -77,7 +77,7 @@ namespace ICSharpCode.Reporting.PageBuilder
} else { } else {
detail.ExportedItems.AddRange(convertedItems); detail.ExportedItems.AddRange(convertedItems);
MeasureAndArrangeContainer(converter,detail); MeasureAndArrangeContainer(converter,detail);
position = new Point(Container.Location.Y,position.Y + Container.Size.Height); position = new Point(CurrentSection.Location.Y,position.Y + CurrentSection.Size.Height);
} }
} }
@ -96,7 +96,7 @@ namespace ICSharpCode.Reporting.PageBuilder
void BuildDetail() void BuildDetail()
{ {
Container = ReportModel.DetailSection; CurrentSection = ReportModel.DetailSection;
var collectionSource = new CollectionSource(List,ElementType,ReportModel.ReportSettings); var collectionSource = new CollectionSource(List,ElementType,ReportModel.ReportSettings);
IExportContainer detail = null; IExportContainer detail = null;
if(collectionSource.Count > 0) { if(collectionSource.Count > 0) {
@ -108,9 +108,9 @@ namespace ICSharpCode.Reporting.PageBuilder
do { do {
var row = CreateContainerIfNotExist(Container,detail, position); var row = CreateContainerIfNotExist(CurrentSection,detail, position);
collectionSource.Fill(Container.Items); collectionSource.Fill(CurrentSection.Items);
//var convertedItems = converter.CreateConvertedList(ReportModel.DetailSection,row);
var convertedItems = converter.CreateConvertedList(ReportModel.DetailSection,row,position); var convertedItems = converter.CreateConvertedList(ReportModel.DetailSection,row,position);
MeasureAndArrangeContainer(converter,row); MeasureAndArrangeContainer(converter,row);
row.ExportedItems.AddRange(convertedItems); row.ExportedItems.AddRange(convertedItems);
@ -123,13 +123,13 @@ namespace ICSharpCode.Reporting.PageBuilder
detail = CreateDetail(DetailStart); detail = CreateDetail(DetailStart);
CurrentLocation = DetailStart; CurrentLocation = DetailStart;
row = CreateContainerIfNotExist(Container,detail,position); row = CreateContainerIfNotExist(CurrentSection,detail,position);
var recreate = converter.CreateConvertedList(ReportModel.DetailSection,row,position); var recreate = converter.CreateConvertedList(ReportModel.DetailSection,row,position);
MeasureAndArrangeContainer(converter,row); MeasureAndArrangeContainer(converter,row);
row.ExportedItems.AddRange(recreate); row.ExportedItems.AddRange(recreate);
} }
detail.ExportedItems.Add(row); detail.ExportedItems.Add(row);
position = new Point(Container.Location.Y,position.Y + Container.Size.Height); position = new Point(CurrentSection.Location.Y,position.Y + CurrentSection.Size.Height);
} }
while (collectionSource.MoveNext()); while (collectionSource.MoveNext());
@ -147,13 +147,17 @@ namespace ICSharpCode.Reporting.PageBuilder
IExportContainer CreateContainerIfNotExist(IReportContainer container, IExportContainer parent, Point position) IExportContainer CreateContainerIfNotExist(IReportContainer container, IExportContainer parent, Point position)
{ {
var row = CreateContainerForSection(position); var isContainer = container.Items[0] is IReportContainer;
if (!isContainer) {
var row = CreateContainerForSection(position);
row.Name = "Row"; row.Name = "Row";
row.Parent = parent; row.Parent = parent;
row.Location = new Point(50, position.Y); row.Location = new Point(50, position.Y);
row.Size = new Size(400, 40); row.Size = new Size(400, 40);
row.BackColor = Color.Green; row.BackColor = Color.Green;
return row; return row;
}
return CreateContainerForSection(container.Items[0].Location);
} }
@ -173,14 +177,14 @@ namespace ICSharpCode.Reporting.PageBuilder
void MeasureAndArrangeContainer(IContainerConverter converter,IExportContainer container) void MeasureAndArrangeContainer(IContainerConverter converter,IExportContainer container)
{ {
converter.Measure(container); container.DesiredSize = MeasureElement(container);
converter.ArrangeContainer(container); ArrangeContainer(container);
} }
IExportContainer CreateContainerForSection(Point location ) IExportContainer CreateContainerForSection(Point location )
{ {
var detail = (ExportContainer)Container.CreateExportColumn(); var detail = (ExportContainer)CurrentSection.CreateExportColumn();
detail.Location = location; detail.Location = location;
return detail; return detail;
} }
@ -196,7 +200,8 @@ namespace ICSharpCode.Reporting.PageBuilder
} }
internal IReportContainer Container { get; private set; } // internal IReportContainer Container { get; private set; }
internal IReportContainer CurrentSection { get; private set; }
public IEnumerable List {get; private set;} public IEnumerable List {get; private set;}

2
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/MeasureArrange/ContainerArrangeStrategyFixture.cs

@ -32,10 +32,10 @@ namespace ICSharpCode.Reporting.Test.MeasureArrange
} }
[Test] [Test]
[Ignore]
public void ItemAtTopOfContainer() { public void ItemAtTopOfContainer() {
var container = CreateContainer(); var container = CreateContainer();
container.ExportedItems[0].Location = container.Location; container.ExportedItems[0].Location = container.Location;
Measure(container);
strategy.Arrange(container); strategy.Arrange(container);
var containerRect = new Rectangle(container.Location,container.DesiredSize); var containerRect = new Rectangle(container.Location,container.DesiredSize);

7
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/Model/Report_FromListFixture.cs

@ -16,23 +16,26 @@ namespace ICSharpCode.Reporting.Test.Model
private ReportModel model; private ReportModel model;
[Test] [Test]
public void ReportHeaderOneItem () { public void ReportHeaderContainsOneItem () {
var section = model.ReportHeader; var section = model.ReportHeader;
Assert.That(section.Items.Count,Is.EqualTo(1)); Assert.That(section.Items.Count,Is.EqualTo(1));
} }
[Test] [Test]
public void PageHeaderOneItem () { public void PageHeaderContainsOneItem () {
var section = model.ReportHeader; var section = model.ReportHeader;
Assert.That(section.Items.Count,Is.EqualTo(1)); Assert.That(section.Items.Count,Is.EqualTo(1));
} }
[Test] [Test]
public void DetailContainsOneDataItem() { public void DetailContainsOneDataItem() {
var section = model.DetailSection; var section = model.DetailSection;
Assert.That(section.Items.Count,Is.EqualTo(1)); Assert.That(section.Items.Count,Is.EqualTo(1));
} }
[SetUp] [SetUp]
public void LoadModelFromStream() public void LoadModelFromStream()
{ {

1
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/BaseConvertFixture.cs

@ -37,7 +37,6 @@ namespace ICSharpCode.Reporting.Test.PageBuilder
[Test] [Test]
[IgnoreAttribute]
public void ExportContainerContainsExportText() { public void ExportContainerContainsExportText() {
reportCreator.BuildExportList(); reportCreator.BuildExportList();
var page = reportCreator.Pages[0]; var page = reportCreator.Pages[0];

1
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/Reportingfactory/PushModelFixture.cs

@ -74,6 +74,7 @@ namespace ICSharpCode.Reporting.Test.Reportingfactory
Assert.That(result,Is.AssignableFrom(typeof(ExportContainer))); Assert.That(result,Is.AssignableFrom(typeof(ExportContainer)));
} }
[Test] [Test]
public void ParentOfSectionsIsPage() { public void ParentOfSectionsIsPage() {
reportCreator.BuildExportList(); reportCreator.BuildExportList();

Loading…
Cancel
Save