Browse Source

TestView for .Reporting

MeasurementService and MeasureStrategy
reports
Peter Forstmeier 13 years ago
parent
commit
dd58109d39
  1. 3
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj
  2. 36
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Arrange/ArrangeStrategy.cs
  3. 48
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Arrange/ContainerArrangeStrategy.cs
  4. 1
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/DebugExporter.cs
  5. 2
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Factories/ExportColumnFactory.cs
  6. 40
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Globals/MeasurementService.cs
  7. 2
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IPrintableObject.cs
  8. 11
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseTextItem.cs
  9. 6
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/PrintableItem.cs
  10. 21
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportContainer.cs
  11. 2
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/BasePageBuilder.cs
  12. 21
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/Converter/ContainerConverter.cs
  13. 13
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/FormPageBuilder.cs
  14. 1
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ReportingFactory.cs
  15. 11
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/ContainerConverterFixture.cs
  16. 22
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/TestHelper.cs
  17. 2
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/TestReports/ReportWithTwoItems.srd
  18. 6
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/ICSharpCode.Reports.Addin.csproj
  19. 3
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Commands/FormsCommand.cs
  20. 30
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportDesignerView.cs
  21. 87
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/TestView/TestSecondaryView.cs

3
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj

@ -55,7 +55,7 @@ @@ -55,7 +55,7 @@
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="Src\Arrange\ArrangeStrategy.cs" />
<Compile Include="Src\Arrange\ContainerArrangeStrategy.cs" />
<Compile Include="Src\BaseClasses\Page.cs" />
<Compile Include="Src\BaseClasses\PageInfo.cs" />
<Compile Include="Src\Configuration\AssemblyInfo.cs" />
@ -69,6 +69,7 @@ @@ -69,6 +69,7 @@
<Compile Include="Src\Factories\ExportColumnFactory.cs" />
<Compile Include="Src\Factories\SectionFactory.cs" />
<Compile Include="Src\Globals\CreateGraphics.cs" />
<Compile Include="Src\Globals\MeasurementService.cs" />
<Compile Include="Src\Interfaces\Export\IExportColumn.cs" />
<Compile Include="Src\Interfaces\Export\IExportContainer.cs" />
<Compile Include="Src\Interfaces\Export\IPage.cs" />

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

@ -1,36 +0,0 @@ @@ -1,36 +0,0 @@
/*
* Created by SharpDevelop.
* User: Peter Forstmeier
* Date: 22.04.2013
* Time: 19:11
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using ICSharpCode.Reporting.Interfaces;
using ICSharpCode.Reporting.Items;
using ICSharpCode.Reporting.PageBuilder.ExportColumns;
namespace ICSharpCode.Reporting.Arrange
{
/// <summary>
/// Description of ArrangeStrategy.
/// </summary>
public interface IArrangeStrategy
{
void Arrange(IPrintableObject reportItem);
}
public class ContainerArrangeStrategy:IArrangeStrategy
{
public ContainerArrangeStrategy()
{
}
public void Arrange(IPrintableObject reportItem)
{
Console.WriteLine("Arrange {0}",reportItem.Name);
}
}
}

48
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Arrange/ContainerArrangeStrategy.cs

@ -0,0 +1,48 @@ @@ -0,0 +1,48 @@
/*
* Created by SharpDevelop.
* User: Peter Forstmeier
* Date: 22.04.2013
* Time: 19:11
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Drawing;
using ICSharpCode.Reporting.Globals;
using ICSharpCode.Reporting.Interfaces;
using ICSharpCode.Reporting.Items;
using ICSharpCode.Reporting.PageBuilder.ExportColumns;
namespace ICSharpCode.Reporting.Arrange
{
/// <summary>
/// Description of ArrangeStrategy.
/// </summary>
public interface IArrangeStrategy
{
void Arrange(IPrintableObject reportItem,Graphics graphics);
}
internal class ContainerArrangeStrategy:IArrangeStrategy
{
public ContainerArrangeStrategy()
{
}
public void Arrange(IPrintableObject reportItem,Graphics graphics)
{
Console.WriteLine("Arrange Container {0}",reportItem.Name);
}
}
internal class TextBasedArrangeStrategy:IArrangeStrategy
{
public void Arrange(IPrintableObject reportItem, Graphics graphics)
{
Console.WriteLine("\tArrange TextBasedItem {0}",reportItem.Name);
MeasurementService.Measure((ITextItem)reportItem,graphics);
}
}
}

1
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/DebugExporter.cs

@ -37,7 +37,6 @@ namespace ICSharpCode.Reporting.Exporter @@ -37,7 +37,6 @@ namespace ICSharpCode.Reporting.Exporter
void ShowDebug(IExportContainer container)
{
// var visitor = new DebugVisitor();
foreach (var item in container.ExportedItems) {
var exportContainer = item as IExportContainer;
var acceptor = item as IAcceptor;

2
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Factories/ExportColumnFactory.cs

@ -18,7 +18,7 @@ namespace ICSharpCode.Reporting.Factories @@ -18,7 +18,7 @@ namespace ICSharpCode.Reporting.Factories
/// <summary>
/// Description of ExportColumnFactory.
/// </summary>
public class ExportColumnFactory
internal class ExportColumnFactory
{
public ExportColumnFactory()
{

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

@ -0,0 +1,40 @@ @@ -0,0 +1,40 @@
/*
* Created by SharpDevelop.
* User: Peter Forstmeier
* Date: 30.04.2013
* Time: 19:44
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Drawing;
using ICSharpCode.Reporting.Items;
namespace ICSharpCode.Reporting.Globals
{
/// <summary>
/// Description of MeasurementService.
/// </summary>
internal class MeasurementService
{
public MeasurementService()
{
}
public static Size Measure (ITextItem item,Graphics graphics) {
if (!String.IsNullOrEmpty(item.Text)) {
SizeF size = graphics.MeasureString(item.Text.TrimEnd(),
item.Font,
item.Size.Width);
var i = (int)size.Height/item.Font.Height;
Console.WriteLine("\t\tMeasure <{0}> - {1} - {2}",item.Text,item.Size,size);
return size.ToSize();
}
return item.Size;
}
}
}

2
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IPrintableObject.cs

@ -8,6 +8,7 @@ @@ -8,6 +8,7 @@
*/
using System;
using System.Drawing;
using ICSharpCode.Reporting.Arrange;
using ICSharpCode.Reporting.Interfaces.Export;
namespace ICSharpCode.Reporting.Interfaces
@ -24,6 +25,7 @@ namespace ICSharpCode.Reporting.Interfaces @@ -24,6 +25,7 @@ namespace ICSharpCode.Reporting.Interfaces
public interface IPrintableObject:IReportObject {
IExportColumn CreateExportColumn();
IArrangeStrategy GetArrangeStrategy ();
}
}

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

@ -8,6 +8,7 @@ @@ -8,6 +8,7 @@
*/
using System;
using System.Drawing;
using ICSharpCode.Reporting.Arrange;
using ICSharpCode.Reporting.Globals;
using ICSharpCode.Reporting.Interfaces;
using ICSharpCode.Reporting.Interfaces.Export;
@ -21,6 +22,7 @@ namespace ICSharpCode.Reporting.Items @@ -21,6 +22,7 @@ namespace ICSharpCode.Reporting.Items
public interface ITextItem:IPrintableObject
{
Font Font {get;set;}
string Text {get;set;}
}
public class BaseTextItem:PrintableItem,ITextItem
@ -33,7 +35,9 @@ namespace ICSharpCode.Reporting.Items @@ -33,7 +35,9 @@ namespace ICSharpCode.Reporting.Items
public Font Font {get;set;}
public string Text {get;set;}
public override IExportColumn CreateExportColumn()
{
var ex = new ExportText();
@ -43,5 +47,12 @@ namespace ICSharpCode.Reporting.Items @@ -43,5 +47,12 @@ namespace ICSharpCode.Reporting.Items
ex.Font = Font;
return ex;
}
public override ICSharpCode.Reporting.Arrange.IArrangeStrategy GetArrangeStrategy()
{
return new TextBasedArrangeStrategy();
}
}
}

6
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/PrintableItem.cs

@ -8,6 +8,7 @@ @@ -8,6 +8,7 @@
*/
using System;
using System.Drawing;
using ICSharpCode.Reporting.Arrange;
using ICSharpCode.Reporting.Interfaces;
using ICSharpCode.Reporting.Interfaces.Export;
@ -26,5 +27,10 @@ namespace ICSharpCode.Reporting.Items @@ -26,5 +27,10 @@ namespace ICSharpCode.Reporting.Items
{
return null;
}
public virtual IArrangeStrategy GetArrangeStrategy ()
{
return null;
}
}
}

21
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportContainer.cs

@ -43,14 +43,19 @@ namespace ICSharpCode.Reporting.Items @@ -43,14 +43,19 @@ namespace ICSharpCode.Reporting.Items
};
}
IArrangeStrategy arrangeStrategy;
public IArrangeStrategy ArrangeStrategy {
get {if (arrangeStrategy == null) {
arrangeStrategy = new ContainerArrangeStrategy();
}
return arrangeStrategy; }
set { arrangeStrategy = value; }
// IArrangeStrategy arrangeStrategy;
//
// public IArrangeStrategy ArrangeStrategy {
// get {if (arrangeStrategy == null) {
// arrangeStrategy = new ContainerArrangeStrategy();
// }
// return arrangeStrategy; }
// set { arrangeStrategy = value; }
// }
public override IArrangeStrategy GetArrangeStrategy()
{
return new ContainerArrangeStrategy();
}
}
}

2
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/BasePageBuilder.cs

@ -22,7 +22,7 @@ namespace ICSharpCode.Reporting.PageBuilder @@ -22,7 +22,7 @@ namespace ICSharpCode.Reporting.PageBuilder
/// </summary>
public class BasePageBuilder:IReportCreator
{
// private readonly object addLock = new object();
public BasePageBuilder(IReportModel reportModel)
{

21
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/Converter/ContainerConverter.cs

@ -23,9 +23,17 @@ namespace ICSharpCode.Reporting.PageBuilder.Converter @@ -23,9 +23,17 @@ namespace ICSharpCode.Reporting.PageBuilder.Converter
/// </summary>
internal class ContainerConverter
{
public ContainerConverter(IReportContainer reportContainer,Point currentLocation )
private Graphics graphics;
public ContainerConverter(Graphics graphics,IReportContainer reportContainer,Point currentLocation )
{
if (graphics == null) {
throw new ArgumentNullException("graphics");
}
if (reportContainer == null) {
throw new ArgumentNullException("reportContainer");
}
this.graphics = graphics;
Container = reportContainer;
CurrentLocation = currentLocation;
}
@ -33,13 +41,18 @@ namespace ICSharpCode.Reporting.PageBuilder.Converter @@ -33,13 +41,18 @@ namespace ICSharpCode.Reporting.PageBuilder.Converter
public IExportContainer Convert() {
Console.WriteLine("Convert section for location {0}",CurrentLocation);
var strat = ((ReportContainer)Container).ArrangeStrategy;
strat.Arrange(Container);
// Arrange
var containerStrategy = Container.GetArrangeStrategy ();
containerStrategy.Arrange(Container,graphics);
var exportContainer = (ExportContainer)Container.CreateExportColumn();
exportContainer.Location = CurrentLocation;
var itemsList = new List<IExportColumn>();
foreach (var element in Container.Items) {
var textArrange = element.GetArrangeStrategy();
textArrange.Arrange(element,graphics);
var item = ExportColumnFactory.CreateItem(element);
itemsList.Add(item);
}

13
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/FormPageBuilder.cs

@ -10,6 +10,7 @@ using System; @@ -10,6 +10,7 @@ using System;
using System.Drawing;
using ICSharpCode.Reporting.BaseClasses;
using ICSharpCode.Reporting.Exporter;
using ICSharpCode.Reporting.Globals;
using ICSharpCode.Reporting.Interfaces;
using ICSharpCode.Reporting.Interfaces.Export;
using ICSharpCode.Reporting.PageBuilder.Converter;
@ -22,11 +23,11 @@ namespace ICSharpCode.Reporting.PageBuilder @@ -22,11 +23,11 @@ namespace ICSharpCode.Reporting.PageBuilder
/// </summary>
public class FormPageBuilder:BasePageBuilder
{
// private readonly object addLock = new object();
Graphics graphics;
public FormPageBuilder(IReportModel reportModel):base(reportModel)
{
graphics = CreateGraphics.FromSize(reportModel.ReportSettings.PageSize);
}
@ -41,7 +42,7 @@ namespace ICSharpCode.Reporting.PageBuilder @@ -41,7 +42,7 @@ namespace ICSharpCode.Reporting.PageBuilder
void BuildReportHeader()
{
if (Pages.Count == 0) {
var sc = new ContainerConverter(ReportModel.ReportHeader,CurrentLocation);
var sc = new ContainerConverter(graphics,ReportModel.ReportHeader,CurrentLocation);
var header =sc.Convert();
CurrentPage.ExportedItems.Add(header);
var r = new Rectangle(header.Location.X,header.Location.Y,header.Size.Width,header.Size.Height);
@ -51,7 +52,7 @@ namespace ICSharpCode.Reporting.PageBuilder @@ -51,7 +52,7 @@ namespace ICSharpCode.Reporting.PageBuilder
void BuildPageHeader()
{
var sc = new ContainerConverter(ReportModel.PageHeader,CurrentLocation);
var sc = new ContainerConverter(graphics,ReportModel.PageHeader,CurrentLocation);
var header =sc.Convert();
CurrentPage.ExportedItems.Add(header);
}
@ -68,7 +69,7 @@ namespace ICSharpCode.Reporting.PageBuilder @@ -68,7 +69,7 @@ namespace ICSharpCode.Reporting.PageBuilder
CurrentLocation = new Point(ReportModel.ReportSettings.LeftMargin,
ReportModel.ReportSettings.PageSize.Height - ReportModel.ReportSettings.BottomMargin - ReportModel.PageFooter.Size.Height);
var sc = new ContainerConverter(ReportModel.PageFooter,CurrentLocation);
var sc = new ContainerConverter(graphics,ReportModel.PageFooter,CurrentLocation);
var header =sc.Convert();
CurrentPage.ExportedItems.Add(header);
}
@ -80,7 +81,7 @@ namespace ICSharpCode.Reporting.PageBuilder @@ -80,7 +81,7 @@ namespace ICSharpCode.Reporting.PageBuilder
CurrentLocation = new Point(ReportModel.ReportSettings.LeftMargin,
ReportModel.ReportSettings.PageSize.Height - ReportModel.ReportSettings.BottomMargin - ReportModel.PageFooter.Size.Height);
var sc = new ContainerConverter(ReportModel.ReportFooter,CurrentLocation);
var sc = new ContainerConverter(graphics,ReportModel.ReportFooter,CurrentLocation);
var header =sc.Convert();
CurrentPage.ExportedItems.Add(header);
}

1
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ReportingFactory.cs

@ -38,7 +38,6 @@ namespace ICSharpCode.Reporting @@ -38,7 +38,6 @@ namespace ICSharpCode.Reporting
builder = new FormPageBuilder(reportModel);
}
return builder;
}

11
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/ContainerConverterFixture.cs

@ -21,11 +21,11 @@ namespace ICSharpCode.Reporting.Test.PageBuilder @@ -21,11 +21,11 @@ namespace ICSharpCode.Reporting.Test.PageBuilder
public class ContainerConverterFixture
{
private IReportContainer container;
private Graphics graphics;
[Test]
public void ConverterReturnExportContainer() {
var converter = new ContainerConverter(container,new Point(30,30));
var converter = new ContainerConverter(graphics,container,new Point(30,30));
var result = converter.Convert();
Assert.That(result,Is.InstanceOf(typeof(IExportContainer)));
}
@ -34,7 +34,7 @@ namespace ICSharpCode.Reporting.Test.PageBuilder @@ -34,7 +34,7 @@ namespace ICSharpCode.Reporting.Test.PageBuilder
[Test]
public void ConverterReturnExportContainerwithTwoItems()
{
var converter = new ContainerConverter(container,new Point(30,30));
var converter = new ContainerConverter(graphics,container,new Point(30,30));
var result = converter.Convert();
Assert.That(result.ExportedItems.Count,Is.EqualTo(2));
}
@ -43,7 +43,7 @@ namespace ICSharpCode.Reporting.Test.PageBuilder @@ -43,7 +43,7 @@ namespace ICSharpCode.Reporting.Test.PageBuilder
[Test]
public void LocationIsAdjusted() {
var location = new Point(30,30);
var converter = new ContainerConverter(container,location);
var converter = new ContainerConverter(graphics,container,location);
var result = converter.Convert();
Assert.That(result.Location,Is.EqualTo(location));
}
@ -71,6 +71,9 @@ namespace ICSharpCode.Reporting.Test.PageBuilder @@ -71,6 +71,9 @@ namespace ICSharpCode.Reporting.Test.PageBuilder
};
container.Items.Add(item1);
container.Items.Add(item2);
Bitmap bitmap = new Bitmap(700,1000);
graphics = Graphics.FromImage(bitmap);
}
}
}

22
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/TestHelper.cs

@ -53,27 +53,5 @@ namespace ICSharpCode.Reporting.Test @@ -53,27 +53,5 @@ namespace ICSharpCode.Reporting.Test
}
}
}
/*
public static void ShowDebug(IExportContainer container)
{
var visitor = new DebugVisitor();
foreach (var item in container.ExportedItems) {
if (item is IExportContainer) {
var a = item as IAcceptor;
if (a != null) {
Console.WriteLine("----");
a.Accept(visitor);
}
ShowDebug(item as IExportContainer);
} else {
var b = item as IAcceptor;
if (b != null) {
b.Accept(visitor);
}
}
}
}
*/
}
}

2
src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/TestReports/ReportWithTwoItems.srd

@ -76,7 +76,7 @@ @@ -76,7 +76,7 @@
<CanGrow>False</CanGrow>
<CanShrink>False</CanShrink>
<RTL>No</RTL>
<Text>BaseTextItem2147483646</Text>
<Text>TestText for Item in PageHeader</Text>
<DrawBorder>False</DrawBorder>
<FrameColor>Black</FrameColor>
<ForeColor>Black</ForeColor>

6
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/ICSharpCode.Reports.Addin.csproj

@ -255,8 +255,11 @@ @@ -255,8 +255,11 @@
<SubType>Form</SubType>
</Compile>
<Compile Include="Project\SecondaryViews\ReportPreview.cs" />
<Compile Include="Project\SecondaryViews\ReportViewerMessages.cs" />
<Compile Include="Project\SecondaryViews\ReportViewerMessages.cs">
<DependentUpon>ReportViewerSecondaryView.cs</DependentUpon>
</Compile>
<Compile Include="Project\SecondaryViews\ReportViewerSecondaryView.cs" />
<Compile Include="Project\SecondaryViews\TestView\TestSecondaryView.cs" />
<Compile Include="Project\SecondaryViews\WPFReportPreview.cs" />
<Compile Include="Project\SecondaryViews\XmlView.cs" />
<Compile Include="Project\Services\DefaultMemberRelationshipService.cs" />
@ -361,6 +364,7 @@ @@ -361,6 +364,7 @@
</ItemGroup>
<ItemGroup>
<Folder Include="Project\ReportItems\TypeProviders" />
<Folder Include="Project\SecondaryViews\TestView" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" />
</Project>

3
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Commands/FormsCommand.cs

@ -32,7 +32,8 @@ namespace ICSharpCode.Reports.Addin.Commands @@ -32,7 +32,8 @@ namespace ICSharpCode.Reports.Addin.Commands
protected static ReportDesignerView ReportDesigner {
get {
IWorkbenchWindow window = WorkbenchSingleton.Workbench.ActiveWorkbenchWindow;
// IWorkbenchWindow window = WorkbenchSingleton.Workbench.ActiveWorkbenchWindow;
IWorkbenchWindow window =SD.Workbench.ActiveWorkbenchWindow;
if (window == null) {
return null;
}

30
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportDesignerView.cs

@ -16,6 +16,7 @@ using ICSharpCode.Core; @@ -16,6 +16,7 @@ using ICSharpCode.Core;
using ICSharpCode.Reports.Addin.Commands;
using ICSharpCode.Reports.Addin.Designer;
using ICSharpCode.Reports.Addin.SecondaryViews;
using ICSharpCode.Reports.Addin.SecondaryViews.TestView;
using ICSharpCode.Reports.Core;
using ICSharpCode.Reports.Core.Exporter;
using ICSharpCode.Reports.Core.Exporter.ExportRenderer;
@ -50,9 +51,9 @@ namespace ICSharpCode.Reports.Addin @@ -50,9 +51,9 @@ namespace ICSharpCode.Reports.Addin
private ReportDesignerUndoEngine undoEngine;
private XmlView xmlView;
private ReportPreview preview;
private ReportPreview reportPreview;
private ReportViewerSecondaryView reportViewer;
private TestSecondaryView testView;
#region Constructor
@ -89,15 +90,21 @@ namespace ICSharpCode.Reports.Addin @@ -89,15 +90,21 @@ namespace ICSharpCode.Reports.Addin
private void SetupSecondaryView ()
{
Console.WriteLine("SetupSecondaryView ()");
xmlView = new XmlView(generator,this);
SecondaryViewContents.Add(xmlView);
preview = new ReportPreview(loader,this);
SecondaryViewContents.Add(preview);
reportPreview = new ReportPreview(loader,this);
SecondaryViewContents.Add(reportPreview);
reportViewer = new ReportViewerSecondaryView(loader,this);
SecondaryViewContents.Add(reportViewer);
var p = new WPFReportPreview(loader,this);
SecondaryViewContents.Add(p);
var wpfViewer = new WPFReportPreview(loader,this);
SecondaryViewContents.Add(wpfViewer);
testView = new TestSecondaryView(loader,this);
SecondaryViewContents.Add(testView);
}
@ -273,7 +280,7 @@ namespace ICSharpCode.Reports.Addin @@ -273,7 +280,7 @@ namespace ICSharpCode.Reports.Addin
{
LoggingService.Info("StartReportExplorer ()");
ReportExplorerPad explorerPad = CheckReportExplorer();
WorkbenchSingleton.Workbench.GetPad(typeof(ReportExplorerPad)).BringPadToFront();
SD.Workbench.GetPad(typeof(ReportExplorerPad)).BringPadToFront();
explorerPad.AddContent(this.loader.ReportModel);
explorerPad.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler(ReportExplorer_PropertyChanged);
}
@ -293,7 +300,7 @@ namespace ICSharpCode.Reports.Addin @@ -293,7 +300,7 @@ namespace ICSharpCode.Reports.Addin
{
ReportExplorerPad p = ReportExplorerPad.Instance;
if (p == null) {
WorkbenchSingleton.Workbench.GetPad(typeof(ReportExplorerPad)).CreatePad();
SD.Workbench.GetPad(typeof(ReportExplorerPad)).CreatePad();
}
return ReportExplorerPad.Instance;
}
@ -325,7 +332,8 @@ namespace ICSharpCode.Reports.Addin @@ -325,7 +332,8 @@ namespace ICSharpCode.Reports.Addin
if (shouldUpdateSelectableObjects) {
// update the property pad after the transaction is *really* finished
// (including updating the selection)
WorkbenchSingleton.SafeThreadAsyncCall(UpdatePropertyPad);
// WorkbenchSingleton.SafeThreadAsyncCall(UpdatePropertyPad);
SD.MainThread.InvokeAsync(null).FireAndForget();
shouldUpdateSelectableObjects = false;
}
}
@ -729,8 +737,8 @@ namespace ICSharpCode.Reports.Addin @@ -729,8 +737,8 @@ namespace ICSharpCode.Reports.Addin
if (this.xmlView != null) {
this.xmlView.Dispose();
}
if (this.preview != null) {
this.preview.Dispose();
if (this.reportPreview != null) {
this.reportPreview.Dispose();
}
if (this.reportViewer != null) {
this.reportViewer.Dispose();

87
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/TestView/TestSecondaryView.cs

@ -0,0 +1,87 @@ @@ -0,0 +1,87 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using ICSharpCode.Core;
using ICSharpCode.Reports.Addin.Commands;
using ICSharpCode.Reports.Core;
using ICSharpCode.Reports.Core.Globals;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Workbench;
namespace ICSharpCode.Reports.Addin.SecondaryViews.TestView
{
/// <summary>
/// Description of ReportViewerSecondaryView.
/// </summary>
public class TestSecondaryView: AbstractSecondaryViewContent
{
ReportDesignerLoader designerLoader;
ICSharpCode.Reports.Core.ReportViewer.PreviewControl control;
public TestSecondaryView(ReportDesignerLoader designerLoader,IViewContent content):base(content)
{
if (designerLoader == null) {
throw new ArgumentNullException("designerLoader");
}
if (content == null) {
throw new ArgumentNullException("content");
}
this.designerLoader = designerLoader;
this.control = new ICSharpCode.Reports.Core.ReportViewer.PreviewControl();
this.control.Messages = new ReportViewerMessages();
this.control.PreviewLayoutChanged += OnPreviewLayoutChanged;
base.TabPageText = "TestView";
}
private void OnPreviewLayoutChanged (object sender, EventArgs e)
{
LoadFromPrimary();
}
#region overrides
protected override void LoadFromPrimary()
{
ReportModel model = designerLoader.CreateRenderableModel();
AbstractPreviewCommand cmd = null;
switch (model.DataModel) {
case GlobalEnums.PushPullModel.FormSheet : {
cmd = new FormSheetToReportViewerCommand (model,control);
break;
}
case GlobalEnums.PushPullModel.PullData:{
cmd = new PullModelToReportViewerCommand(model,control);
break;
}
case GlobalEnums.PushPullModel.PushData:{
cmd = new PushModelToReportViewerCommand(model,control);
break;
}
default:
throw new InvalidReportModelException();
}
cmd.Run();
}
protected override void SaveToPrimary()
{
// throw new NotImplementedException();
}
#endregion
public override object Control {
get {
return this.control;
}
}
}
}
Loading…
Cancel
Save