Skip to content
This repository was archived by the owner on Oct 16, 2020. It is now read-only.

Commit 9219731

Browse files
ContentAlignment is Obsolte,
use TextAlignment as replacement to print Left,Center,Right and Justified Text
1 parent 2882c6a commit 9219731

9 files changed

Lines changed: 88 additions & 79 deletions

File tree

src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/DesignableItems/BaseTextItem.cs

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
using System.ComponentModel;
1111
using System.Drawing;
1212
using System.Drawing.Design;
13+
using System.Windows;
1314
using ICSharpCode.Reporting.BaseClasses;
1415
using ICSharpCode.Reporting.Globals;
1516
using ICSharpCode.Reporting.Addin.Designer;
@@ -31,18 +32,18 @@ public class BaseTextItem:AbstractItem
3132
StringFormat stringFormat;
3233
StringTrimming stringTrimming;
3334
ContentAlignment contentAlignment;
34-
35+
TextAlignment textAlignment;
3536

3637
public BaseTextItem(){
3738
DefaultSize = GlobalValues.PreferedSize;
3839
Size = GlobalValues.PreferedSize;
3940
BackColor = Color.White;
4041
contentAlignment = ContentAlignment.TopLeft;
42+
textAlignment = TextAlignment.Left;
4143
TypeDescriptor.AddProvider(new TextItemTypeProvider(), typeof(BaseTextItem));
4244
}
4345

4446

45-
// [EditorBrowsableAttribute()]
4647
protected override void OnPaint(System.Windows.Forms.PaintEventArgs e){
4748
base.OnPaint(e);
4849
Draw(e.Graphics);
@@ -64,7 +65,8 @@ public override void Draw(Graphics graphics)
6465
designTrimmimg = stringTrimming;
6566
}
6667

67-
stringFormat = TextDrawer.BuildStringFormat(designTrimmimg, contentAlignment);
68+
// stringFormat = TextDrawer.BuildStringFormat(designTrimmimg, contentAlignment);
69+
stringFormat = TextDrawer.BuildStringFormat(designTrimmimg, textAlignment);
6870
using (var textBrush = new SolidBrush(ForeColor)) {
6971
TextDrawer.DrawString(graphics, Text, Font, textBrush, ClientRectangle, stringFormat);
7072
}
@@ -119,10 +121,9 @@ public StringTrimming StringTrimming {
119121
}
120122

121123

122-
123124
[Category("Appearance")]
124125
[EditorAttribute(typeof(ContentAlignmentEditor),
125-
typeof(UITypeEditor) )]
126+
typeof(UITypeEditor) )]
126127
public ContentAlignment ContentAlignment {
127128
get { return contentAlignment; }
128129
set {
@@ -132,18 +133,15 @@ public ContentAlignment ContentAlignment {
132133
}
133134

134135

136+
[Category("Appearance")]
137+
public TextAlignment TextAlignment {
138+
get { return textAlignment;}
139+
set {textAlignment = value;
140+
Invalidate();}
141+
}
142+
135143
#endregion
136144

137-
// #region RighToLeft
138-
//
139-
// [Category("Appearance")]
140-
// public System.Windows.Forms.RightToLeft RTL
141-
// {
142-
// get { return base.RightToLeft; }
143-
// set { base.RightToLeft = value; }
144-
// }
145-
//
146-
// #endregion
147145

148146
#region DataType
149147

@@ -158,10 +156,10 @@ public ContentAlignment ContentAlignment {
158156
#region Expression
159157

160158
[Browsable(true),
161-
Category("Expression"),
162-
Description("Enter a valid Expression")]
159+
Category("Expression"),
160+
Description("Enter a valid Expression")]
163161
[EditorAttribute(typeof(ExpressionEditor),
164-
typeof(UITypeEditor) )]
162+
typeof(UITypeEditor) )]
165163
public string Expression {get;set;}
166164

167165
#endregion

src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/TypeProvider/TypeProviderHelper.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,9 @@ public static void AddTextBasedProperties (List<PropertyDescriptor> allPropertie
9999
prop = props.Find("ContentAlignment",true);
100100
allProperties.Add(prop);
101101

102+
prop = props.Find("TextAlignment",true);
103+
allProperties.Add(prop);
104+
102105
prop = props.Find("CanGrow",true);
103106
allProperties.Add(prop);
104107

@@ -107,9 +110,6 @@ public static void AddTextBasedProperties (List<PropertyDescriptor> allPropertie
107110

108111
prop = props.Find("DataType",true);
109112
allProperties.Add(prop);
110-
111-
// prop = props.Find("RTL",true);
112-
// allProperties.Add(prop);
113113
}
114114

115115
public static void AddGraphicProperties (List<PropertyDescriptor> allProperties,

src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Arrange/ArrangeStrategy.cs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,6 @@ static Size ArrangeInternal(IExportContainer container)
5858
{
5959
var containerRectangle = container.DisplayRectangle;
6060
Rectangle elementRectangle = Rectangle.Empty;
61-
6261
foreach (var element in container.ExportedItems) {
6362
var con = element as IExportContainer;
6463
if (con != null) {
@@ -76,9 +75,7 @@ static Size ArrangeInternal(IExportContainer container)
7675
containerRectangle = new Rectangle(containerRectangle.Left,
7776
containerRectangle.Top ,
7877
containerRectangle.Width,
79-
element.Location.Y + elementRectangle.Size.Height + 5);
80-
81-
// containerRectangle = Rectangle.Union(containerRectangle,elementRectangle);
78+
element.Location.Y + elementRectangle.Size.Height + 5);
8279
}
8380
}
8481
return containerRectangle.Size;

src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/TextDrawer.cs

Lines changed: 33 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -9,20 +9,15 @@
99
using System;
1010
using System.Drawing;
1111
using System.Drawing.Text;
12+
using System.Windows;
1213

1314
namespace ICSharpCode.Reporting.BaseClasses
1415
{
1516
/// <summary>
1617
/// Description of TextDrawer.
1718
/// </summary>
18-
public sealed class TextDrawer
19+
public static class TextDrawer
1920
{
20-
21-
private TextDrawer()
22-
{
23-
}
24-
25-
2621
public static void DrawString(Graphics graphics,string text,
2722
Font font,Brush brush,
2823
RectangleF rectangle,
@@ -38,41 +33,40 @@ public static void DrawString(Graphics graphics,string text,
3833
rectangle,
3934
format);
4035
}
36+
4137

42-
43-
public static void DrawString (Graphics graphics,string text)
44-
45-
{
46-
if (graphics == null) {
47-
throw new ArgumentNullException("graphics");
38+
public static StringFormat BuildStringFormat(StringTrimming stringTrimming,TextAlignment alignment){
39+
StringFormat format = StringFormat.GenericTypographic;
40+
format.Trimming = stringTrimming;
41+
format.FormatFlags = StringFormatFlags.LineLimit;
42+
switch (alignment) {
43+
case TextAlignment.Left:{
44+
format.Alignment = StringAlignment.Near;
45+
format.LineAlignment = StringAlignment.Near;
46+
return format;
47+
}
48+
case TextAlignment.Center:{
49+
format.Alignment = StringAlignment.Center;
50+
format.LineAlignment = StringAlignment.Near;
51+
return format;
52+
}
53+
54+
case TextAlignment.Right:{
55+
format.Alignment = StringAlignment.Far;
56+
format.LineAlignment = StringAlignment.Near;
57+
return format;
58+
}
59+
60+
case TextAlignment.Justify:{
61+
format.Alignment = StringAlignment.Center;
62+
format.LineAlignment = StringAlignment.Near;
63+
return format;
64+
}
4865
}
49-
// if (decorator == null) {
50-
// throw new ArgumentNullException("decorator");
51-
// }
52-
53-
// StringFormat stringFormat = BuildStringFormat(decorator.StringTrimming,decorator.ContentAlignment);
54-
//
55-
// if (decorator.RightToLeft ==System.Windows.Forms.RightToLeft.Yes) {
56-
// stringFormat.FormatFlags = stringFormat.FormatFlags | StringFormatFlags.DirectionRightToLeft;
57-
// }
58-
59-
var formattedString = text;
60-
// if (! String.IsNullOrEmpty(decorator.FormatString)) {
61-
// formattedString = StandardFormatter.FormatOutput(text,decorator.FormatString,decorator.DataType,String.Empty);
62-
// }
63-
64-
graphics.TextRenderingHint = TextRenderingHint.AntiAlias;
65-
66-
// graphics.DrawString (formattedString,decorator.Font,
67-
// new SolidBrush(decorator.ForeColor),
68-
// new Rectangle(decorator.Location.X,
69-
// decorator.Location.Y,
70-
// decorator.Size.Width,
71-
// decorator.Size.Height),
72-
// stringFormat);
66+
return format;
7367
}
7468

75-
69+
/*
7670
public static StringFormat BuildStringFormat(StringTrimming stringTrimming,ContentAlignment alignment)
7771
{
7872
StringFormat format = StringFormat.GenericTypographic;
@@ -139,5 +133,6 @@ public static StringFormat BuildStringFormat(StringTrimming stringTrimming,Conte
139133
format.LineAlignment = StringAlignment.Far;
140134
return format;
141135
}
136+
*/
142137
}
143138
}

src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Globals/MeasurementService.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ public static Size Measure (IExportText item,Graphics graphics) {
4545
}
4646
return new Size(item.Size.Width,(int)Math.Ceiling(sizeF.Height));
4747
}
48+
Console.WriteLine ("measure {0}",item.Size);
4849
return item.Size;
4950
}
5051
}

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

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
using System;
2020
using System.Drawing;
21+
using System.Windows;
2122
using ICSharpCode.Reporting.Globals;
2223
using ICSharpCode.Reporting.Interfaces;
2324
using ICSharpCode.Reporting.Interfaces.Export;
@@ -33,6 +34,7 @@ public interface ITextItem:IPrintableObject
3334
Font Font {get;set;}
3435
string Text {get;set;}
3536
ContentAlignment ContentAlignment {get;set;}
37+
TextAlignment TextAlignment {get;set;}
3638
string FormatString {get;set;}
3739
string DataType {get;set;}
3840

@@ -44,16 +46,21 @@ public BaseTextItem(){
4446
Name = "BaseTextItem";
4547
Font = GlobalValues.DefaultFont;
4648
}
47-
49+
50+
4851

4952
public Font Font {get;set;}
5053

5154
public string Text {get;set;}
5255

5356
public string FormatString {get;set;}
5457

58+
[Obsolete ("Use TextAlignment")]
5559
public ContentAlignment ContentAlignment {get;set;}
5660

61+
public TextAlignment TextAlignment {get;set;}
62+
63+
5764
string dataType;
5865

5966
public string DataType
@@ -83,6 +90,7 @@ public override IExportColumn CreateExportColumn()
8390
ex.Text = Text;
8491
ex.FormatString = FormatString;
8592
ex.ContentAlignment = ContentAlignment;
93+
ex.TextAlignment = TextAlignment;
8694
ex.DataType = DataType;
8795
ex.CanGrow = CanGrow;
8896
ex.DrawBorder = DrawBorder;

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
using System;
2020
using System.Drawing;
21+
using System.Windows;
2122
using ICSharpCode.Reporting.Arrange;
2223
using ICSharpCode.Reporting.Exporter;
2324
using ICSharpCode.Reporting.Exporter.Visitors;
@@ -34,6 +35,7 @@ public interface IExportText : IExportColumn
3435
Font Font {get;set;}
3536
string Text {get;set;}
3637
ContentAlignment ContentAlignment {get;set;}
38+
TextAlignment TextAlignment {get;set;}
3739
string DataType {get;set;}
3840
string FormatString {get;set;}
3941
}
@@ -57,8 +59,11 @@ public void Accept(IVisitor visitor)
5759

5860
public string FormatString {get;set;}
5961

62+
[Obsolete ("Use TextAlignment")]
6063
public ContentAlignment ContentAlignment {get;set;}
6164

65+
public TextAlignment TextAlignment {get;set;}
66+
6267
public string DataType {get;set;}
6368

6469
public override ICSharpCode.Reporting.Arrange.IMeasurementStrategy MeasurementStrategy()

src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Wpf/Visitor/FixedDocumentCreator.cs

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@ namespace ICSharpCode.Reporting.WpfReportViewer.Visitor
4040
static class FixedDocumentCreator
4141
{
4242

43-
4443
public static FixedPage CreateFixedPage(ExportPage exportPage) {
4544
var fixedPage = new FixedPage();
4645
fixedPage.Width = exportPage.Size.ToWpf().Width;
@@ -63,10 +62,8 @@ public static Canvas CreateContainer(ExportContainer container) {
6362

6463
public static FormattedText CreateFormattedText(ExportText exportText)
6564
{
66-
FlowDirection flowDirection;
67-
6865
var culture = CultureInfo.CurrentCulture;
69-
flowDirection = culture.TextInfo.IsRightToLeft ? FlowDirection.RightToLeft : FlowDirection.LeftToRight;
66+
var flowDirection = culture.TextInfo.IsRightToLeft ? FlowDirection.RightToLeft : FlowDirection.LeftToRight;
7067

7168
var emSize = ExtensionMethodes.ToPoints((int)exportText.Font.SizeInPoints +1);
7269

@@ -78,15 +75,16 @@ public static FormattedText CreateFormattedText(ExportText exportText)
7875
new SolidColorBrush(exportText.ForeColor.ToWpf()), null, TextFormattingMode.Display);
7976

8077
formattedText.MaxTextWidth = exportText.DesiredSize.Width ;
78+
formattedText.TextAlignment = exportText.TextAlignment;
8179

82-
// formattedText.TextAlignment = TextAlignment.Justify;
8380
if (!exportText.CanGrow) {
84-
formattedText.MaxTextHeight = exportText.Size.Height;
85-
} else {
81+
formattedText.MaxTextHeight = exportText.Size.Height;
82+
} else {
8683
formattedText.MaxTextHeight = ExtensionMethodes.ToPoints(exportText.DesiredSize.Height );
87-
}
84+
}
85+
8886
ApplyPrintStyles(formattedText,exportText);
89-
87+
9088
return formattedText;
9189
}
9290

@@ -153,6 +151,7 @@ static void SetPosition (UIElement element,IExportColumn exportColumn) {
153151
FixedPage.SetTop(element,exportColumn.Location.Y);
154152
}
155153

154+
/*
156155
public static Point CalculateAlignmentOffset (FormattedText formattedText, ExportText exportText) {
157156
var offset = new Point(0,0);
158157
double y = 0;
@@ -206,7 +205,7 @@ public static Point CalculateAlignmentOffset (FormattedText formattedText, Expor
206205
}
207206
return new Point(x,y);
208207
}
209-
208+
*/
210209

211210
public static Pen CreateWpfPen(IReportObject exportColumn){
212211
if (exportColumn == null)

0 commit comments

Comments
 (0)