Browse Source

Circle as Container

pull/478/head
Peter Forstmeier 11 years ago
parent
commit
d27ecc5ece
  1. 2
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/Designer/ContainerDesigner.cs
  2. 7
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/Graphics/BaseCircleItem.cs
  3. 16
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportCircle.cs
  4. 55
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Wpf/Visitor/WpfVisitor.cs

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

@ -76,7 +76,7 @@ namespace ICSharpCode.Reporting.Addin.Designer @@ -76,7 +76,7 @@ namespace ICSharpCode.Reporting.Addin.Designer
componentChangeService = (IComponentChangeService)GetService(typeof(IComponentChangeService));
if (componentChangeService != null)
{
componentChangeService.ComponentRename += new ComponentRenameEventHandler(OnComponentRename);
componentChangeService.ComponentRename += OnComponentRename;
}
}

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

@ -16,6 +16,8 @@ @@ -16,6 +16,8 @@
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
using System.Collections.Generic;
using ICSharpCode.Reporting.Interfaces;
using ICSharpCode.Reporting.Interfaces.Export;
using ICSharpCode.Reporting.PageBuilder.ExportColumns;
@ -24,10 +26,11 @@ namespace ICSharpCode.Reporting.Items @@ -24,10 +26,11 @@ namespace ICSharpCode.Reporting.Items
/// <summary>
/// Description of BaseCircleItem.
/// </summary>
public class BaseCircleItem:BaseGraphics
public class BaseCircleItem:BaseGraphics,IReportContainer
{
public BaseCircleItem()
{
Items = new List<IPrintableObject>();
}
public override IExportColumn CreateExportColumn()
@ -42,5 +45,7 @@ namespace ICSharpCode.Reporting.Items @@ -42,5 +45,7 @@ namespace ICSharpCode.Reporting.Items
ex.DashStyle = DashStyle;
return ex;
}
public List<IPrintableObject> Items {get;private set;}
}
}

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

@ -25,23 +25,9 @@ namespace ICSharpCode.Reporting.PageBuilder.ExportColumns @@ -25,23 +25,9 @@ namespace ICSharpCode.Reporting.PageBuilder.ExportColumns
/// <summary>
/// Description of ExportCircle.
/// </summary>
public class ExportCircle:GraphicsContainer,IExportGraphics,IAcceptor
public class ExportCircle:GraphicsContainer,IExportGraphics
{
public void Accept(IVisitor visitor)
{
visitor.Visit(this);
}
public override ICSharpCode.Reporting.Arrange.IMeasurementStrategy MeasurementStrategy()
{
throw new NotImplementedException();
}
// public int Thickness {get;set;}
public DashStyle DashStyle {get;set;}
public LineCap StartLineCap {get;set;}

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

@ -139,37 +139,31 @@ namespace ICSharpCode.Reporting.WpfReportViewer.Visitor @@ -139,37 +139,31 @@ namespace ICSharpCode.Reporting.WpfReportViewer.Visitor
{
var border = CreateBorder(exportRectangle);
CanvasHelper.SetPosition(border, new Point(0,0));
var sp = new StackPanel();
sp.Orientation = Orientation.Horizontal;
var panel = new StackPanel();
panel.Orientation = Orientation.Horizontal;
foreach (var element in exportRectangle.ExportedItems) {
var acceptor = element as IAcceptor;
acceptor.Accept(this);
sp.Children.Add(UIElement);
acceptor.Accept(this);
panel.Children.Add(UIElement);
}
border.Child = sp;
border.Child = panel;
UIElement = border;
}
public override void Visit(ExportCircle exportCircle)
{
var pen = FixedDocumentCreator.CreateWpfPen(exportCircle);
var rad = CalcRad(exportCircle.Size);
var visual = new DrawingVisual();
using (var dc = visual.RenderOpen()){
dc.DrawEllipse(FixedDocumentCreator.ConvertBrush(exportCircle.BackColor),
pen,
new Point(exportCircle.Location.X + rad.X,
exportCircle.Location.Y + rad.Y),
rad.X,
rad.Y);
var containerCanvas = new Canvas();
var drawingElement = CircleVisual(exportCircle);
}
var dragingElement = new DrawingElement(visual);
UIElement = dragingElement;
containerCanvas.Children.Add(drawingElement);
foreach (var element in exportCircle.ExportedItems) {
var acceptor = element as IAcceptor;
acceptor.Accept(this);
containerCanvas.Children.Add(UIElement);
}
UIElement = containerCanvas;
}
@ -183,6 +177,22 @@ namespace ICSharpCode.Reporting.WpfReportViewer.Visitor @@ -183,6 +177,22 @@ namespace ICSharpCode.Reporting.WpfReportViewer.Visitor
}
DrawingElement CircleVisual(GraphicsContainer circle){
var pen = FixedDocumentCreator.CreateWpfPen(circle);
var rad = CalcRadius(circle.Size);
var visual = new DrawingVisual();
using (var dc = visual.RenderOpen()){
dc.DrawEllipse(FixedDocumentCreator.ConvertBrush(circle.BackColor),
pen,
new Point( rad.X,rad.Y),
rad.X,
rad.Y);
}
return new DrawingElement(visual);
}
Border CreateBorder(IExportColumn exportColumn)
{
double bT;
@ -202,7 +212,7 @@ namespace ICSharpCode.Reporting.WpfReportViewer.Visitor @@ -202,7 +212,7 @@ namespace ICSharpCode.Reporting.WpfReportViewer.Visitor
}
static Point CalcRad(System.Drawing.Size size) {
static Point CalcRadius(System.Drawing.Size size) {
return new Point(size.Width /2,size.Height /2);
}
@ -212,7 +222,4 @@ namespace ICSharpCode.Reporting.WpfReportViewer.Visitor @@ -212,7 +222,4 @@ namespace ICSharpCode.Reporting.WpfReportViewer.Visitor
public FixedPage FixedPage {get; private set;}
}
}

Loading…
Cancel
Save