Browse Source

WpfVisitor can Display Image

pull/637/merge
Peter Forstmeier 10 years ago
parent
commit
abaaaf8a12
  1. 1
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/DesignableItems/BaseImageItem.cs
  2. 1
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/Designer/ImageDesigner.cs
  3. 3
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj
  4. 4
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/AbstractVisitor.cs
  5. 1
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/IVisitor.cs
  6. 5
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Factories/ExportColumnFactory.cs
  7. 18
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseRowItem.cs
  8. 25
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseTextItem.cs
  9. 30
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ExportExtension.cs
  10. 73
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/Graphics/BaseImageItem.cs
  11. 11
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/PrintableItem.cs
  12. 19
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportContainer.cs
  13. 44
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportSettings.cs
  14. 6
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/Converter/ContainerConverter.cs
  15. 11
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportColumn.cs
  16. 34
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportImage.cs
  17. 1
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportText.cs
  18. 33
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Wpf/Visitor/WpfVisitor.cs

1
src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/DesignableItems/BaseImageItem.cs

@ -12,7 +12,6 @@ using System.ComponentModel; @@ -12,7 +12,6 @@ using System.ComponentModel;
using System.Drawing;
using System.Xml.Serialization;
using ICSharpCode.Reporting.Addin.Globals;
using ICSharpCode.Reports.Addin.TypeProviders;
namespace ICSharpCode.Reporting.Addin.DesignableItems
{

1
src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/Designer/ImageDesigner.cs

@ -10,7 +10,6 @@ using System; @@ -10,7 +10,6 @@ using System;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.Windows.Forms.Design;
using ICSharpCode.Reporting.Addin.Globals;
using ICSharpCode.Reporting.Addin.TypeProvider;
namespace ICSharpCode.Reporting.Addin.Designer

3
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj

@ -147,8 +147,10 @@ @@ -147,8 +147,10 @@
<Compile Include="Src\Globals\GlobalValues.cs" />
<Compile Include="Src\Interfaces\IReportModel.cs" />
<Compile Include="Src\Items\BaseTextItem.cs" />
<Compile Include="Src\Items\ExportExtension.cs" />
<Compile Include="Src\Items\Graphics\BaseCircleItem.cs" />
<Compile Include="Src\Items\Graphics\BaseGraphics.cs" />
<Compile Include="Src\Items\Graphics\BaseImageItem.cs" />
<Compile Include="Src\Items\Graphics\BaseLineItem.cs" />
<Compile Include="Src\Items\Graphics\BaseRectangleItem.cs" />
<Compile Include="Src\Items\GroupColumn.cs" />
@ -164,6 +166,7 @@ @@ -164,6 +166,7 @@
<Compile Include="Src\PageBuilder\ExportColumns\ExportCircle.cs" />
<Compile Include="Src\PageBuilder\ExportColumns\ExportColumn.cs" />
<Compile Include="Src\PageBuilder\ExportColumns\ExportContainer.cs" />
<Compile Include="Src\PageBuilder\ExportColumns\ExportImage.cs" />
<Compile Include="Src\PageBuilder\ExportColumns\ExportLine.cs" />
<Compile Include="Src\PageBuilder\ExportColumns\ExportRectangle.cs" />
<Compile Include="Src\PageBuilder\ExportColumns\ExportRow.cs" />

4
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/AbstractVisitor.cs

@ -66,6 +66,10 @@ namespace ICSharpCode.Reporting.Exporter.Visitors @@ -66,6 +66,10 @@ namespace ICSharpCode.Reporting.Exporter.Visitors
}
public virtual void Visit (ExportImage exportImage) {
}
public virtual void Visit(ExportLine exportGraphics){
}

1
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/IVisitor.cs

@ -29,5 +29,6 @@ namespace ICSharpCode.Reporting.Exporter.Visitors @@ -29,5 +29,6 @@ namespace ICSharpCode.Reporting.Exporter.Visitors
void Visit(ExportLine exportGraphics);
void Visit (ExportRectangle exportRectangle);
void Visit (ExportCircle exportCircle);
void Visit (ExportImage exportImage);
}
}

5
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Factories/ExportColumnFactory.cs

@ -25,9 +25,8 @@ namespace ICSharpCode.Reporting.Factories @@ -25,9 +25,8 @@ namespace ICSharpCode.Reporting.Factories
/// <summary>
/// Description of ExportColumnFactory.
/// </summary>
class ExportColumnFactory
{
static class ExportColumnFactory{
public static IExportColumn CreateItem (IPrintableObject item) {
var export = item.CreateExportColumn();
return export;

18
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseRowItem.cs

@ -31,14 +31,16 @@ namespace ICSharpCode.Reporting.Items @@ -31,14 +31,16 @@ namespace ICSharpCode.Reporting.Items
public override IExportColumn CreateExportColumn()
{
var er = new ExportRow(){
Name = this.Name,
Size = this.Size,
Location = this.Location,
CanGrow = this.CanGrow,
BackColor = this.BackColor,
DesiredSize = this.Size
};
var er = new ExportRow();
er.ToExportItem(this);
// var er = new ExportRow(){
// Name = this.Name,
// Size = this.Size,
// Location = this.Location,
// CanGrow = this.CanGrow,
// BackColor = this.BackColor,
// DesiredSize = this.Size
// };
return er;
}
}

25
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseTextItem.cs

@ -80,22 +80,15 @@ namespace ICSharpCode.Reporting.Items @@ -80,22 +80,15 @@ namespace ICSharpCode.Reporting.Items
public override IExportColumn CreateExportColumn()
{
var ex = new ExportText();
ex.Name = Name;
ex.Location = Location;
ex.ForeColor = ForeColor;
ex.BackColor = BackColor;
ex.FrameColor = FrameColor;
ex.Size = Size;
ex.Font = Font;
ex.Text = Text;
ex.FormatString = FormatString;
ex.ContentAlignment = ContentAlignment;
ex.TextAlignment = TextAlignment;
ex.DataType = DataType;
ex.CanGrow = CanGrow;
ex.DrawBorder = DrawBorder;
return ex;
var export = new ExportText();
export.ToExportItem(this);
export.Font = Font;
export.Text = Text;
export.FormatString = FormatString;
export.ContentAlignment = ContentAlignment;
export.TextAlignment = TextAlignment;
export.DataType = DataType;
return export;
}
}
}

30
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ExportExtension.cs

@ -0,0 +1,30 @@ @@ -0,0 +1,30 @@
/*
* Created by SharpDevelop.
* User: Peter Forstmeier
* Date: 21.06.2015
* Time: 17:01
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using ICSharpCode.Reporting.PageBuilder.ExportColumns;
namespace ICSharpCode.Reporting.Items
{
/// <summary>
/// Description of ExportExtension.
/// </summary>
public static class ExportExtension
{
public static void ToExportItem (this ExportColumn export, PrintableItem item) {
export.Name = item.Name;
export.Location = item.Location;
export.Size = item.Size;
export.ForeColor = item.ForeColor;
export.FrameColor = item.FrameColor;
export.BackColor = item.BackColor;
export.CanGrow = item.CanGrow;
export.DrawBorder = item.DrawBorder;
}
}
}

73
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/Graphics/BaseImageItem.cs

@ -0,0 +1,73 @@ @@ -0,0 +1,73 @@
/*
* Created by SharpDevelop.
* User: Peter Forstmeier
* Date: 21.06.2015
* Time: 11:54
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Drawing;
using ICSharpCode.Reporting.Interfaces.Export;
using ICSharpCode.Reporting.PageBuilder.ExportColumns;
namespace ICSharpCode.Reporting.Items
{
/// <summary>
/// Description of BaseImageItem.
/// </summary>
public class BaseImageItem:PrintableItem
{
Image image;
public BaseImageItem()
{
}
#region IExportColumnBuilder implementation
public override IExportColumn CreateExportColumn(){
var export = new ExportImage();
export.ToExportItem(this);
export.Image = Image;
export.ScaleImageToSize = ScaleImageToSize;
return export;
}
#endregion
static Bitmap FakeImage(Size size, string text){
var b = new Bitmap (size.Width,size.Height);
using (Graphics g = Graphics.FromImage (b)){
g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias;
g.DrawRectangle (new Pen(Color.Black, 1),
1,1,size.Width -2,size.Height -2);
g.DrawString(text,new Font("Microsoft Sans Serif",
16,
FontStyle.Regular,
GraphicsUnit.Point),
new SolidBrush(Color.Gray),
new RectangleF(2,2,size.Width,size.Height) );
}
return b;
}
public Image Image {
get {
string text = "<Dummy Design Image>";
this.image = FakeImage(Size, text);
return this.image;
}
set {
this.image = value;
}
}
public bool ScaleImageToSize {get;set;}
}
}

11
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/PrintableItem.cs

@ -18,7 +18,6 @@ @@ -18,7 +18,6 @@
using System;
using System.Drawing;
using ICSharpCode.Reporting.Globals;
using ICSharpCode.Reporting.Interfaces;
using ICSharpCode.Reporting.Interfaces.Export;
@ -39,11 +38,6 @@ namespace ICSharpCode.Reporting.Items @@ -39,11 +38,6 @@ namespace ICSharpCode.Reporting.Items
public Size Size { get; set; }
public virtual IExportColumn CreateExportColumn()
{
return null;
}
public Color ForeColor {get;set;}
public Color BackColor {get;set;}
@ -54,5 +48,10 @@ namespace ICSharpCode.Reporting.Items @@ -54,5 +48,10 @@ namespace ICSharpCode.Reporting.Items
public bool DrawBorder {get;set;}
public virtual IExportColumn CreateExportColumn(){
return null;
}
}
}

19
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportContainer.cs

@ -44,14 +44,17 @@ namespace ICSharpCode.Reporting.Items @@ -44,14 +44,17 @@ namespace ICSharpCode.Reporting.Items
public override IExportColumn CreateExportColumn()
{
return new ExportContainer(){
Name = this.Name,
Size = this.Size,
Location = this.Location,
CanGrow = this.CanGrow,
BackColor = this.BackColor,
DesiredSize = this.Size
};
var export = new ExportContainer();
export.ToExportItem(this);
return export;
// return new ExportContainer(){
// Name = this.Name,
// Size = this.Size,
// Location = this.Location,
// CanGrow = this.CanGrow,
// BackColor = this.BackColor,
// DesiredSize = this.Size
// };
}
}
}

44
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportSettings.cs

@ -20,7 +20,6 @@ using System; @@ -20,7 +20,6 @@ using System;
using System.ComponentModel;
using System.Drawing;
using System.IO;
using System.Xml.Serialization;
using ICSharpCode.Reporting.Globals;
using ICSharpCode.Reporting.Interfaces;
@ -46,9 +45,7 @@ namespace ICSharpCode.Reporting.Items @@ -46,9 +45,7 @@ namespace ICSharpCode.Reporting.Items
}
void BaseValues()
{
void BaseValues(){
// this.UseStandardPrinter = true;
// this.GraphicsUnit = GraphicsUnit.Pixel;
// this.Padding = new Padding(5);
@ -80,10 +77,9 @@ namespace ICSharpCode.Reporting.Items @@ -80,10 +77,9 @@ namespace ICSharpCode.Reporting.Items
string reportName;
[Category("Base Settings")]
[DefaultValueAttribute ("")]
public string ReportName
{
// [Category("Base Settings")]
// [DefaultValueAttribute ("")]
public string ReportName{
get {
if (string.IsNullOrEmpty(reportName)) {
reportName = GlobalValues.DefaultReportName;
@ -97,10 +93,9 @@ namespace ICSharpCode.Reporting.Items @@ -97,10 +93,9 @@ namespace ICSharpCode.Reporting.Items
string fileName;
[Category("Base Settings")]
[XmlIgnoreAttribute]
public string FileName
{
// [Category("Base Settings")]
// [XmlIgnoreAttribute]
public string FileName{
get {
if (String.IsNullOrEmpty(fileName)) {
fileName = GlobalValues.PlainFileName;
@ -112,40 +107,35 @@ namespace ICSharpCode.Reporting.Items @@ -112,40 +107,35 @@ namespace ICSharpCode.Reporting.Items
}
}
//
// [Browsable(true), Category("Base Settings")]
// public ReportType ReportType {get;set;}
//
[Browsable(true), Category("Base Settings")]
public PushPullModel DataModel {get;set;}
#endregion
#region Pagesettings
[Category("Page Settings")]
// [Category("Page Settings")]
public int BottomMargin {get;set;}
[Category("Page Settings")]
// [Category("Page Settings")]
public int TopMargin {get;set;}
[Category("Page Settings")]
// [Category("Page Settings")]
public int LeftMargin {get;set;}
[Category("Page Settings")]
// [Category("Page Settings")]
public int RightMargin {get;set;}
Size pageSize;
[Category("Page Settings")]
// [Category("Page Settings")]
public Size PageSize {
get {
return !Landscape ? pageSize : new Size(pageSize.Height, pageSize.Width);
@ -154,7 +144,7 @@ namespace ICSharpCode.Reporting.Items @@ -154,7 +144,7 @@ namespace ICSharpCode.Reporting.Items
}
[Category("Page Settings")]
// [Category("Page Settings")]
public bool Landscape {get;set;}
@ -162,12 +152,6 @@ namespace ICSharpCode.Reporting.Items @@ -162,12 +152,6 @@ namespace ICSharpCode.Reporting.Items
#region
// [Category("Data")]
// [Category("Parameters")]
// [EditorAttribute ( typeof(ParameterCollectionEditor),
// typeof(System.Drawing.Design.UITypeEditor) )]
public ParameterCollection ParameterCollection {get; private set;}
public SortColumnCollection SortColumnsCollection {get;private set;}

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

@ -48,11 +48,7 @@ namespace ICSharpCode.Reporting.PageBuilder.Converter @@ -48,11 +48,7 @@ namespace ICSharpCode.Reporting.PageBuilder.Converter
public List<IExportColumn> CreateConvertedList(List<IPrintableObject> items){
var itemsList = new List<IExportColumn>();
// var aa = items.OrderBy(x => x.Location.Y);
// foreach (var el in aa) {
// Console.WriteLine("{0} - {1}",el.Name,el.Location);
// }
// foreach (var element in aa) {
foreach (var element in items) {
var exportColumn = ExportColumnFactory.CreateItem(element);
var ec = element as IReportContainer;

11
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportColumn.cs

@ -34,18 +34,12 @@ namespace ICSharpCode.Reporting.PageBuilder.ExportColumns @@ -34,18 +34,12 @@ namespace ICSharpCode.Reporting.PageBuilder.ExportColumns
BackColor = Color.White;
}
public string Name {get;set;}
public Size Size {get;set;}
public Point Location {get;set;}
public virtual IArrangeStrategy GetArrangeStrategy ()
{
return null;
}
public Size DesiredSize {get;set;}
public Color ForeColor {get;set;}
@ -66,6 +60,11 @@ namespace ICSharpCode.Reporting.PageBuilder.ExportColumns @@ -66,6 +60,11 @@ namespace ICSharpCode.Reporting.PageBuilder.ExportColumns
}
}
public virtual IArrangeStrategy GetArrangeStrategy ()
{
return null;
}
public virtual IMeasurementStrategy MeasurementStrategy()
{
throw new NotImplementedException();

34
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportImage.cs

@ -0,0 +1,34 @@ @@ -0,0 +1,34 @@
/*
* Created by SharpDevelop.
* User: Peter Forstmeier
* Date: 21.06.2015
* Time: 11:57
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Drawing;
using ICSharpCode.Reporting.Exporter.Visitors;
namespace ICSharpCode.Reporting.PageBuilder.ExportColumns
{
/// <summary>
/// Description of ExportImage.
/// </summary>
public class ExportImage:ExportColumn,IAcceptor
{
public ExportImage()
{
}
#region IAcceptor implementation
public void Accept(IVisitor visitor){
visitor.Visit(this);
}
#endregion
public Image Image {get;set;}
public bool ScaleImageToSize {get;set;}
}
}

1
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportText.cs

@ -47,6 +47,7 @@ namespace ICSharpCode.Reporting.PageBuilder.ExportColumns @@ -47,6 +47,7 @@ namespace ICSharpCode.Reporting.PageBuilder.ExportColumns
{
}
public void Accept(IVisitor visitor)
{
visitor.Visit(this);

33
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Wpf/Visitor/WpfVisitor.cs

@ -18,11 +18,14 @@ @@ -18,11 +18,14 @@
using System;
using System.Collections.Generic;
using System.Drawing.Imaging;
using System.IO;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using ICSharpCode.Reporting.BaseClasses;
using ICSharpCode.Reporting.Exporter.Visitors;
using ICSharpCode.Reporting.Interfaces.Export;
@ -146,6 +149,36 @@ namespace ICSharpCode.Reporting.WpfReportViewer.Visitor @@ -146,6 +149,36 @@ namespace ICSharpCode.Reporting.WpfReportViewer.Visitor
}
public override void Visit(ExportImage exportImage)
{
var visual = new DrawingVisual();
using (var dc = visual.RenderOpen()){
var iss = ToBitmapSource(exportImage.Image);
dc.DrawImage(iss,new Rect(exportImage.Location.ToWpf(),
new Size(exportImage.DesiredSize.Width,exportImage.DesiredSize.Height)));
}
var drawingElement = new DrawingElement(visual);
UIElement = drawingElement;
}
static BitmapSource ToBitmapSource(System.Drawing.Image source){
using (MemoryStream stream = new MemoryStream()) {
source.Save(stream, ImageFormat.Bmp);
stream.Position = 0;
BitmapImage result = new BitmapImage();
result.BeginInit();
result.CacheOption = BitmapCacheOption.OnLoad;
result.StreamSource = stream;
result.EndInit();
result.Freeze();
return result;
}
}
public override void Visit(ExportLine exportLine){
var pen = FixedDocumentCreator.CreateWpfPen(exportLine);

Loading…
Cancel
Save