Browse Source

Rectangle as Container for other Items

pull/478/head
Peter Forstmeier 12 years ago
parent
commit
0a0c588a8c
  1. 6
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/Services/DefaultServiceContainer.cs
  2. 9
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/Graphics/BaseRectangleItem.cs
  3. 19
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportRectangle.cs
  4. 23
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Wpf/Visitor/WpfVisitor.cs

6
src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/Services/DefaultServiceContainer.cs

@ -11,7 +11,10 @@ using System.Collections; @@ -11,7 +11,10 @@ using System.Collections;
using System.ComponentModel.Design;
using ICSharpCode.Core;
internal class DefaultServiceContainer : IServiceContainer, IDisposable
namespace ICSharpCode.Reporting.Addin.Services{
class DefaultServiceContainer : IServiceContainer, IDisposable
{
IServiceContainer serviceContainer;
Hashtable services = new Hashtable();
@ -110,3 +113,4 @@ internal class DefaultServiceContainer : IServiceContainer, IDisposable @@ -110,3 +113,4 @@ internal class DefaultServiceContainer : IServiceContainer, IDisposable
}
#endregion
}
}

9
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/Graphics/BaseRectangleItem.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 BaseRectangleItem.
/// </summary>
public class BaseRectangleItem:BaseGraphics
public class BaseRectangleItem:BaseGraphics,IReportContainer
{
public BaseRectangleItem()
{
Items = new List<IPrintableObject>();
}
@ -45,5 +48,9 @@ namespace ICSharpCode.Reporting.Items @@ -45,5 +48,9 @@ namespace ICSharpCode.Reporting.Items
ex.EndLineCap = EndLineCap;
return ex;
}
public List<IPrintableObject> Items {get;private set;}
}
}

19
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportRectangle.cs

@ -17,7 +17,9 @@ @@ -17,7 +17,9 @@
// DEALINGS IN THE SOFTWARE.
using System;
using System.Collections.Generic;
using System.Drawing.Drawing2D;
using ICSharpCode.Reporting.Arrange;
using ICSharpCode.Reporting.Exporter.Visitors;
using ICSharpCode.Reporting.Interfaces.Export;
@ -26,23 +28,24 @@ namespace ICSharpCode.Reporting.PageBuilder.ExportColumns @@ -26,23 +28,24 @@ namespace ICSharpCode.Reporting.PageBuilder.ExportColumns
/// <summary>
/// Description of ExportRectangle.
/// </summary>
public class ExportRectangle:ExportColumn,IExportGraphics,IAcceptor
{
public ExportRectangle()
public class ExportRectangle:ExportContainer,IExportGraphics,IAcceptor
{
public ExportRectangle() {
ExportedItems = new List<IExportColumn>();
}
public void Accept(IVisitor visitor)
{
visitor.Visit(this);
}
public List<IExportColumn> ExportedItems {get;private set;}
public override ICSharpCode.Reporting.Arrange.IMeasurementStrategy MeasurementStrategy()
{
throw new NotImplementedException();
}
// public override IMeasurementStrategy MeasurementStrategy()
// {
// throw new NotImplementedException();
// }
public int Thickness {get;set;}

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

@ -17,6 +17,7 @@ @@ -17,6 +17,7 @@
// DEALINGS IN THE SOFTWARE.
using System;
using System.Collections.Generic;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
@ -59,15 +60,23 @@ namespace ICSharpCode.Reporting.WpfReportViewer.Visitor @@ -59,15 +60,23 @@ namespace ICSharpCode.Reporting.WpfReportViewer.Visitor
}
void PerformList(Canvas myCanvas, System.Collections.Generic.List<IExportColumn> exportedItems)
void PerformList(Canvas myCanvas, List<IExportColumn> exportedItems)
{
foreach (var element in exportedItems) {
var container = element as ExportContainer;
if (container != null) {
var containerCanvas = FixedDocumentCreator.CreateContainer(container);
CanvasHelper.SetPosition(containerCanvas,new Point(container.Location.X,container.Location.Y));
if (container is ExportRectangle) {
DrawRectangleAsContainer(container);
containerCanvas.Children.Add(UIElement);
myCanvas.Children.Add(containerCanvas);
} else {
// var containerCanvas = FixedDocumentCreator.CreateContainer(container);
// CanvasHelper.SetPosition(containerCanvas,new Point(container.Location.X,container.Location.Y));
myCanvas.Children.Add(containerCanvas);
PerformList(containerCanvas,container.ExportedItems);
}
} else {
var acceptor = element as IAcceptor;
acceptor.Accept(this);
@ -76,13 +85,15 @@ namespace ICSharpCode.Reporting.WpfReportViewer.Visitor @@ -76,13 +85,15 @@ namespace ICSharpCode.Reporting.WpfReportViewer.Visitor
}
}
void DrawRectangleAsContainer(ExportContainer container)
{
var rect = container as ExportRectangle;
if (rect != null) {
Visit(rect);
}
}
public override void Visit(ExportText exportColumn){
/*
var textBlock = FixedDocumentCreator.CreateTextBlock((ExportText)exportColumn,ShouldSetBackcolor(exportColumn));
CanvasHelper.SetPosition(textBlock,new Point(exportColumn.Location.X,exportColumn.Location.Y));
UIElement = textBlock;
*/
var ft = FixedDocumentCreator.CreateFormattedText((ExportText)exportColumn);
var visual = new DrawingVisual();

Loading…
Cancel
Save