Browse Source

Mke FixedDocumentCreator.cs static

reports
Peter Forstmeier 12 years ago
parent
commit
ea763febf5
  1. 37
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ExportRenderer/FixedDocumentCreator.cs
  2. 14
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/WpfVisitor.cs

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

@ -27,14 +27,9 @@ namespace ICSharpCode.Reporting.ExportRenderer
/// <summary> /// <summary>
/// Description of FixedDocumentCreator. /// Description of FixedDocumentCreator.
/// </summary> /// </summary>
class FixedDocumentCreator static class FixedDocumentCreator
{ {
private readonly BrushConverter brushConverter ;
public FixedDocumentCreator()
{
brushConverter = new BrushConverter();
}
public static FixedPage CreateFixedPage(ExportPage exportPage) { public static FixedPage CreateFixedPage(ExportPage exportPage) {
var fixedPage = new FixedPage(); var fixedPage = new FixedPage();
@ -45,7 +40,7 @@ namespace ICSharpCode.Reporting.ExportRenderer
} }
public Canvas CreateContainer(ExportContainer container) { public static Canvas CreateContainer(ExportContainer container) {
var canvas = CreateCanvas(container); var canvas = CreateCanvas(container);
var size = container.DesiredSize.ToWpf(); var size = container.DesiredSize.ToWpf();
canvas.Measure(size); canvas.Measure(size);
@ -55,8 +50,7 @@ namespace ICSharpCode.Reporting.ExportRenderer
} }
public static TextBlock CreateTextBlock(ExportText exportText,bool setBackcolor){
public TextBlock CreateTextBlock(ExportText exportText,bool setBackcolor){
var textBlock = new TextBlock(); var textBlock = new TextBlock();
@ -66,12 +60,9 @@ namespace ICSharpCode.Reporting.ExportRenderer
textBlock.Background = ConvertBrush(exportText.BackColor); textBlock.Background = ConvertBrush(exportText.BackColor);
} }
// textBlock.Background = ConvertBrush(System.Drawing.Color.LightPink);
SetFont(textBlock,exportText); SetFont(textBlock,exportText);
textBlock.TextWrapping = TextWrapping.Wrap; textBlock.TextWrapping = TextWrapping.Wrap;
// textBlock.TextTrimming = TextTrimming.CharacterEllipsis;
CheckForNewLine (textBlock,exportText); CheckForNewLine (textBlock,exportText);
SetContentAlignment(textBlock,exportText); SetContentAlignment(textBlock,exportText);
@ -100,6 +91,7 @@ namespace ICSharpCode.Reporting.ExportRenderer
textBlock.Height = wpfSize.Height; textBlock.Height = wpfSize.Height;
} }
static Size MeasureTextInWpf(ExportText exportText){ static Size MeasureTextInWpf(ExportText exportText){
if (exportText.CanGrow) { if (exportText.CanGrow) {
@ -127,7 +119,7 @@ namespace ICSharpCode.Reporting.ExportRenderer
} }
Canvas CreateCanvas(ExportContainer container){ static Canvas CreateCanvas(ExportContainer container){
var canvas = new Canvas(); var canvas = new Canvas();
SetPositionAndSize(canvas,container); SetPositionAndSize(canvas,container);
@ -157,7 +149,7 @@ namespace ICSharpCode.Reporting.ExportRenderer
} }
void SetFont(TextBlock textBlock,IExportText exportText){ static void SetFont(TextBlock textBlock,IExportText exportText){
textBlock.FontFamily = new FontFamily(exportText.Font.FontFamily.Name); textBlock.FontFamily = new FontFamily(exportText.Font.FontFamily.Name);
//http://www.codeproject.com/Articles/441009/Drawing-Formatted-Text-in-a-Windows-Forms-Applicat //http://www.codeproject.com/Articles/441009/Drawing-Formatted-Text-in-a-Windows-Forms-Applicat
@ -180,7 +172,7 @@ namespace ICSharpCode.Reporting.ExportRenderer
} }
void SetContentAlignment(TextBlock textBlock,ExportText exportText) static void SetContentAlignment(TextBlock textBlock,ExportText exportText)
{ {
// http://social.msdn.microsoft.com/Forums/vstudio/en-US/e480abb9-a86c-4f78-8955-dddb866bcfef/vertical-text-alignment-in-textblock?forum=wpf // http://social.msdn.microsoft.com/Forums/vstudio/en-US/e480abb9-a86c-4f78-8955-dddb866bcfef/vertical-text-alignment-in-textblock?forum=wpf
//Vertical alignment not working //Vertical alignment not working
@ -228,7 +220,7 @@ namespace ICSharpCode.Reporting.ExportRenderer
} }
void CreateStrikeout (TextBlock textBlock,IExportText exportColumn ){ static void CreateStrikeout (TextBlock textBlock,IExportText exportColumn ){
if (textBlock == null) if (textBlock == null)
throw new ArgumentNullException("textBlock"); throw new ArgumentNullException("textBlock");
if (exportColumn == null) if (exportColumn == null)
@ -243,7 +235,7 @@ namespace ICSharpCode.Reporting.ExportRenderer
} }
void CreateUnderline(TextBlock textBlock,IExportText exportColumn){ static void CreateUnderline(TextBlock textBlock,IExportText exportColumn){
if (exportColumn == null) if (exportColumn == null)
throw new ArgumentNullException("exportColumn"); throw new ArgumentNullException("exportColumn");
if (textBlock == null) if (textBlock == null)
@ -256,7 +248,7 @@ namespace ICSharpCode.Reporting.ExportRenderer
} }
public Pen CreateWpfPen(IReportObject exportColumn){ public static Pen CreateWpfPen(IReportObject exportColumn){
if (exportColumn == null) if (exportColumn == null)
throw new ArgumentNullException("exportColumn"); throw new ArgumentNullException("exportColumn");
var myPen = new Pen(); var myPen = new Pen();
@ -266,11 +258,12 @@ namespace ICSharpCode.Reporting.ExportRenderer
} }
public Brush ConvertBrush(System.Drawing.Color color){ public static Brush ConvertBrush(System.Drawing.Color color){
if (brushConverter.IsValid(color.Name)){ var b = new BrushConverter();
return brushConverter.ConvertFromString(color.Name) as SolidColorBrush; if (b.IsValid(color.Name)){
return b.ConvertFromString(color.Name) as SolidColorBrush;
} else{ } else{
return brushConverter.ConvertFromString("Black") as SolidColorBrush; return b.ConvertFromString("Black") as SolidColorBrush;
} }
} }

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

@ -25,15 +25,9 @@ namespace ICSharpCode.Reporting.Exporter.Visitors
/// ///
class WpfVisitor: AbstractVisitor { class WpfVisitor: AbstractVisitor {
readonly FixedDocumentCreator documentCreator;
FixedPage fixedPage; FixedPage fixedPage;
Canvas sectionCanvas; Canvas sectionCanvas;
public WpfVisitor()
{
documentCreator = new FixedDocumentCreator();
}
public override void Visit(ExportPage page){ public override void Visit(ExportPage page){
fixedPage = FixedDocumentCreator.CreateFixedPage(page); fixedPage = FixedDocumentCreator.CreateFixedPage(page);
@ -48,7 +42,7 @@ namespace ICSharpCode.Reporting.Exporter.Visitors
public override void Visit(ExportContainer exportContainer){ public override void Visit(ExportContainer exportContainer){
sectionCanvas = documentCreator.CreateContainer(exportContainer); sectionCanvas = FixedDocumentCreator.CreateContainer(exportContainer);
sectionCanvas.Name = exportContainer.Name; sectionCanvas.Name = exportContainer.Name;
CanvasHelper.SetPosition(sectionCanvas,new Point(exportContainer.Location.X,exportContainer.Location.Y)); CanvasHelper.SetPosition(sectionCanvas,new Point(exportContainer.Location.X,exportContainer.Location.Y));
PerformList(sectionCanvas,exportContainer.ExportedItems); PerformList(sectionCanvas,exportContainer.ExportedItems);
@ -62,7 +56,7 @@ namespace ICSharpCode.Reporting.Exporter.Visitors
var container = element as ExportContainer; var container = element as ExportContainer;
if (container != null) { if (container != null) {
// Console.WriteLine("recursive"); // Console.WriteLine("recursive");
var containerCanvas = documentCreator.CreateContainer(container); var containerCanvas = FixedDocumentCreator.CreateContainer(container);
CanvasHelper.SetPosition(containerCanvas,new Point(container.Location.X,container.Location.Y)); CanvasHelper.SetPosition(containerCanvas,new Point(container.Location.X,container.Location.Y));
myCanvas.Children.Add(containerCanvas); myCanvas.Children.Add(containerCanvas);
// Console.WriteLine("call recursive"); // Console.WriteLine("call recursive");
@ -77,7 +71,7 @@ namespace ICSharpCode.Reporting.Exporter.Visitors
public override void Visit(ExportText exportColumn){ public override void Visit(ExportText exportColumn){
var textBlock = documentCreator.CreateTextBlock((ExportText)exportColumn,ShouldSetBackcolor(exportColumn)); var textBlock = FixedDocumentCreator.CreateTextBlock((ExportText)exportColumn,ShouldSetBackcolor(exportColumn));
CanvasHelper.SetPosition(textBlock,new Point(exportColumn.Location.X,exportColumn.Location.Y)); CanvasHelper.SetPosition(textBlock,new Point(exportColumn.Location.X,exportColumn.Location.Y));
UIElement = textBlock; UIElement = textBlock;
} }
@ -86,7 +80,7 @@ namespace ICSharpCode.Reporting.Exporter.Visitors
public override void Visit(ExportLine exportGraphics) public override void Visit(ExportLine exportGraphics)
{ {
var pen = documentCreator.CreateWpfPen(exportGraphics); var pen = FixedDocumentCreator.CreateWpfPen(exportGraphics);
pen.Thickness = exportGraphics.Thickness; pen.Thickness = exportGraphics.Thickness;
pen.DashStyle = FixedDocumentCreator.DashStyle(exportGraphics); pen.DashStyle = FixedDocumentCreator.DashStyle(exportGraphics);
pen.StartLineCap = FixedDocumentCreator.LineCap(exportGraphics.StartLineCap); pen.StartLineCap = FixedDocumentCreator.LineCap(exportGraphics.StartLineCap);

Loading…
Cancel
Save