Browse Source

Add Textblock as child of Container

reports
Peter Forstmeier 13 years ago
parent
commit
799e0f7e7d
  1. 4
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ExportRenderer/FixedDocumentCreator.cs
  2. 7
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/WpfVisitor.cs
  3. 118
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/WpfExporter.cs
  4. 1
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/Converter/ContainerConverter.cs
  5. 11
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/DataPageBuilder.cs

4
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ExportRenderer/FixedDocumentCreator.cs

@ -48,9 +48,6 @@ namespace ICSharpCode.Reporting.ExportRenderer @@ -48,9 +48,6 @@ namespace ICSharpCode.Reporting.ExportRenderer
public UIElement CreateContainer(ExportContainer container)
{
// http://tech.pro/tutorial/736/wpf-tutorial-creating-a-custom-panel-control
Console.WriteLine();
Console.WriteLine("create container {0} {1} {2}",container.Name,container.Location,container.Size);
var canvas = CreateCanvas(container);
var size = new Size(container.DesiredSize.Width,container.DesiredSize.Height);
@ -175,7 +172,6 @@ namespace ICSharpCode.Reporting.ExportRenderer @@ -175,7 +172,6 @@ namespace ICSharpCode.Reporting.ExportRenderer
Brush ConvertBrush(System.Drawing.Color color)
{
if (brushConverter.IsValid(color.Name)){
Console.WriteLine(color.Name);
return brushConverter.ConvertFromString(color.Name) as SolidColorBrush;
} else{
return brushConverter.ConvertFromString("Black") as SolidColorBrush;

7
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/WpfVisitor.cs

@ -33,15 +33,16 @@ namespace ICSharpCode.Reporting.Exporter.Visitors @@ -33,15 +33,16 @@ namespace ICSharpCode.Reporting.Exporter.Visitors
public override void Visit(ExportPage page)
{
Console.WriteLine("page visitor");
UIElement = documentCreator.CreateFixedPage(page);
}
public override void Visit(ExportContainer exportColumn)
{
// Console.WriteLine("Wpf-Visit ExportContainer {0} - {1} - {2} - {3}", exportColumn.Name,exportColumn.Size,
// exportColumn.Location,exportColumn.BackColor);
var canvas = documentCreator.CreateContainer(exportColumn);
UIElement = canvas;
}
@ -49,7 +50,7 @@ namespace ICSharpCode.Reporting.Exporter.Visitors @@ -49,7 +50,7 @@ namespace ICSharpCode.Reporting.Exporter.Visitors
public override void Visit(ExportText exportColumn)
{
Console.WriteLine("Wpf-Visit ExportText {0} - {1} - {2}", exportColumn.Name,exportColumn.Size,exportColumn.DesiredSize);
// Console.WriteLine("Wpf-Visit ExportText {0} - {1} - {2}", exportColumn.Name,exportColumn.Size,exportColumn.DesiredSize);
var textBlock = documentCreator.CreateTextBlock(exportColumn);
UIElement = textBlock;
}
@ -57,7 +58,7 @@ namespace ICSharpCode.Reporting.Exporter.Visitors @@ -57,7 +58,7 @@ namespace ICSharpCode.Reporting.Exporter.Visitors
public override void Visit(ExportColumn exportColumn)
{
// Console.WriteLine("Wpf-Visit ExportColumn {0} - {1} - {2}", exportColumn.Name,exportColumn.Size,exportColumn.Location);
// Console.WriteLine("Wpf-Visit ExportColumn {0} - {1} - {2}", exportColumn.Name,exportColumn.Location,exportColumn.Size,);
}
public UIElement UIElement {get; private set;}

118
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/WpfExporter.cs

@ -8,6 +8,7 @@ @@ -8,6 +8,7 @@
*/
using System;
using System.Collections.ObjectModel;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Markup;
@ -53,127 +54,82 @@ namespace ICSharpCode.Reporting.Exporter @@ -53,127 +54,82 @@ namespace ICSharpCode.Reporting.Exporter
page.Accept(visitor);
fixedPage = (FixedPage)visitor.UIElement;
foreach (var item in page.ExportedItems) {
ShowContainerRecursive_2(null,item);
ShowContainerRecursive(null,item);
}
}
void ShowContainerRecursive (string parentCanvas,IExportColumn item){
void ShowContainerRecursive(Canvas parentCanvas,IExportColumn item)
{
var exportContainer = item as IExportContainer;
string name = string.Empty;
Console.WriteLine("perform {0}",parentCanvas);
Canvas containerCanvas = null;
if (exportContainer != null) {
if (exportContainer.Name =="ReportDetail") {
Console.WriteLine(item.Name);
}
//
if (exportContainer.Name == "Row") {
Console.WriteLine(item.Name);
}
name = item.Name;
// var containerCanvas = CreateContainer(exportContainer);
// fixedPage.Children.Add(containerCanvas);
// Console.WriteLine(fixedPage.Children.Count);
// Console.WriteLine(containerCanvas.Children.Count);
foreach (var element in exportContainer.ExportedItems) {
var el = element as IExportContainer;
if (el == null) {
// CreateSingleEntry(ref containerCanvas, element);
// Console.WriteLine(containerCanvas.Children.Count);
name = element.Name;
}
ShowContainerRecursive(name,element);
}
}
}
void ShowContainerRecursive_2(Canvas parentCanvas,IExportColumn item)
{
var exportContainer = item as IExportContainer;
if (exportContainer != null) {
if (exportContainer.Name =="ReportDetail") {
Console.WriteLine(item.Name);
}
//
if (exportContainer.Name == "Row") {
Console.WriteLine("\t {0}",item.Name);
if (parentCanvas == null) {
containerCanvas = CreateContainer(fixedPage,exportContainer);
Console.WriteLine("Section {0} at {1}",item.Name,CanvasHelper.GetPosition(containerCanvas));
fixedPage.Children.Add(containerCanvas);
parentCanvas = containerCanvas;
} else {
containerCanvas = CreateContainer(parentCanvas,exportContainer);
Console.WriteLine("Row {0} at {1}",item.Name,CanvasHelper.GetPosition(containerCanvas));
parentCanvas.Children.Add(containerCanvas);
}
Console.WriteLine("canvas at {0}",CanvasHelper.GetPosition(containerCanvas));
foreach (var element in exportContainer.ExportedItems) {
// Console.WriteLine(element.Name);
var el = element as IExportContainer;
if (el == null) {
Console.WriteLine("\t\t {0}",element.Name);
}
ShowContainerRecursive_2(null,exportContainer.ExportedItems[0]);
var t = CreateSingleEntry(parentCanvas,element);
containerCanvas.Children.Add(t);
}
ShowContainerRecursive(parentCanvas,element);
}
}
}
// http://stackoverflow.com/questions/4523208/wpf-positioning-uielement-on-a-canvas
//http://stackoverflow.com/questions/1123101/changing-position-of-an-element-programmatically-in-wpf
//http://stackoverflow.com/questions/1923697/how-can-i-get-the-position-of-a-child-element-relative-to-a-parent
void ShowContainerRecursive_1(Canvas parentCanvas,IExportColumn item)
{
var exportContainer = item as IExportContainer;
if (exportContainer != null) {
if (exportContainer.Name =="ReportDetail") {
Console.WriteLine(item.Name);
}
//
if (exportContainer.Name == "Row") {
Console.WriteLine(item.Name);
}
var containerCanvas = CreateContainer(exportContainer);
fixedPage.Children.Add(containerCanvas);
Console.WriteLine(fixedPage.Children.Count);
Console.WriteLine(containerCanvas.Children.Count);
foreach (var element in exportContainer.ExportedItems) {
var el = element as IExportContainer;
if (el == null) {
CreateSingleEntry(ref containerCanvas, element);
Console.WriteLine(containerCanvas.Children.Count);
}
ShowContainerRecursive_1(containerCanvas,element);
}
}
}
Canvas CreateContainer(IExportContainer exportContainer)
Canvas CreateContainer(UIElement parent,IExportContainer exportContainer)
{
var containerAcceptor = exportContainer as IAcceptor;
containerAcceptor.Accept(visitor);
var containerCanvas = (Canvas)visitor.UIElement;
// Console.WriteLine("CreateContainer bevore {0}",CanvasHelper.GetPosition(containerCanvas));
CanvasHelper.SetPosition(containerCanvas,
new Point(exportContainer.Location.X,exportContainer.Location.Y));
// Console.WriteLine("CreateContainer after {0}",CanvasHelper.GetPosition(containerCanvas));
return containerCanvas;
}
void CreateSingleEntry(ref Canvas canvas, IExportColumn element)
UIElement CreateSingleEntry(UIElement parent, IExportColumn element)
{
var v = element as IAcceptor;
v.Accept(visitor);
var c = visitor.UIElement;
CanvasHelper.SetLeft(c,element.Location.X);
CanvasHelper.SetTop(c,10);
// CanvasHelper.SetTop(c,element.Location.Y);
canvas.AddChild(c);
// CanvasHelper.SetLeft(c,element.Location.X);
// CanvasHelper.SetTop(c,10);
CanvasHelper.SetPosition(c,new Point(element.Location.X,element.Location.Y));
Console.WriteLine("CreateSingleEntry after {0}",CanvasHelper.GetPosition(c));
return c;
}

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

@ -48,6 +48,7 @@ namespace ICSharpCode.Reporting.PageBuilder.Converter @@ -48,6 +48,7 @@ namespace ICSharpCode.Reporting.PageBuilder.Converter
var exportColumn = ExportColumnFactory.CreateItem(element);
exportColumn.Parent = exportContainer;
exportColumn.Location = new Point(element.Location.X,element.Location.Y + position.Y);
// exportColumn.Location = new Point(element.Location.X,element.Location.Y + position.Y);
itemsList.Add(exportColumn);
}
return itemsList;

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

@ -147,17 +147,6 @@ namespace ICSharpCode.Reporting.PageBuilder @@ -147,17 +147,6 @@ namespace ICSharpCode.Reporting.PageBuilder
IExportContainer CreateContainerIfNotExist(IReportContainer container, IExportContainer parent, Point position)
{
// if (container.Items[0] is IExportContainer) {
// return container.Items[0].CreateExportColumn() as IExportContainer;
// } else {
// var row = CreateContainerForSection(position);
// row.Name = "Row";
// row.Parent = parent;
// row.Location = new Point(50, position.Y);
// row.Size = new Size(400, 40);
// row.BackColor = Color.Green;
// return row;
// }
var row = CreateContainerForSection(position);
row.Name = "Row";
row.Parent = parent;

Loading…
Cancel
Save