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

9
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/Graphics/BaseRectangleItem.cs

@ -16,6 +16,8 @@
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE. // DEALINGS IN THE SOFTWARE.
using System.Collections.Generic;
using ICSharpCode.Reporting.Interfaces;
using ICSharpCode.Reporting.Interfaces.Export; using ICSharpCode.Reporting.Interfaces.Export;
using ICSharpCode.Reporting.PageBuilder.ExportColumns; using ICSharpCode.Reporting.PageBuilder.ExportColumns;
@ -24,10 +26,11 @@ namespace ICSharpCode.Reporting.Items
/// <summary> /// <summary>
/// Description of BaseRectangleItem. /// Description of BaseRectangleItem.
/// </summary> /// </summary>
public class BaseRectangleItem:BaseGraphics public class BaseRectangleItem:BaseGraphics,IReportContainer
{ {
public BaseRectangleItem() public BaseRectangleItem()
{ {
Items = new List<IPrintableObject>();
} }
@ -45,5 +48,9 @@ namespace ICSharpCode.Reporting.Items
ex.EndLineCap = EndLineCap; ex.EndLineCap = EndLineCap;
return ex; 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 @@
// DEALINGS IN THE SOFTWARE. // DEALINGS IN THE SOFTWARE.
using System; using System;
using System.Collections.Generic;
using System.Drawing.Drawing2D; using System.Drawing.Drawing2D;
using ICSharpCode.Reporting.Arrange;
using ICSharpCode.Reporting.Exporter.Visitors; using ICSharpCode.Reporting.Exporter.Visitors;
using ICSharpCode.Reporting.Interfaces.Export; using ICSharpCode.Reporting.Interfaces.Export;
@ -26,23 +28,24 @@ namespace ICSharpCode.Reporting.PageBuilder.ExportColumns
/// <summary> /// <summary>
/// Description of ExportRectangle. /// Description of ExportRectangle.
/// </summary> /// </summary>
public class ExportRectangle:ExportColumn,IExportGraphics,IAcceptor public class ExportRectangle:ExportContainer,IExportGraphics,IAcceptor
{
public ExportRectangle()
{ {
public ExportRectangle() {
ExportedItems = new List<IExportColumn>();
} }
public void Accept(IVisitor visitor) public void Accept(IVisitor visitor)
{ {
visitor.Visit(this); visitor.Visit(this);
} }
public List<IExportColumn> ExportedItems {get;private set;}
public override ICSharpCode.Reporting.Arrange.IMeasurementStrategy MeasurementStrategy()
{ // public override IMeasurementStrategy MeasurementStrategy()
throw new NotImplementedException(); // {
} // throw new NotImplementedException();
// }
public int Thickness {get;set;} public int Thickness {get;set;}

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

@ -17,6 +17,7 @@
// DEALINGS IN THE SOFTWARE. // DEALINGS IN THE SOFTWARE.
using System; using System;
using System.Collections.Generic;
using System.Windows; using System.Windows;
using System.Windows.Controls; using System.Windows.Controls;
using System.Windows.Documents; using System.Windows.Documents;
@ -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) { foreach (var element in exportedItems) {
var container = element as ExportContainer; var container = element as ExportContainer;
if (container != null) { if (container != null) {
var containerCanvas = FixedDocumentCreator.CreateContainer(container); var containerCanvas = FixedDocumentCreator.CreateContainer(container);
CanvasHelper.SetPosition(containerCanvas,new Point(container.Location.X,container.Location.Y)); 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); myCanvas.Children.Add(containerCanvas);
PerformList(containerCanvas,container.ExportedItems); PerformList(containerCanvas,container.ExportedItems);
}
} else { } else {
var acceptor = element as IAcceptor; var acceptor = element as IAcceptor;
acceptor.Accept(this); acceptor.Accept(this);
@ -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){ 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 ft = FixedDocumentCreator.CreateFormattedText((ExportText)exportColumn);
var visual = new DrawingVisual(); var visual = new DrawingVisual();

Loading…
Cancel
Save