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

Commit d27ecc5

Browse files
Circle as Container
1 parent deae522 commit d27ecc5

4 files changed

Lines changed: 41 additions & 43 deletions

File tree

src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/Designer/ContainerDesigner.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ void GetService ()
7676
componentChangeService = (IComponentChangeService)GetService(typeof(IComponentChangeService));
7777
if (componentChangeService != null)
7878
{
79-
componentChangeService.ComponentRename += new ComponentRenameEventHandler(OnComponentRename);
79+
componentChangeService.ComponentRename += OnComponentRename;
8080
}
8181
}
8282

src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/Graphics/BaseCircleItem.cs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
1717
// DEALINGS IN THE SOFTWARE.
1818

19+
using System.Collections.Generic;
20+
using ICSharpCode.Reporting.Interfaces;
1921
using ICSharpCode.Reporting.Interfaces.Export;
2022
using ICSharpCode.Reporting.PageBuilder.ExportColumns;
2123

@@ -24,10 +26,11 @@ namespace ICSharpCode.Reporting.Items
2426
/// <summary>
2527
/// Description of BaseCircleItem.
2628
/// </summary>
27-
public class BaseCircleItem:BaseGraphics
29+
public class BaseCircleItem:BaseGraphics,IReportContainer
2830
{
2931
public BaseCircleItem()
3032
{
33+
Items = new List<IPrintableObject>();
3134
}
3235

3336
public override IExportColumn CreateExportColumn()
@@ -42,5 +45,7 @@ public override IExportColumn CreateExportColumn()
4245
ex.DashStyle = DashStyle;
4346
return ex;
4447
}
48+
49+
public List<IPrintableObject> Items {get;private set;}
4550
}
4651
}

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

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -25,23 +25,9 @@ namespace ICSharpCode.Reporting.PageBuilder.ExportColumns
2525
/// <summary>
2626
/// Description of ExportCircle.
2727
/// </summary>
28-
public class ExportCircle:GraphicsContainer,IExportGraphics,IAcceptor
28+
public class ExportCircle:GraphicsContainer,IExportGraphics
2929
{
3030

31-
32-
public void Accept(IVisitor visitor)
33-
{
34-
visitor.Visit(this);
35-
}
36-
37-
38-
public override ICSharpCode.Reporting.Arrange.IMeasurementStrategy MeasurementStrategy()
39-
{
40-
throw new NotImplementedException();
41-
}
42-
43-
// public int Thickness {get;set;}
44-
4531
public DashStyle DashStyle {get;set;}
4632

4733
public LineCap StartLineCap {get;set;}

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

Lines changed: 33 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -139,39 +139,33 @@ public override void Visit(ExportRectangle exportRectangle)
139139
{
140140
var border = CreateBorder(exportRectangle);
141141
CanvasHelper.SetPosition(border, new Point(0,0));
142-
var sp = new StackPanel();
143-
sp.Orientation = Orientation.Horizontal;
142+
var panel = new StackPanel();
143+
panel.Orientation = Orientation.Horizontal;
144144
foreach (var element in exportRectangle.ExportedItems) {
145145
var acceptor = element as IAcceptor;
146-
acceptor.Accept(this);
147-
sp.Children.Add(UIElement);
146+
acceptor.Accept(this);
147+
panel.Children.Add(UIElement);
148148
}
149-
border.Child = sp;
149+
border.Child = panel;
150150
UIElement = border;
151151
}
152152

153153

154154
public override void Visit(ExportCircle exportCircle)
155155
{
156-
var pen = FixedDocumentCreator.CreateWpfPen(exportCircle);
157-
var rad = CalcRad(exportCircle.Size);
156+
var containerCanvas = new Canvas();
157+
158+
var drawingElement = CircleVisual(exportCircle);
158159

159-
var visual = new DrawingVisual();
160-
using (var dc = visual.RenderOpen()){
161-
162-
dc.DrawEllipse(FixedDocumentCreator.ConvertBrush(exportCircle.BackColor),
163-
pen,
164-
new Point(exportCircle.Location.X + rad.X,
165-
exportCircle.Location.Y + rad.Y),
166-
rad.X,
167-
rad.Y);
168-
169-
170-
}
171-
var dragingElement = new DrawingElement(visual);
172-
UIElement = dragingElement;
160+
containerCanvas.Children.Add(drawingElement);
161+
foreach (var element in exportCircle.ExportedItems) {
162+
var acceptor = element as IAcceptor;
163+
acceptor.Accept(this);
164+
containerCanvas.Children.Add(UIElement);
165+
}
166+
UIElement = containerCanvas;
173167
}
174-
168+
175169

176170
bool IsGraphicsContainer (IExportColumn column) {
177171
return column is GraphicsContainer;
@@ -183,6 +177,22 @@ bool IsContainer (IExportColumn column) {
183177
}
184178

185179

180+
DrawingElement CircleVisual(GraphicsContainer circle){
181+
var pen = FixedDocumentCreator.CreateWpfPen(circle);
182+
var rad = CalcRadius(circle.Size);
183+
184+
var visual = new DrawingVisual();
185+
using (var dc = visual.RenderOpen()){
186+
dc.DrawEllipse(FixedDocumentCreator.ConvertBrush(circle.BackColor),
187+
pen,
188+
new Point( rad.X,rad.Y),
189+
rad.X,
190+
rad.Y);
191+
}
192+
return new DrawingElement(visual);
193+
}
194+
195+
186196
Border CreateBorder(IExportColumn exportColumn)
187197
{
188198
double bT;
@@ -202,7 +212,7 @@ Border CreateBorder(IExportColumn exportColumn)
202212
}
203213

204214

205-
static Point CalcRad(System.Drawing.Size size) {
215+
static Point CalcRadius(System.Drawing.Size size) {
206216
return new Point(size.Width /2,size.Height /2);
207217
}
208218

@@ -212,7 +222,4 @@ static Point CalcRad(System.Drawing.Size size) {
212222

213223
public FixedPage FixedPage {get; private set;}
214224
}
215-
216-
217-
218225
}

0 commit comments

Comments
 (0)