Browse Source

Merge remote branch 'origin/reports' into 4.0

pull/14/head
Daniel Grunwald 15 years ago
parent
commit
05e1e03657
  1. 15
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/ICSharpCode.Reports.Addin.csproj
  2. 47
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportItems/AbstractItem.cs
  3. 12
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportItems/BaseCircleItem.cs
  4. 76
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportItems/BaseDataItem.cs
  5. 109
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportItems/BaseImageItem.cs
  6. 71
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportItems/BaseLine.cs
  7. 58
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportItems/BaseRectangleItem.cs
  8. 69
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportItems/BaseRowItem.cs
  9. 64
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportItems/BaseSection.cs
  10. 64
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportItems/BaseTableItem.cs
  11. 71
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportItems/BaseTextItem.cs
  12. 70
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportItems/CircleItemTypeProvider.cs
  13. 72
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportItems/GroupHeader.cs
  14. 64
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportItems/TypeProviders/AbstractItemTypeProvider.cs
  15. 87
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportItems/TypeProviders/DataItemTypeProvider.cs
  16. 83
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportItems/TypeProviders/GroupedRowTypeProvider.cs
  17. 86
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportItems/TypeProviders/ImageItemTypeProvider.cs
  18. 83
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportItems/TypeProviders/LineItemTypeDescriptor.cs
  19. 13
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportItems/TypeProviders/RectangleItemTypeProvider.cs
  20. 80
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportItems/TypeProviders/RowItemTypeProvider.cs
  21. 76
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportItems/TypeProviders/SectionItemTypeProvider.cs
  22. 78
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportItems/TypeProviders/TableItemTypeProvider.cs
  23. 79
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportItems/TypeProviders/TextItemTypeProvider.cs
  24. 50
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseItems/BaseGraphicItem.cs
  25. 22
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseItems/Graphics/BaseLineItem.cs
  26. 32
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseItems/Graphics/BaseRectangleItem.cs
  27. 5
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/ExportColumns/BaseExportColumn.cs
  28. 6
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/ExportColumns/ExportGraphic.cs
  29. 2
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/ExportColumns/ExportText.cs
  30. 1
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Printing/Graphics/BaseLine.cs
  31. 3
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Printing/Graphics/BaseShape.cs
  32. 1
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Printing/Graphics/Border.cs
  33. 52
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Printing/Graphics/RectangleShape.cs
  34. 4
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/ReportingLanguage/IntegrationTests/AggregateFunctionsFixture.cs

15
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/ICSharpCode.Reports.Addin.csproj

@ -145,6 +145,7 @@
<Compile Include="Project\ReportItems\BaseDataItem.cs"> <Compile Include="Project\ReportItems\BaseDataItem.cs">
<SubType>Component</SubType> <SubType>Component</SubType>
</Compile> </Compile>
<Compile Include="Project\ReportItems\CircleItemTypeProvider.cs" />
<Compile Include="Project\ReportItems\GroupFooter.cs" /> <Compile Include="Project\ReportItems\GroupFooter.cs" />
<Compile Include="Project\ReportItems\BaseImageItem.cs"> <Compile Include="Project\ReportItems\BaseImageItem.cs">
<SubType>Component</SubType> <SubType>Component</SubType>
@ -171,7 +172,16 @@
<SubType>Component</SubType> <SubType>Component</SubType>
</Compile> </Compile>
<Compile Include="Project\ReportItems\GroupHeader.cs" /> <Compile Include="Project\ReportItems\GroupHeader.cs" />
<Compile Include="Project\ReportItems\RectangleItemTypeProvider.cs" /> <Compile Include="Project\ReportItems\TypeProviders\AbstractItemTypeProvider.cs" />
<Compile Include="Project\ReportItems\TypeProviders\DataItemTypeProvider.cs" />
<Compile Include="Project\ReportItems\TypeProviders\GroupedRowTypeProvider.cs" />
<Compile Include="Project\ReportItems\TypeProviders\ImageItemTypeProvider.cs" />
<Compile Include="Project\ReportItems\TypeProviders\LineItemTypeDescriptor.cs" />
<Compile Include="Project\ReportItems\TypeProviders\RectangleItemTypeProvider.cs" />
<Compile Include="Project\ReportItems\TypeProviders\RowItemTypeProvider.cs" />
<Compile Include="Project\ReportItems\TypeProviders\SectionItemTypeProvider.cs" />
<Compile Include="Project\ReportItems\TypeProviders\TableItemTypeProvider.cs" />
<Compile Include="Project\ReportItems\TypeProviders\TextItemTypeProvider.cs" />
<Compile Include="Project\ReportManagers\BaseManager.cs" /> <Compile Include="Project\ReportManagers\BaseManager.cs" />
<Compile Include="Project\ReportManagers\StandartPreviewManager.cs" /> <Compile Include="Project\ReportManagers\StandartPreviewManager.cs" />
<Compile Include="Project\ReportWizard\Generators\AbstractReportGenerator.cs" /> <Compile Include="Project\ReportWizard\Generators\AbstractReportGenerator.cs" />
@ -338,5 +348,8 @@
<Install>true</Install> <Install>true</Install>
</BootstrapperPackage> </BootstrapperPackage>
</ItemGroup> </ItemGroup>
<ItemGroup>
<Folder Include="Project\ReportItems\TypeProviders" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" /> <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" />
</Project> </Project>

47
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportItems/AbstractItem.cs

@ -6,6 +6,7 @@ using System.Collections.Generic;
using System.ComponentModel; using System.ComponentModel;
using System.Drawing; using System.Drawing;
using ICSharpCode.Reports.Addin.TypeProviders;
using ICSharpCode.Reports.Core; using ICSharpCode.Reports.Core;
namespace ICSharpCode.Reports.Addin namespace ICSharpCode.Reports.Addin
@ -85,52 +86,6 @@ namespace ICSharpCode.Reports.Addin
} }
} }
internal class AbstractItemTypeProvider : TypeDescriptionProvider {
public AbstractItemTypeProvider() : base(TypeDescriptor.GetProvider(typeof(AbstractItem)))
{
}
public AbstractItemTypeProvider(TypeDescriptionProvider parent): base(parent)
{
}
public override ICustomTypeDescriptor GetTypeDescriptor(Type objectType, object instance)
{
ICustomTypeDescriptor td = base.GetTypeDescriptor(objectType, instance);
return new AbstractItemTypeDescriptor(td, instance);
}
}
internal class AbstractItemTypeDescriptor : CustomTypeDescriptor
{
// private AbstractItem _instance;
public AbstractItemTypeDescriptor(ICustomTypeDescriptor parent, object instance)
: base(parent)
{
// _instance = instance as AbstractItem;
}
public override PropertyDescriptorCollection GetProperties()
{
return GetProperties(null);
}
public override PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
PropertyDescriptorCollection props = base.GetProperties(attributes);
List<PropertyDescriptor> allProperties = new List<PropertyDescriptor>();
foreach (PropertyDescriptor p in props)
{
allProperties.Add(p);
}
return new PropertyDescriptorCollection(allProperties.ToArray());
}
}
} }

12
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportItems/BaseCircleItem.cs

@ -2,7 +2,6 @@
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt) // This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System; using System;
using System.Collections.Generic;
using System.ComponentModel; using System.ComponentModel;
using System.Drawing; using System.Drawing;
using System.Drawing.Drawing2D; using System.Drawing.Drawing2D;
@ -28,7 +27,7 @@ namespace ICSharpCode.Reports.Addin
this.thickness = 1; this.thickness = 1;
this.dashStyle = DashStyle.Solid; this.dashStyle = DashStyle.Solid;
this.Size = new Size(GlobalValues.PreferedSize.Width,2* GlobalValues.PreferedSize.Height); this.Size = new Size(GlobalValues.PreferedSize.Width,2* GlobalValues.PreferedSize.Height);
TypeDescriptor.AddProvider(new RectangleItemTypeProvider(), typeof(BaseCircleItem)); TypeDescriptor.AddProvider(new CircleItemTypeProvider(), typeof(BaseCircleItem));
} }
@ -62,15 +61,6 @@ namespace ICSharpCode.Reports.Addin
} }
private BaseLine Baseline()
{
if (this.BackColor == GlobalValues.DefaultBackColor) {
return new BaseLine (this.ForeColor,this.DashStyle,this.Thickness);
} else {
return new BaseLine (this.BackColor,this.DashStyle,this.Thickness);
}
}
[Browsable(true), [Browsable(true),
Category("Appearance"), Category("Appearance"),

76
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportItems/BaseDataItem.cs

@ -2,12 +2,10 @@
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt) // This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System; using System;
using System.Collections.Generic;
using System.ComponentModel; using System.ComponentModel;
using System.Drawing; using System.Drawing;
using ICSharpCode.Reports.Addin.Designer; using ICSharpCode.Reports.Addin.TypeProviders;
using ICSharpCode.Reports.Core;
namespace ICSharpCode.Reports.Addin namespace ICSharpCode.Reports.Addin
@ -72,76 +70,4 @@ namespace ICSharpCode.Reports.Addin
} }
} }
internal class DataItemTypeProvider : TypeDescriptionProvider
{
public DataItemTypeProvider() : base(TypeDescriptor.GetProvider(typeof(AbstractItem)))
{
}
public override ICustomTypeDescriptor GetTypeDescriptor(Type objectType, object instance)
{
ICustomTypeDescriptor td = base.GetTypeDescriptor(objectType,instance);
return new DataItemTypeDescriptor(td, instance);
}
}
internal class DataItemTypeDescriptor : CustomTypeDescriptor
{
public DataItemTypeDescriptor(ICustomTypeDescriptor parent, object instance)
: base(parent)
{
}
public override PropertyDescriptorCollection GetProperties()
{
return GetProperties(null);
}
public override PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
PropertyDescriptorCollection props = base.GetProperties(attributes);
List<PropertyDescriptor> allProperties = new List<PropertyDescriptor>();
DesignerHelper.AddDefaultProperties(allProperties,props);
DesignerHelper.AddTextbasedProperties(allProperties,props);
PropertyDescriptor prop = props.Find("Text",true);
allProperties.Add(prop);
prop = props.Find("DrawBorder",true);
allProperties.Add(prop);
prop = props.Find("FrameColor",true);
allProperties.Add(prop);
prop = props.Find("ForeColor",true);
allProperties.Add(prop);
prop = props.Find("Visible",true);
allProperties.Add(prop);
prop = props.Find("ColumnName",true);
allProperties.Add(prop);
prop = props.Find("BaseTableName",true);
allProperties.Add(prop);
prop = props.Find("DbValue",true);
allProperties.Add(prop);
prop = props.Find("NullValue",true);
allProperties.Add(prop);
return new PropertyDescriptorCollection(allProperties.ToArray());
}
}
} }

109
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportItems/BaseImageItem.cs

@ -2,16 +2,14 @@
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt) // This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System; using System;
using System.Collections.Generic;
using System.ComponentModel; using System.ComponentModel;
using System.Drawing; using System.Drawing;
using System.Drawing.Design; using System.Drawing.Design;
using System.Globalization;
using System.IO; using System.IO;
using System.Windows.Forms.Design; using System.Windows.Forms.Design;
using System.Xml.Serialization; using System.Xml.Serialization;
using ICSharpCode.Reports.Addin.Designer; using ICSharpCode.Reports.Addin.TypeProviders;
using ICSharpCode.Reports.Core; using ICSharpCode.Reports.Core;
namespace ICSharpCode.Reports.Addin namespace ICSharpCode.Reports.Addin
@ -60,12 +58,10 @@ namespace ICSharpCode.Reports.Addin
if (this.scaleImageToSize) { if (this.scaleImageToSize) {
graphics.DrawImageUnscaled(this.Image,this.Location.X,this.Location.Y); graphics.DrawImageUnscaled(this.Image,this.Location.X,this.Location.Y);
} else { } else {
Image im = this.image;
if (im != null) {
graphics.DrawImage(this.Image,this.ClientRectangle); graphics.DrawImage(this.Image,this.ClientRectangle);
} }
} }
}
#region Property's #region Property's
@ -74,9 +70,11 @@ namespace ICSharpCode.Reports.Addin
public string ImageFileName { public string ImageFileName {
get { return imageFileName; } get { return imageFileName; }
set { imageFileName = value; set { imageFileName = value;
if (!String.IsNullOrEmpty(reportFileName)) {
this.relativeFileName = FileUtility.GetRelativePath(Path.GetFullPath(this.reportFileName),Path.GetFullPath(this.ImageFileName)); this.relativeFileName = FileUtility.GetRelativePath(Path.GetFullPath(this.reportFileName),Path.GetFullPath(this.ImageFileName));
} }
} }
}
private static Bitmap ErrorBitmap(Size size) private static Bitmap ErrorBitmap(Size size)
@ -138,17 +136,17 @@ namespace ICSharpCode.Reports.Addin
if (this.imageSource == GlobalEnums.ImageSource.Database ) { if (this.imageSource == GlobalEnums.ImageSource.Database ) {
text = "<Database>"; text = "<Database>";
} }
this.image = FakeImage(base.Size,text);
if (this.image != null) {
return image;
} else {
if (!String.IsNullOrEmpty(imageFileName)) { if (!String.IsNullOrEmpty(imageFileName)) {
this.image = this.LoadImage(); this.image = this.LoadImage();
return this.image; return this.image;
} else
{
this.image = FakeImage(base.Size,text);
} }
return this.image;
} }
return null;
}
set { set {
this.image = value; this.image = value;
this.imageSource = GlobalEnums.ImageSource.External; this.imageSource = GlobalEnums.ImageSource.External;
@ -208,20 +206,20 @@ namespace ICSharpCode.Reports.Addin
[XmlIgnoreAttribute] [XmlIgnoreAttribute]
[Category("Image")] [Category("Image")]
// [Browsable(false)] [Browsable(false)]
public string AbsoluteFileName public string AbsoluteFileName
{ {
get { get {
//D:\SharpDevelop3.0_WorkingCopy\SharpDevelop\samples\SharpDevelopReports\SampleReports\Logos
if (!string.IsNullOrEmpty(relativeFileName)) { if (!string.IsNullOrEmpty(relativeFileName)) {
Console.WriteLine(""); Console.WriteLine("");
string testFileName = FileUtility.NormalizePath(Path.Combine(Path.GetDirectoryName(this.reportFileName),this.relativeFileName));
string testFileName = String.Empty;
if (! String.IsNullOrEmpty(reportFileName)) {
testFileName = FileUtility.NormalizePath(Path.Combine(Path.GetDirectoryName(this.reportFileName),this.relativeFileName));
}
if (File.Exists(testFileName)){ if (File.Exists(testFileName)){
Console.WriteLine("Image found with Relative Filename"); Console.WriteLine("Image found with Relative Filename");
Console.WriteLine("Report Filename {0}",this.reportFileName);
Console.WriteLine("Relative Filename {0}",this.relativeFileName);
Console.WriteLine("Image Filename {0}",this.ImageFileName);
return testFileName; return testFileName;
} else { } else {
Console.WriteLine("AbsoluteFileName can't load image"); Console.WriteLine("AbsoluteFileName can't load image");
@ -238,78 +236,5 @@ namespace ICSharpCode.Reports.Addin
} }
internal class ImageItemTypeProvider : TypeDescriptionProvider
{
public ImageItemTypeProvider() : base(TypeDescriptor.GetProvider(typeof(AbstractItem)))
{
}
// public ImageItemTypeProvider(TypeDescriptionProvider parent): base(parent)
// {
//
// }
public override ICustomTypeDescriptor GetTypeDescriptor(Type objectType, object instance)
{
ICustomTypeDescriptor td = base.GetTypeDescriptor(objectType,instance);
return new ImageItemTypeDescriptor(td, instance);
}
}
internal class ImageItemTypeDescriptor : CustomTypeDescriptor
{
public ImageItemTypeDescriptor(ICustomTypeDescriptor parent, object instance)
: base(parent)
{
// instance = instance as BaseTextItem;
}
public override PropertyDescriptorCollection GetProperties()
{
return GetProperties(null);
}
public override PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
PropertyDescriptorCollection props = base.GetProperties(attributes);
List<PropertyDescriptor> allProperties = new List<PropertyDescriptor>();
DesignerHelper.AddDefaultProperties(allProperties,props);
PropertyDescriptor prop = prop = props.Find("imageFileName",true);
allProperties.Add(prop);
prop = props.Find("Image",true);
allProperties.Add(prop);
prop = props.Find("ScaleImageToSize",true);
allProperties.Add(prop);
prop = props.Find("ImageSource",true);
allProperties.Add(prop);
prop = props.Find("ReportFileName",true);
allProperties.Add(prop);
prop = props.Find("RelativeFileName",true);
allProperties.Add(prop);
prop = props.Find("AbsoluteFileName",true);
allProperties.Add(prop);
prop = props.Find("ColumnName",true);
allProperties.Add(prop);
prop = props.Find("BaseTableName",true);
allProperties.Add(prop);
return new PropertyDescriptorCollection(allProperties.ToArray());
}
}
} }

71
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportItems/BaseLine.cs

@ -2,12 +2,11 @@
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt) // This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System; using System;
using System.Collections.Generic;
using System.ComponentModel; using System.ComponentModel;
using System.Drawing; using System.Drawing;
using System.Drawing.Drawing2D; using System.Drawing.Drawing2D;
using ICSharpCode.Reports.Addin.Designer; using ICSharpCode.Reports.Addin.TypeProviders;
namespace ICSharpCode.Reports.Addin namespace ICSharpCode.Reports.Addin
{ {
@ -156,75 +155,7 @@ namespace ICSharpCode.Reports.Addin
} }
internal class LineItemTypeProvider : TypeDescriptionProvider
{
public LineItemTypeProvider() : base(TypeDescriptor.GetProvider(typeof(AbstractItem)))
{
}
// public LineItemTypeProvider(TypeDescriptionProvider parent): base(parent)
// {
//
// }
public override ICustomTypeDescriptor GetTypeDescriptor(Type objectType, object instance)
{
ICustomTypeDescriptor td = base.GetTypeDescriptor(objectType,instance);
return new LineItemTypeDescriptor(td, instance);
}
}
internal class LineItemTypeDescriptor : CustomTypeDescriptor
{
// private BaseTextItem instance;
public LineItemTypeDescriptor(ICustomTypeDescriptor parent, object instance)
: base(parent)
{
// instance = instance as BaseTextItem;
}
public override PropertyDescriptorCollection GetProperties()
{
return GetProperties(null);
}
public override PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
PropertyDescriptorCollection props = base.GetProperties(attributes);
List<PropertyDescriptor> allProperties = new List<PropertyDescriptor>();
DesignerHelper.AddDefaultProperties(allProperties,props);
PropertyDescriptor prop = null;
prop = props.Find("ForeColor",true);
allProperties.Add(prop);
prop = props.Find("FromPoint",true);
allProperties.Add(prop);
prop = props.Find("ToPoint",true);
allProperties.Add(prop);
prop = props.Find("StartLineCap",true);
allProperties.Add(prop);
prop = props.Find("EndLineCap",true);
allProperties.Add(prop);
prop = props.Find("dashLineCap",true);
allProperties.Add(prop);
prop = props.Find("DashStyle",true);
allProperties.Add(prop);
prop = props.Find("Thickness",true);
allProperties.Add(prop);
return new PropertyDescriptorCollection(allProperties.ToArray());
}
}
} }

58
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportItems/BaseRectangleItem.cs

@ -6,6 +6,7 @@ using System.ComponentModel;
using System.Drawing; using System.Drawing;
using System.Drawing.Drawing2D; using System.Drawing.Drawing2D;
using ICSharpCode.Reports.Addin.TypeProviders;
using ICSharpCode.Reports.Core; using ICSharpCode.Reports.Core;
namespace ICSharpCode.Reports.Addin namespace ICSharpCode.Reports.Addin
@ -22,13 +23,14 @@ namespace ICSharpCode.Reports.Addin
private DashStyle dashStyle; private DashStyle dashStyle;
private float thickness; private float thickness;
private int cornerRadius;
public BaseRectangleItem() public BaseRectangleItem()
{ {
this.thickness = 1; this.thickness = 1;
this.dashStyle = DashStyle.Solid; this.dashStyle = DashStyle.Solid;
this.Size = new Size(GlobalValues.PreferedSize.Width,2* GlobalValues.PreferedSize.Height); this.Size = new Size(GlobalValues.PreferedSize.Width,2* GlobalValues.PreferedSize.Height);
cornerRadius = 1;
TypeDescriptor.AddProvider(new RectangleItemTypeProvider(), typeof(BaseRectangleItem)); TypeDescriptor.AddProvider(new RectangleItemTypeProvider(), typeof(BaseRectangleItem));
} }
@ -51,52 +53,60 @@ namespace ICSharpCode.Reports.Addin
Rectangle rect = new Rectangle(this.ClientRectangle.Left,this.ClientRectangle.Top, Rectangle rect = new Rectangle(this.ClientRectangle.Left,this.ClientRectangle.Top,
this.ClientRectangle.Right -1, this.ClientRectangle.Right -1,
this.ClientRectangle.Bottom -1); this.ClientRectangle.Bottom -1);
backgroundShape.FillShape(graphics, // backgroundShape.FillShape(graphics,
new SolidFillPattern(this.BackColor), // new SolidFillPattern(this.BackColor),
rect); // rect);
Border b = new Border(new BaseLine (this.ForeColor,System.Drawing.Drawing2D.DashStyle.Solid,1));
DrawFrame(graphics,b);
shape.DrawShape (graphics, Border b = new Border(new BaseLine (this.ForeColor,System.Drawing.Drawing2D.DashStyle.Solid,1));
this.Baseline(), // DrawFrame(graphics,b);
rect); BaseLine line = new BaseLine(base.ForeColor,DashStyle,Thickness,LineCap.Round,LineCap.Round,DashCap.Round);
using (Pen pen = line.CreatePen(line.Thickness)){
shape.CornerRadius = this.CornerRadius;
GraphicsPath path1 = shape.CreatePath(rect);
graphics.DrawPath(pen, path1);
} }
protected void DrawFrame (Graphics graphics,Border border) { // shape.DrawShape (graphics,
if (this.DrawBorder == true) { // this.Baseline(),
border.DrawBorder(graphics,this.ClientRectangle); // rect);
}
}
private BaseLine Baseline()
{
if (this.BackColor == GlobalValues.DefaultBackColor) {
return new BaseLine (this.ForeColor,this.DashStyle,this.Thickness);
} else {
return new BaseLine (this.BackColor,this.DashStyle,this.Thickness);
}
} }
[Browsable(true), [Browsable(true),
Category("Appearance"), Category("Appearance"),
Description("Linestyle")] Description("Linestyle")]
public DashStyle DashStyle { public DashStyle DashStyle {
get { return dashStyle; } get { return dashStyle; }
set { dashStyle = value; } set { dashStyle = value;
this.Invalidate();
}
} }
[Browsable(true), [Browsable(true),
Category("Appearance"), Category("Appearance"),
Description("Thickness of Line")] Description("Thickness of Line")]
public float Thickness { public float Thickness {
get { return thickness; } get { return thickness; }
set { thickness = value; } set { thickness = value;
this.Invalidate();
}
} }
[Browsable(true),
Category("Appearance"),
Description("Radius of Corners")]
public int CornerRadius
{
get{return this.cornerRadius;}
set{this.cornerRadius = value;
this.Invalidate();
}
} }
} }
}

69
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportItems/BaseRowItem.cs

@ -2,11 +2,10 @@
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt) // This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System; using System;
using System.Collections.Generic;
using System.ComponentModel; using System.ComponentModel;
using System.Drawing; using System.Drawing;
using ICSharpCode.Reports.Addin.Designer; using ICSharpCode.Reports.Addin.TypeProviders;
using ICSharpCode.Reports.Core; using ICSharpCode.Reports.Core;
namespace ICSharpCode.Reports.Addin namespace ICSharpCode.Reports.Addin
@ -74,70 +73,4 @@ namespace ICSharpCode.Reports.Addin
#endregion #endregion
} }
internal class RowItemTypeProvider : TypeDescriptionProvider
{
public RowItemTypeProvider() : base(TypeDescriptor.GetProvider(typeof(AbstractItem)))
{
}
public override ICustomTypeDescriptor GetTypeDescriptor(Type objectType, object instance)
{
ICustomTypeDescriptor td = base.GetTypeDescriptor(objectType,instance);
return new RowItemTypeDescriptor(td, instance);
}
}
internal class RowItemTypeDescriptor : CustomTypeDescriptor
{
public RowItemTypeDescriptor(ICustomTypeDescriptor parent, object instance)
: base(parent)
{
}
public override PropertyDescriptorCollection GetProperties()
{
return GetProperties(null);
}
public override PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
PropertyDescriptorCollection props = base.GetProperties(attributes);
List<PropertyDescriptor> allProperties = new List<PropertyDescriptor>();
DesignerHelper.AddDefaultProperties(allProperties,props);
PropertyDescriptor prop = null;
prop = props.Find("DrawBorder",true);
allProperties.Add(prop);
prop = props.Find("ForeColor",true);
allProperties.Add(prop);
prop = props.Find("Visible",true);
allProperties.Add(prop);
prop = props.Find("FrameColor",true);
allProperties.Add(prop);
prop = props.Find("Controls",true);
allProperties.Add(prop);
/*
prop = props.Find("Padding",true);
allProperties.Add(prop);
*/
prop = props.Find("AlternateBackColor",true);
allProperties.Add(prop);
prop = props.Find("ChangeBackColorEveryNRow",true);
allProperties.Add(prop);
return new PropertyDescriptorCollection(allProperties.ToArray());
}
}
} }

64
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportItems/BaseSection.cs

@ -7,6 +7,7 @@ using System.ComponentModel;
using System.Drawing; using System.Drawing;
using ICSharpCode.Reports.Addin.Designer; using ICSharpCode.Reports.Addin.Designer;
using ICSharpCode.Reports.Addin.TypeProviders;
using ICSharpCode.Reports.Core; using ICSharpCode.Reports.Core;
namespace ICSharpCode.Reports.Addin namespace ICSharpCode.Reports.Addin
@ -76,68 +77,5 @@ namespace ICSharpCode.Reports.Addin
#endregion #endregion
} }
internal class SectionItemTypeProvider : TypeDescriptionProvider
{
public SectionItemTypeProvider() : base(TypeDescriptor.GetProvider(typeof(AbstractItem)))
{
}
// public SectionItemTypeProvider(TypeDescriptionProvider parent): base(parent)
// {
// }
public override ICustomTypeDescriptor GetTypeDescriptor(Type objectType, object instance)
{
ICustomTypeDescriptor td = base.GetTypeDescriptor(objectType,instance);
return new SectionItemDescriptor(td, instance);
}
}
internal class SectionItemDescriptor : CustomTypeDescriptor
{
// private BaseTextItem instance;
public SectionItemDescriptor(ICustomTypeDescriptor parent, object instance)
: base(parent)
{
// instance = instance as BaseTextItem;
}
public override PropertyDescriptorCollection GetProperties()
{
return GetProperties(null);
}
public override PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
PropertyDescriptorCollection props = base.GetProperties(attributes);
List<PropertyDescriptor> allProperties = new List<PropertyDescriptor>();
DesignerHelper.AddDefaultProperties(allProperties,props);
PropertyDescriptor prop = null;
prop = props.Find("SectionOffset",true);
allProperties.Add(prop);
prop = props.Find("SectionMargin",true);
allProperties.Add(prop);
prop = props.Find("DrawBorder",true);
allProperties.Add(prop);
prop = props.Find("PageBreakAfter",true);
allProperties.Add(prop);
prop = props.Find("Controls",true);
allProperties.Add(prop);
prop = props.Find("FrameColor",true);
allProperties.Add(prop);
return new PropertyDescriptorCollection(allProperties.ToArray());
}
}
} }

64
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportItems/BaseTableItem.cs

@ -2,12 +2,10 @@
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt) // This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System; using System;
using System.Collections.Generic;
using System.ComponentModel; using System.ComponentModel;
using System.Drawing; using System.Drawing;
using System.Windows.Forms;
using ICSharpCode.Reports.Addin.Designer; using ICSharpCode.Reports.Addin.TypeProviders;
using ICSharpCode.Reports.Core; using ICSharpCode.Reports.Core;
namespace ICSharpCode.Reports.Addin namespace ICSharpCode.Reports.Addin
@ -53,65 +51,5 @@ namespace ICSharpCode.Reports.Addin
} }
internal class TableItemTypeProvider : TypeDescriptionProvider
{
public TableItemTypeProvider() : base(TypeDescriptor.GetProvider(typeof(AbstractItem)))
{
}
// public TableItemTypeProvider(TypeDescriptionProvider parent): base(parent)
// {
//
// }
public override ICustomTypeDescriptor GetTypeDescriptor(Type objectType, object instance)
{
ICustomTypeDescriptor td = base.GetTypeDescriptor(objectType,instance);
return new TableItemTypeDescriptor(td, instance);
}
}
internal class TableItemTypeDescriptor : CustomTypeDescriptor
{
public TableItemTypeDescriptor(ICustomTypeDescriptor parent, object instance)
: base(parent)
{
}
public override PropertyDescriptorCollection GetProperties()
{
return GetProperties(null);
}
public override PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
PropertyDescriptorCollection props = base.GetProperties(attributes);
List<PropertyDescriptor> allProperties = new List<PropertyDescriptor>();
DesignerHelper.AddDefaultProperties(allProperties,props);
PropertyDescriptor prop = null;
prop = props.Find("DrawBorder",true);
allProperties.Add(prop);
prop = props.Find("ForeColor",true);
allProperties.Add(prop);
prop = props.Find("Visible",true);
allProperties.Add(prop);
prop = props.Find("FrameColor",true);
allProperties.Add(prop);
prop = props.Find("Controls",true);
allProperties.Add(prop);
return new PropertyDescriptorCollection(allProperties.ToArray());
}
}
} }

71
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportItems/BaseTextItem.cs

@ -2,14 +2,13 @@
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt) // This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System; using System;
using System.Collections.Generic;
using System.ComponentModel; using System.ComponentModel;
using System.Drawing; using System.Drawing;
using ICSharpCode.Reports.Addin.Designer; using ICSharpCode.Reports.Addin.Dialogs;
using ICSharpCode.Reports.Addin.TypeProviders;
using ICSharpCode.Reports.Core; using ICSharpCode.Reports.Core;
using ICSharpCode.Reports.Core.BaseClasses.Printing; using ICSharpCode.Reports.Core.BaseClasses.Printing;
using ICSharpCode.Reports.Addin.Dialogs;
namespace ICSharpCode.Reports.Addin namespace ICSharpCode.Reports.Addin
{ {
@ -161,70 +160,4 @@ namespace ICSharpCode.Reports.Addin
#endregion #endregion
} }
#region TypeProvider
internal class TextItemTypeProvider : TypeDescriptionProvider
{
public TextItemTypeProvider() : base(TypeDescriptor.GetProvider(typeof(AbstractItem)))
{
}
public override ICustomTypeDescriptor GetTypeDescriptor(Type objectType, object instance)
{
ICustomTypeDescriptor td = base.GetTypeDescriptor(objectType,instance);
return new TextItemTypeDescriptor(td, instance);
}
}
internal class TextItemTypeDescriptor : CustomTypeDescriptor
{
// private BaseTextItem instance;
public TextItemTypeDescriptor(ICustomTypeDescriptor parent, object instance)
: base(parent)
{
// instance = instance as BaseTextItem;
}
public override PropertyDescriptorCollection GetProperties()
{
return GetProperties(null);
}
public override PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
PropertyDescriptorCollection props = base.GetProperties(attributes);
List<PropertyDescriptor> allProperties = new List<PropertyDescriptor>();
DesignerHelper.AddDefaultProperties(allProperties,props);
DesignerHelper.AddTextbasedProperties(allProperties,props);
PropertyDescriptor prop = prop = props.Find("Text",true);
allProperties.Add(prop);
prop = props.Find("DrawBorder",true);
allProperties.Add(prop);
prop = props.Find("FrameColor",true);
allProperties.Add(prop);
prop = props.Find("ForeColor",true);
allProperties.Add(prop);
prop = props.Find("Visible",true);
allProperties.Add(prop);
prop = props.Find("Expression",true);
allProperties.Add(prop);
return new PropertyDescriptorCollection(allProperties.ToArray());
}
}
#endregion
} }

70
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportItems/CircleItemTypeProvider.cs

@ -0,0 +1,70 @@
/*
* Created by SharpDevelop.
* User: Peter Forstmeier
* Date: 02.01.2011
* Time: 19:24
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.ComponentModel;
using ICSharpCode.Reports.Addin.Designer;
namespace ICSharpCode.Reports.Addin
{
internal class CircleItemTypeProvider : TypeDescriptionProvider
{
public CircleItemTypeProvider() : base(TypeDescriptor.GetProvider(typeof(AbstractItem)))
{
}
public override ICustomTypeDescriptor GetTypeDescriptor(Type objectType, object instance)
{
ICustomTypeDescriptor td = base.GetTypeDescriptor(objectType,instance);
return new CircleItemTypeDescriptor(td, instance);
}
}
internal class CircleItemTypeDescriptor : CustomTypeDescriptor
{
public CircleItemTypeDescriptor(ICustomTypeDescriptor parent, object instance)
: base(parent)
{
}
public override PropertyDescriptorCollection GetProperties()
{
return GetProperties(null);
}
public override PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
PropertyDescriptorCollection props = base.GetProperties(attributes);
System.Collections.Generic.List<PropertyDescriptor> allProperties = new System.Collections.Generic.List<PropertyDescriptor>();
DesignerHelper.AddDefaultProperties(allProperties,props);
PropertyDescriptor prop = null;
prop = props.Find("ForeColor",true);
allProperties.Add(prop);
prop = props.Find("DashStyle",true);
allProperties.Add(prop);
prop = props.Find("Thickness",true);
allProperties.Add(prop);
return new PropertyDescriptorCollection(allProperties.ToArray());
}
}
}

72
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportItems/GroupHeader.cs

@ -2,12 +2,8 @@
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt) // This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System; using System;
using System.Collections.Generic;
using System.ComponentModel; using System.ComponentModel;
using System.Drawing; using ICSharpCode.Reports.Addin.TypeProviders;
using ICSharpCode.Reports.Addin.Designer;
using ICSharpCode.Reports.Core;
namespace ICSharpCode.Reports.Addin namespace ICSharpCode.Reports.Addin
{ {
@ -28,70 +24,4 @@ namespace ICSharpCode.Reports.Addin
} }
internal class GroupedRowTypeProvider : TypeDescriptionProvider
{
public GroupedRowTypeProvider() : base(TypeDescriptor.GetProvider(typeof(AbstractItem)))
{
}
public override ICustomTypeDescriptor GetTypeDescriptor(Type objectType, object instance)
{
ICustomTypeDescriptor td = base.GetTypeDescriptor(objectType,instance);
return new GroupedRowItemTypeDescriptor(td, instance);
}
}
internal class GroupedRowItemTypeDescriptor : CustomTypeDescriptor
{
public GroupedRowItemTypeDescriptor(ICustomTypeDescriptor parent, object instance)
: base(parent)
{
}
public override PropertyDescriptorCollection GetProperties()
{
return GetProperties(null);
}
public override PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
PropertyDescriptorCollection props = base.GetProperties(attributes);
List<PropertyDescriptor> allProperties = new List<PropertyDescriptor>();
DesignerHelper.AddDefaultProperties(allProperties,props);
PropertyDescriptor prop = null;
prop = props.Find("DrawBorder",true);
allProperties.Add(prop);
prop = props.Find("ForeColor",true);
allProperties.Add(prop);
prop = props.Find("Visible",true);
allProperties.Add(prop);
prop = props.Find("FrameColor",true);
allProperties.Add(prop);
prop = props.Find("Controls",true);
allProperties.Add(prop);
prop = props.Find("AlternateBackColor",true);
allProperties.Add(prop);
prop = props.Find("ChangeBackColorEveryNRow",true);
allProperties.Add(prop);
prop = props.Find("PageBreakOnGroupChange",true);
allProperties.Add(prop);
return new PropertyDescriptorCollection(allProperties.ToArray());
}
}
} }

64
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportItems/TypeProviders/AbstractItemTypeProvider.cs

@ -0,0 +1,64 @@
/*
* Created by SharpDevelop.
* User: Peter Forstmeier
* Date: 02.01.2011
* Time: 19:47
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using ICSharpCode.Reports.Addin.Designer;
namespace ICSharpCode.Reports.Addin.TypeProviders
{
internal class AbstractItemTypeProvider : TypeDescriptionProvider {
public AbstractItemTypeProvider() : base(TypeDescriptor.GetProvider(typeof(AbstractItem)))
{
}
public AbstractItemTypeProvider(TypeDescriptionProvider parent): base(parent)
{
}
public override ICustomTypeDescriptor GetTypeDescriptor(Type objectType, object instance)
{
ICustomTypeDescriptor td = base.GetTypeDescriptor(objectType, instance);
return new AbstractItemTypeDescriptor(td, instance);
}
}
internal class AbstractItemTypeDescriptor : CustomTypeDescriptor
{
// private AbstractItem _instance;
public AbstractItemTypeDescriptor(ICustomTypeDescriptor parent, object instance)
: base(parent)
{
// _instance = instance as AbstractItem;
}
public override PropertyDescriptorCollection GetProperties()
{
return GetProperties(null);
}
public override PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
PropertyDescriptorCollection props = base.GetProperties(attributes);
List<PropertyDescriptor> allProperties = new List<PropertyDescriptor>();
foreach (PropertyDescriptor p in props)
{
allProperties.Add(p);
}
return new PropertyDescriptorCollection(allProperties.ToArray());
}
}
}

87
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportItems/TypeProviders/DataItemTypeProvider.cs

@ -0,0 +1,87 @@
/*
* Created by SharpDevelop.
* User: Peter Forstmeier
* Date: 02.01.2011
* Time: 19:36
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using ICSharpCode.Reports.Addin.Designer;
namespace ICSharpCode.Reports.Addin.TypeProviders
{
internal class DataItemTypeProvider : TypeDescriptionProvider
{
public DataItemTypeProvider() : base(TypeDescriptor.GetProvider(typeof(AbstractItem)))
{
}
public override ICustomTypeDescriptor GetTypeDescriptor(Type objectType, object instance)
{
ICustomTypeDescriptor td = base.GetTypeDescriptor(objectType,instance);
return new DataItemTypeDescriptor(td, instance);
}
}
internal class DataItemTypeDescriptor : CustomTypeDescriptor
{
public DataItemTypeDescriptor(ICustomTypeDescriptor parent, object instance)
: base(parent)
{
}
public override PropertyDescriptorCollection GetProperties()
{
return GetProperties(null);
}
public override PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
PropertyDescriptorCollection props = base.GetProperties(attributes);
List<PropertyDescriptor> allProperties = new List<PropertyDescriptor>();
DesignerHelper.AddDefaultProperties(allProperties,props);
DesignerHelper.AddTextbasedProperties(allProperties,props);
PropertyDescriptor prop = props.Find("Text",true);
allProperties.Add(prop);
prop = props.Find("DrawBorder",true);
allProperties.Add(prop);
prop = props.Find("FrameColor",true);
allProperties.Add(prop);
prop = props.Find("ForeColor",true);
allProperties.Add(prop);
prop = props.Find("Visible",true);
allProperties.Add(prop);
prop = props.Find("ColumnName",true);
allProperties.Add(prop);
prop = props.Find("BaseTableName",true);
allProperties.Add(prop);
prop = props.Find("DbValue",true);
allProperties.Add(prop);
prop = props.Find("NullValue",true);
allProperties.Add(prop);
return new PropertyDescriptorCollection(allProperties.ToArray());
}
}
}

83
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportItems/TypeProviders/GroupedRowTypeProvider.cs

@ -0,0 +1,83 @@
/*
* Created by SharpDevelop.
* User: Peter Forstmeier
* Date: 02.01.2011
* Time: 19:58
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using ICSharpCode.Reports.Addin.Designer;
namespace ICSharpCode.Reports.Addin.TypeProviders
{
internal class GroupedRowTypeProvider : TypeDescriptionProvider
{
public GroupedRowTypeProvider() : base(TypeDescriptor.GetProvider(typeof(AbstractItem)))
{
}
public override ICustomTypeDescriptor GetTypeDescriptor(Type objectType, object instance)
{
ICustomTypeDescriptor td = base.GetTypeDescriptor(objectType,instance);
return new GroupedRowItemTypeDescriptor(td, instance);
}
}
internal class GroupedRowItemTypeDescriptor : CustomTypeDescriptor
{
public GroupedRowItemTypeDescriptor(ICustomTypeDescriptor parent, object instance)
: base(parent)
{
}
public override PropertyDescriptorCollection GetProperties()
{
return GetProperties(null);
}
public override PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
PropertyDescriptorCollection props = base.GetProperties(attributes);
List<PropertyDescriptor> allProperties = new List<PropertyDescriptor>();
DesignerHelper.AddDefaultProperties(allProperties,props);
PropertyDescriptor prop = null;
prop = props.Find("DrawBorder",true);
allProperties.Add(prop);
prop = props.Find("ForeColor",true);
allProperties.Add(prop);
prop = props.Find("Visible",true);
allProperties.Add(prop);
prop = props.Find("FrameColor",true);
allProperties.Add(prop);
prop = props.Find("Controls",true);
allProperties.Add(prop);
prop = props.Find("AlternateBackColor",true);
allProperties.Add(prop);
prop = props.Find("ChangeBackColorEveryNRow",true);
allProperties.Add(prop);
prop = props.Find("PageBreakOnGroupChange",true);
allProperties.Add(prop);
return new PropertyDescriptorCollection(allProperties.ToArray());
}
}
}

86
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportItems/TypeProviders/ImageItemTypeProvider.cs

@ -0,0 +1,86 @@
/*
* Created by SharpDevelop.
* User: Peter Forstmeier
* Date: 02.01.2011
* Time: 19:41
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using ICSharpCode.Reports.Addin.Designer;
namespace ICSharpCode.Reports.Addin.TypeProviders
{
internal class ImageItemTypeProvider : TypeDescriptionProvider
{
public ImageItemTypeProvider() : base(TypeDescriptor.GetProvider(typeof(AbstractItem)))
{
}
public override ICustomTypeDescriptor GetTypeDescriptor(Type objectType, object instance)
{
ICustomTypeDescriptor td = base.GetTypeDescriptor(objectType,instance);
return new ImageItemTypeDescriptor(td, instance);
}
}
internal class ImageItemTypeDescriptor : CustomTypeDescriptor
{
public ImageItemTypeDescriptor(ICustomTypeDescriptor parent, object instance)
: base(parent)
{
// instance = instance as BaseTextItem;
}
public override PropertyDescriptorCollection GetProperties()
{
return GetProperties(null);
}
public override PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
PropertyDescriptorCollection props = base.GetProperties(attributes);
List<PropertyDescriptor> allProperties = new List<PropertyDescriptor>();
DesignerHelper.AddDefaultProperties(allProperties,props);
PropertyDescriptor prop = prop = props.Find("imageFileName",true);
allProperties.Add(prop);
prop = props.Find("Image",true);
allProperties.Add(prop);
prop = props.Find("ScaleImageToSize",true);
allProperties.Add(prop);
prop = props.Find("ImageSource",true);
allProperties.Add(prop);
prop = props.Find("ReportFileName",true);
allProperties.Add(prop);
prop = props.Find("RelativeFileName",true);
allProperties.Add(prop);
prop = props.Find("AbsoluteFileName",true);
allProperties.Add(prop);
prop = props.Find("ColumnName",true);
allProperties.Add(prop);
prop = props.Find("BaseTableName",true);
allProperties.Add(prop);
return new PropertyDescriptorCollection(allProperties.ToArray());
}
}
}

83
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportItems/TypeProviders/LineItemTypeDescriptor.cs

@ -0,0 +1,83 @@
/*
* Created by SharpDevelop.
* User: Peter Forstmeier
* Date: 02.01.2011
* Time: 19:44
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using ICSharpCode.Reports.Addin.Designer;
namespace ICSharpCode.Reports.Addin.TypeProviders
{
internal class LineItemTypeProvider : TypeDescriptionProvider
{
public LineItemTypeProvider() : base(TypeDescriptor.GetProvider(typeof(AbstractItem)))
{
}
public override ICustomTypeDescriptor GetTypeDescriptor(Type objectType, object instance)
{
ICustomTypeDescriptor td = base.GetTypeDescriptor(objectType,instance);
return new LineItemTypeDescriptor(td, instance);
}
}
internal class LineItemTypeDescriptor : CustomTypeDescriptor
{
public LineItemTypeDescriptor(ICustomTypeDescriptor parent, object instance)
: base(parent)
{
}
public override PropertyDescriptorCollection GetProperties()
{
return GetProperties(null);
}
public override PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
PropertyDescriptorCollection props = base.GetProperties(attributes);
List<PropertyDescriptor> allProperties = new List<PropertyDescriptor>();
DesignerHelper.AddDefaultProperties(allProperties,props);
PropertyDescriptor prop = null;
prop = props.Find("ForeColor",true);
allProperties.Add(prop);
prop = props.Find("FromPoint",true);
allProperties.Add(prop);
prop = props.Find("ToPoint",true);
allProperties.Add(prop);
prop = props.Find("StartLineCap",true);
allProperties.Add(prop);
prop = props.Find("EndLineCap",true);
allProperties.Add(prop);
prop = props.Find("dashLineCap",true);
allProperties.Add(prop);
prop = props.Find("DashStyle",true);
allProperties.Add(prop);
prop = props.Find("Thickness",true);
allProperties.Add(prop);
return new PropertyDescriptorCollection(allProperties.ToArray());
}
}
}

13
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportItems/RectangleItemTypeProvider.cs → src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportItems/TypeProviders/RectangleItemTypeProvider.cs

@ -5,7 +5,7 @@ using System;
using System.ComponentModel; using System.ComponentModel;
using ICSharpCode.Reports.Addin.Designer; using ICSharpCode.Reports.Addin.Designer;
namespace ICSharpCode.Reports.Addin namespace ICSharpCode.Reports.Addin.TypeProviders
{ {
/// <summary> /// <summary>
/// Description of RectangleItemTypeProvider. /// Description of RectangleItemTypeProvider.
@ -16,12 +16,6 @@ namespace ICSharpCode.Reports.Addin
{ {
} }
// public RectangleItemTypeProvider(TypeDescriptionProvider parent): base(parent)
// {
//
// }
public override ICustomTypeDescriptor GetTypeDescriptor(Type objectType, object instance) public override ICustomTypeDescriptor GetTypeDescriptor(Type objectType, object instance)
{ {
ICustomTypeDescriptor td = base.GetTypeDescriptor(objectType,instance); ICustomTypeDescriptor td = base.GetTypeDescriptor(objectType,instance);
@ -57,15 +51,14 @@ namespace ICSharpCode.Reports.Addin
prop = props.Find("ForeColor",true); prop = props.Find("ForeColor",true);
allProperties.Add(prop); allProperties.Add(prop);
prop = props.Find("DrawBorder",true);
allProperties.Add(prop);
prop = props.Find("DashStyle",true); prop = props.Find("DashStyle",true);
allProperties.Add(prop); allProperties.Add(prop);
prop = props.Find("Thickness",true); prop = props.Find("Thickness",true);
allProperties.Add(prop); allProperties.Add(prop);
prop = props.Find("CornerRadius",true);
allProperties.Add(prop);
return new PropertyDescriptorCollection(allProperties.ToArray()); return new PropertyDescriptorCollection(allProperties.ToArray());
} }
} }

80
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportItems/TypeProviders/RowItemTypeProvider.cs

@ -0,0 +1,80 @@
/*
* Created by SharpDevelop.
* User: Peter Forstmeier
* Date: 02.01.2011
* Time: 19:51
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using ICSharpCode.Reports.Addin.Designer;
namespace ICSharpCode.Reports.Addin.TypeProviders
{
internal class RowItemTypeProvider : TypeDescriptionProvider
{
public RowItemTypeProvider() : base(TypeDescriptor.GetProvider(typeof(AbstractItem)))
{
}
public override ICustomTypeDescriptor GetTypeDescriptor(Type objectType, object instance)
{
ICustomTypeDescriptor td = base.GetTypeDescriptor(objectType,instance);
return new RowItemTypeDescriptor(td, instance);
}
}
internal class RowItemTypeDescriptor : CustomTypeDescriptor
{
public RowItemTypeDescriptor(ICustomTypeDescriptor parent, object instance)
: base(parent)
{
}
public override PropertyDescriptorCollection GetProperties()
{
return GetProperties(null);
}
public override PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
PropertyDescriptorCollection props = base.GetProperties(attributes);
List<PropertyDescriptor> allProperties = new List<PropertyDescriptor>();
DesignerHelper.AddDefaultProperties(allProperties,props);
PropertyDescriptor prop = null;
prop = props.Find("DrawBorder",true);
allProperties.Add(prop);
prop = props.Find("ForeColor",true);
allProperties.Add(prop);
prop = props.Find("Visible",true);
allProperties.Add(prop);
prop = props.Find("FrameColor",true);
allProperties.Add(prop);
prop = props.Find("Controls",true);
allProperties.Add(prop);
prop = props.Find("AlternateBackColor",true);
allProperties.Add(prop);
prop = props.Find("ChangeBackColorEveryNRow",true);
allProperties.Add(prop);
return new PropertyDescriptorCollection(allProperties.ToArray());
}
}
}

76
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportItems/TypeProviders/SectionItemTypeProvider.cs

@ -0,0 +1,76 @@
/*
* Created by SharpDevelop.
* User: Peter Forstmeier
* Date: 02.01.2011
* Time: 19:53
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using ICSharpCode.Reports.Addin.Designer;
namespace ICSharpCode.Reports.Addin.TypeProviders
{
internal class SectionItemTypeProvider : TypeDescriptionProvider
{
public SectionItemTypeProvider() : base(TypeDescriptor.GetProvider(typeof(AbstractItem)))
{
}
public override ICustomTypeDescriptor GetTypeDescriptor(Type objectType, object instance)
{
ICustomTypeDescriptor td = base.GetTypeDescriptor(objectType,instance);
return new SectionItemDescriptor(td, instance);
}
}
internal class SectionItemDescriptor : CustomTypeDescriptor
{
public SectionItemDescriptor(ICustomTypeDescriptor parent, object instance)
: base(parent)
{
}
public override PropertyDescriptorCollection GetProperties()
{
return GetProperties(null);
}
public override PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
PropertyDescriptorCollection props = base.GetProperties(attributes);
List<PropertyDescriptor> allProperties = new List<PropertyDescriptor>();
DesignerHelper.AddDefaultProperties(allProperties,props);
PropertyDescriptor prop = null;
prop = props.Find("SectionOffset",true);
allProperties.Add(prop);
prop = props.Find("SectionMargin",true);
allProperties.Add(prop);
prop = props.Find("DrawBorder",true);
allProperties.Add(prop);
prop = props.Find("PageBreakAfter",true);
allProperties.Add(prop);
prop = props.Find("Controls",true);
allProperties.Add(prop);
prop = props.Find("FrameColor",true);
allProperties.Add(prop);
return new PropertyDescriptorCollection(allProperties.ToArray());
}
}
}

78
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportItems/TypeProviders/TableItemTypeProvider.cs

@ -0,0 +1,78 @@
/*
* Created by SharpDevelop.
* User: Peter Forstmeier
* Date: 02.01.2011
* Time: 19:55
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using ICSharpCode.Reports.Addin.Designer;
namespace ICSharpCode.Reports.Addin.TypeProviders
{
internal class TableItemTypeProvider : TypeDescriptionProvider
{
public TableItemTypeProvider() : base(TypeDescriptor.GetProvider(typeof(AbstractItem)))
{
}
// public TableItemTypeProvider(TypeDescriptionProvider parent): base(parent)
// {
//
// }
public override ICustomTypeDescriptor GetTypeDescriptor(Type objectType, object instance)
{
ICustomTypeDescriptor td = base.GetTypeDescriptor(objectType,instance);
return new TableItemTypeDescriptor(td, instance);
}
}
internal class TableItemTypeDescriptor : CustomTypeDescriptor
{
public TableItemTypeDescriptor(ICustomTypeDescriptor parent, object instance)
: base(parent)
{
}
public override PropertyDescriptorCollection GetProperties()
{
return GetProperties(null);
}
public override PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
PropertyDescriptorCollection props = base.GetProperties(attributes);
List<PropertyDescriptor> allProperties = new List<PropertyDescriptor>();
DesignerHelper.AddDefaultProperties(allProperties,props);
PropertyDescriptor prop = null;
prop = props.Find("DrawBorder",true);
allProperties.Add(prop);
prop = props.Find("ForeColor",true);
allProperties.Add(prop);
prop = props.Find("Visible",true);
allProperties.Add(prop);
prop = props.Find("FrameColor",true);
allProperties.Add(prop);
prop = props.Find("Controls",true);
allProperties.Add(prop);
return new PropertyDescriptorCollection(allProperties.ToArray());
}
}
}

79
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportItems/TypeProviders/TextItemTypeProvider.cs

@ -0,0 +1,79 @@
/*
* Created by SharpDevelop.
* User: Peter Forstmeier
* Date: 02.01.2011
* Time: 19:56
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using ICSharpCode.Reports.Addin.Designer;
namespace ICSharpCode.Reports.Addin.TypeProviders
{
internal class TextItemTypeProvider : TypeDescriptionProvider
{
public TextItemTypeProvider() : base(TypeDescriptor.GetProvider(typeof(AbstractItem)))
{
}
public override ICustomTypeDescriptor GetTypeDescriptor(Type objectType, object instance)
{
ICustomTypeDescriptor td = base.GetTypeDescriptor(objectType,instance);
return new TextItemTypeDescriptor(td, instance);
}
}
internal class TextItemTypeDescriptor : CustomTypeDescriptor
{
// private BaseTextItem instance;
public TextItemTypeDescriptor(ICustomTypeDescriptor parent, object instance)
: base(parent)
{
// instance = instance as BaseTextItem;
}
public override PropertyDescriptorCollection GetProperties()
{
return GetProperties(null);
}
public override PropertyDescriptorCollection GetProperties(Attribute[] attributes)
{
PropertyDescriptorCollection props = base.GetProperties(attributes);
List<PropertyDescriptor> allProperties = new List<PropertyDescriptor>();
DesignerHelper.AddDefaultProperties(allProperties,props);
DesignerHelper.AddTextbasedProperties(allProperties,props);
PropertyDescriptor prop = prop = props.Find("Text",true);
allProperties.Add(prop);
prop = props.Find("DrawBorder",true);
allProperties.Add(prop);
prop = props.Find("FrameColor",true);
allProperties.Add(prop);
prop = props.Find("ForeColor",true);
allProperties.Add(prop);
prop = props.Find("Visible",true);
allProperties.Add(prop);
prop = props.Find("Expression",true);
allProperties.Add(prop);
return new PropertyDescriptorCollection(allProperties.ToArray());
}
}
}

50
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseItems/BaseGraphicItem.cs

@ -19,12 +19,13 @@ namespace ICSharpCode.Reports.Core {
/// </remarks> /// </remarks>
public class BaseGraphicItem : BaseReportItem { public class BaseGraphicItem : BaseReportItem {
private int thickness = 1; public BaseGraphicItem():base()
private DashStyle dashStyle = DashStyle.Solid; {
this.Thickness = 1;
public BaseGraphicItem():base() { DashStyle = DashStyle.Solid;
} }
protected IGraphicStyleDecorator CreateItemStyle (BaseShape shape) { protected IGraphicStyleDecorator CreateItemStyle (BaseShape shape) {
GraphicStyleDecorator style = new GraphicStyleDecorator(shape); GraphicStyleDecorator style = new GraphicStyleDecorator(shape);
@ -34,8 +35,8 @@ namespace ICSharpCode.Reports.Core {
style.ForeColor = this.ForeColor; style.ForeColor = this.ForeColor;
style.FrameColor = this.FrameColor; style.FrameColor = this.FrameColor;
style.Thickness = this.thickness; style.Thickness = this.Thickness;
style.DashStyle = this.dashStyle; style.DashStyle = this.DashStyle;
return style; return style;
} }
@ -55,6 +56,7 @@ namespace ICSharpCode.Reports.Core {
} }
} }
#region Overrides #region Overrides
public override string ToString() public override string ToString()
@ -70,41 +72,9 @@ namespace ICSharpCode.Reports.Core {
/// Line Thickness of graphical Element /// Line Thickness of graphical Element
/// </summary> /// </summary>
public virtual int Thickness { public virtual int Thickness {get;set;}
get {
return thickness;
}
set {
thickness = value;
}
}
public virtual DashStyle DashStyle {
get {
return dashStyle;
}
set {
dashStyle = value;
}
}
[XmlIgnoreAttribute]
[Browsable(false)]
public override bool DrawBorder {
get { return base.DrawBorder; }
set { base.DrawBorder = value; }
}
[XmlIgnoreAttribute]
[Browsable(false)]
public override Font Font {
get { return base.Font; }
set { base.Font = value; }
}
public virtual DashStyle DashStyle {get;set;}
#endregion #endregion
} }

22
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseItems/Graphics/BaseLineItem.cs

@ -46,17 +46,17 @@ namespace ICSharpCode.Reports.Core {
private LineDecorator CreateLineShape () private LineDecorator CreateLineShape ()
{ {
LineDecorator ld = new LineDecorator(this.shape); LineDecorator decorator = new LineDecorator(this.shape);
ld.Size = this.Size; decorator.Size = this.Size;
ld.Location = this.Location; decorator.Location = this.Location;
ld.BackColor = this.BackColor; decorator.BackColor = this.BackColor;
ld.ForeColor = this.ForeColor; decorator.ForeColor = this.ForeColor;
ld.Thickness = base.Thickness; decorator.Thickness = base.Thickness;
ld.DashStyle = base.DashStyle; decorator.DashStyle = base.DashStyle;
ld.From = this.fromPoint; decorator.From = this.fromPoint;
ld.To = this.toPoint; decorator.To = this.toPoint;
return ld; return decorator;
} }

32
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseItems/Graphics/BaseRectangleItem.cs

@ -3,9 +3,12 @@
using System; using System;
using System.Drawing; using System.Drawing;
using System.Drawing.Drawing2D;
using ICSharpCode.Reports.Core.BaseClasses.Printing; using ICSharpCode.Reports.Core.BaseClasses.Printing;
using ICSharpCode.Reports.Core.Exporter; using ICSharpCode.Reports.Core.Exporter;
/// <summary> /// <summary>
/// This class draws a Rectangle /// This class draws a Rectangle
/// </summary> /// </summary>
@ -14,7 +17,9 @@ using ICSharpCode.Reports.Core.Exporter;
/// created on - 29.09.2005 11:57:30 /// created on - 29.09.2005 11:57:30
/// </remarks> /// </remarks>
namespace ICSharpCode.Reports.Core { namespace ICSharpCode.Reports.Core {
public class BaseRectangleItem : BaseGraphicItem,IExportColumnBuilder {
public class BaseRectangleItem : BaseGraphicItem,IExportColumnBuilder
{
RectangleShape shape = new RectangleShape(); RectangleShape shape = new RectangleShape();
@ -29,11 +34,13 @@ namespace ICSharpCode.Reports.Core {
#region IExportColumnBuilder #region IExportColumnBuilder
public BaseExportColumn CreateExportColumn(){ public BaseExportColumn CreateExportColumn(){
shape.CornerRadius = CornerRadius;
IGraphicStyleDecorator style = base.CreateItemStyle(this.shape); IGraphicStyleDecorator style = base.CreateItemStyle(this.shape);
ExportGraphic item = new ExportGraphic(style,false); ExportGraphic item = new ExportGraphic(style,false);
return item as ExportGraphic; return item as ExportGraphic;
} }
#endregion #endregion
public override void Render(ReportPageEventArgs rpea) { public override void Render(ReportPageEventArgs rpea) {
@ -41,13 +48,26 @@ namespace ICSharpCode.Reports.Core {
throw new ArgumentNullException("rpea"); throw new ArgumentNullException("rpea");
} }
base.Render(rpea); base.Render(rpea);
Rectangle rect = base.DisplayRectangle; Rectangle rectangle = base.DisplayRectangle;
StandardPrinter.FillBackground(rpea.PrintPageEventArgs.Graphics,this.BaseStyleDecorator); StandardPrinter.FillBackground(rpea.PrintPageEventArgs.Graphics,this.BaseStyleDecorator);
shape.DrawShape (rpea.PrintPageEventArgs.Graphics,
base.Baseline(), BaseLine line = new BaseLine(base.ForeColor,base.DashStyle,base.Thickness,LineCap.Round,LineCap.Round,DashCap.Round);
rect);
using (Pen pen = line.CreatePen(line.Thickness)){
if (pen != null)
{
shape.CornerRadius = this.CornerRadius;
GraphicsPath gfxPath = shape.CreatePath(rectangle);
rpea.PrintPageEventArgs.Graphics.FillPath(new SolidBrush(BackColor), gfxPath);;
rpea.PrintPageEventArgs.Graphics.DrawPath(pen, gfxPath);
}
} }
}
public int CornerRadius {get;set;}
public override string ToString() { public override string ToString() {

5
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/ExportColumns/BaseExportColumn.cs

@ -80,11 +80,13 @@ namespace ICSharpCode.Reports.Core.Exporter
protected virtual void Decorate () protected virtual void Decorate ()
{ {
RectangleShape shape = new RectangleShape(); RectangleShape shape = new RectangleShape();
shape.DrawShape(this.pdfWriter.DirectContent, shape.DrawShape(this.pdfWriter.DirectContent,
null, null,
this.styleDecorator, this.styleDecorator,
ConvertToPdfRectangle()); ConvertToPdfRectangle());
this.DrawFrame(); this.DrawFrame();
} }
#endregion #endregion
@ -124,6 +126,7 @@ namespace ICSharpCode.Reports.Core.Exporter
this.styleDecorator.DisplayRectangle, this.styleDecorator.DisplayRectangle,
typeof(iTextSharp.text.Rectangle)); typeof(iTextSharp.text.Rectangle));
iTextSharp.text.Rectangle rr = new iTextSharp.text.Rectangle(r.Left,r.Bottom -2, iTextSharp.text.Rectangle rr = new iTextSharp.text.Rectangle(r.Left,r.Bottom -2,
r.Left + r.Width,r.Bottom + r.Height); r.Left + r.Width,r.Bottom + r.Height);
@ -141,8 +144,6 @@ namespace ICSharpCode.Reports.Core.Exporter
} }
private void DrawFrame () private void DrawFrame ()
{ {
if (this.styleDecorator.DrawBorder) { if (this.styleDecorator.DrawBorder) {

6
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/ExportColumns/ExportGraphic.cs

@ -105,16 +105,16 @@ namespace ICSharpCode.Reports.Core.Exporter
if (lineDecorator != null) { if (lineDecorator != null) {
PdfLineDrawer (); PdfLineDrawer ();
} }
else { else
{
// http://www.mikesdotnetting.com/Article/88/iTextSharp-Drawing-shapes-and-Graphics
IGraphicStyleDecorator style = base.StyleDecorator as GraphicStyleDecorator; IGraphicStyleDecorator style = base.StyleDecorator as GraphicStyleDecorator;
if (style != null) {
style.Shape.DrawShape(base.PdfWriter.DirectContent, style.Shape.DrawShape(base.PdfWriter.DirectContent,
new BaseLine (style.ForeColor,style.DashStyle,style.Thickness), new BaseLine (style.ForeColor,style.DashStyle,style.Thickness),
style, style,
base.ConvertToPdfRectangle()); base.ConvertToPdfRectangle());
} }
} }
}
public new IGraphicStyleDecorator StyleDecorator public new IGraphicStyleDecorator StyleDecorator

2
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/ExportColumns/ExportText.cs

@ -59,6 +59,7 @@ namespace ICSharpCode.Reports.Core.Exporter {
} }
base.Decorate(); base.Decorate();
PdfContentByte contentByte = base.PdfWriter.DirectContent; PdfContentByte contentByte = base.PdfWriter.DirectContent;
CalculatePdfFormat pdfFormat = new CalculatePdfFormat(this.StyleDecorator,font); CalculatePdfFormat pdfFormat = new CalculatePdfFormat(this.StyleDecorator,font);
@ -75,6 +76,7 @@ namespace ICSharpCode.Reports.Core.Exporter {
} }
Chunk chunk = new Chunk(formatedText,font); Chunk chunk = new Chunk(formatedText,font);
columnText.AddText(chunk); columnText.AddText(chunk);
columnText.Go(); columnText.Go();

1
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Printing/Graphics/BaseLine.cs

@ -33,6 +33,7 @@ namespace ICSharpCode.Reports.Core
{ {
} }
public BaseLine(Color color, DashStyle dashStyle,float thickness, LineCap startLineCap, LineCap endLineCap, DashCap dashLineCap) public BaseLine(Color color, DashStyle dashStyle,float thickness, LineCap startLineCap, LineCap endLineCap, DashCap dashLineCap)
{ {
if (color == Color.White) { if (color == Color.White) {

3
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Printing/Graphics/BaseShape.cs

@ -86,7 +86,7 @@ namespace ICSharpCode.Reports.Core {
} }
public void DrawShape(Graphics graphics, BaseLine line, Rectangle rectangle) public virtual void DrawShape(Graphics graphics, BaseLine line, Rectangle rectangle)
{ {
if (graphics == null) { if (graphics == null) {
throw new ArgumentNullException("graphics"); throw new ArgumentNullException("graphics");
@ -114,6 +114,7 @@ namespace ICSharpCode.Reports.Core {
cb.SetColorFill(style.PdfBackColor); cb.SetColorFill(style.PdfBackColor);
} }
protected static void FillBackGround (iTextSharp.text.pdf.PdfContentByte contentByte, protected static void FillBackGround (iTextSharp.text.pdf.PdfContentByte contentByte,
IBaseStyleDecorator style, IBaseStyleDecorator style,
iTextSharp.text.Rectangle rectangle) iTextSharp.text.Rectangle rectangle)

1
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Printing/Graphics/Border.cs

@ -53,6 +53,7 @@ namespace ICSharpCode.Reports.Core {
} }
contentByte.SetColorStroke(style.PdfFrameColor); contentByte.SetColorStroke(style.PdfFrameColor);
contentByte.SetColorFill(style.PdfBackColor);
contentByte.SetLineWidth(UnitConverter.FromPixel(baseline.Thickness).Point); contentByte.SetLineWidth(UnitConverter.FromPixel(baseline.Thickness).Point);
contentByte.MoveTo(rectangle.Left ,rectangle.Top ); contentByte.MoveTo(rectangle.Left ,rectangle.Top );

52
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Printing/Graphics/RectangleShape.cs

@ -15,9 +15,11 @@ using ICSharpCode.Reports.Core.Exporter;
/// created on - 09.10.2005 18:20:51 /// created on - 09.10.2005 18:20:51
/// </remarks> /// </remarks>
namespace ICSharpCode.Reports.Core { namespace ICSharpCode.Reports.Core {
public class RectangleShape : BaseShape { public class RectangleShape : BaseShape {
public RectangleShape() { public RectangleShape()
{
} }
@ -27,31 +29,53 @@ namespace ICSharpCode.Reports.Core {
} }
public override GraphicsPath CreatePath(Rectangle rectangle){ public override GraphicsPath CreatePath(Rectangle rectangle )
GraphicsPath path1 = new GraphicsPath(); {
path1.AddRectangle(rectangle); //http://stackoverflow.com/questions/628261/how-to-draw-rounded-rectangle-with-variable-width-border-inside-of-specific-bound
return path1;
GraphicsPath gfxPath = new GraphicsPath();
if (CornerRadius == 0)
{
gfxPath.AddRectangle(rectangle);
}
else
{
gfxPath.AddArc(rectangle.X, rectangle.Y,CornerRadius , CornerRadius, 180, 90);
gfxPath.AddArc(rectangle.X + rectangle.Width - CornerRadius, rectangle.Y, CornerRadius, CornerRadius, 270, 90);
gfxPath.AddArc(rectangle.X + rectangle.Width - CornerRadius, rectangle.Y + rectangle.Height - CornerRadius, CornerRadius, CornerRadius, 0, 90);
gfxPath.AddArc(rectangle.X, rectangle.Y + rectangle.Height - CornerRadius, CornerRadius, CornerRadius, 90, 90);
}
gfxPath.CloseAllFigures();
return gfxPath;
}
public override void DrawShape(Graphics graphics, BaseLine line, Rectangle rectangle)
{
base.DrawShape(graphics, line, rectangle);
} }
public override void CreatePath(iTextSharp.text.pdf.PdfContentByte contentByte, public override void CreatePath(iTextSharp.text.pdf.PdfContentByte contentByte,
BaseLine line, BaseLine line,
IBaseStyleDecorator style, IBaseStyleDecorator style,
Point from,Point to) Point from,Point to)
{ {
throw new NotImplementedException(); throw new NotImplementedException();
} }
// http://www.mikesdotnetting.com/Article/88/iTextSharp-Drawing-shapes-and-Graphics
public override void CreatePath(iTextSharp.text.pdf.PdfContentByte contentByte, public override void CreatePath(iTextSharp.text.pdf.PdfContentByte contentByte,
BaseLine line, BaseLine line,
IBaseStyleDecorator style, IBaseStyleDecorator style,
iTextSharp.text.Rectangle rectangle) iTextSharp.text.Rectangle rectangle)
{ {
if (contentByte == null) { if (contentByte == null) {
throw new ArgumentNullException("contentByte"); throw new ArgumentNullException("contentByte");
} }
if (style == null) { if (style == null) {
throw new ArgumentNullException("style"); throw new ArgumentNullException("style");
} }
@ -59,21 +83,19 @@ namespace ICSharpCode.Reports.Core {
throw new ArgumentNullException("rectangle"); throw new ArgumentNullException("rectangle");
} }
if ((line == null)||(line.Thickness < 1)) { if (line == null) {
BaseShape.FillBackGround(contentByte,style,rectangle); BaseShape.FillBackGround(contentByte,style,rectangle);
} }
else if ((style.BackColor == GlobalValues.DefaultBackColor)) { else
{
BaseShape.SetupShape(contentByte,style); BaseShape.SetupShape(contentByte,style);
contentByte.SetLineWidth(UnitConverter.FromPixel(line.Thickness).Point); contentByte.SetLineWidth(UnitConverter.FromPixel(line.Thickness).Point);
contentByte.MoveTo(rectangle.Left ,rectangle.Top ); contentByte.RoundRectangle(rectangle.Left, rectangle.Bottom, rectangle.Width, rectangle.Height, CornerRadius);
contentByte.LineTo(rectangle.Left, rectangle.Top - rectangle.Height);
contentByte.LineTo(rectangle.Left + rectangle.Width, rectangle.Top - rectangle.Height);
contentByte.LineTo(rectangle.Left + rectangle.Width, rectangle.Top);
contentByte.LineTo(rectangle.Left, rectangle.Top);
BaseShape.FinishShape(contentByte); BaseShape.FinishShape(contentByte);
} else {
BaseShape.FillBackGround(contentByte,style,rectangle);
} }
} }
public int CornerRadius {get;set;}
} }
} }

4
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/ReportingLanguage/IntegrationTests/AggregateFunctionsFixture.cs

@ -15,7 +15,7 @@ namespace ICSharpCode.Reports.Core.Test.ReportingLanguage.IntegrationTests
{ {
[TestFixture] [TestFixture]
[SetCulture("de-DE")] // [SetCulture("de-DE")]
public class AggregateFunctionsFromTableFixture public class AggregateFunctionsFromTableFixture
{ {
@ -100,6 +100,7 @@ namespace ICSharpCode.Reports.Core.Test.ReportingLanguage.IntegrationTests
public void Can_Sum_Double () public void Can_Sum_Double ()
{ {
const string expression = "=sum(amount)"; const string expression = "=sum(amount)";
//var s = this.evaluator.Evaluate(expression);
Assert.That(this.evaluator.Evaluate(expression), Assert.That(this.evaluator.Evaluate(expression),
Is.EqualTo(this.doubleResult.ToString())); Is.EqualTo(this.doubleResult.ToString()));
} }
@ -112,6 +113,7 @@ namespace ICSharpCode.Reports.Core.Test.ReportingLanguage.IntegrationTests
public void Can_Look_For_MaxValue() public void Can_Look_For_MaxValue()
{ {
const string expression = "=max(amount)"; const string expression = "=max(amount)";
//var s = this.evaluator.Evaluate(expression);
Assert.That(this.evaluator.Evaluate(expression), Assert.That(this.evaluator.Evaluate(expression),
Is.EqualTo("400,5")); Is.EqualTo("400,5"));
} }

Loading…
Cancel
Save