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

Commit b3946f3

Browse files
CQA OverviewReport.srd is running, this report can be used as an example to handle SectionEvents, useful to work with ReportItems at run time.
1 parent c56fbe5 commit b3946f3

16 files changed

Lines changed: 145 additions & 90 deletions

File tree

SharpDevelop.Tests.sln

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11

2-
Microsoft Visual Studio Solution File, Format Version 11.00
3-
# Visual Studio 2010
2+
Microsoft Visual Studio Solution File, Format Version 12.00
3+
# Visual Studio 2012
44
# SharpDevelop 5.0
5+
VisualStudioVersion = 12.0.20827.3
6+
MinimumVisualStudioVersion = 10.0.40219.1
57
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Main", "Main", "{256F5C28-532C-44C0-8AB8-D8EC5E492E01}"
68
EndProject
79
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop.BuildWorker35", "src\Main\ICSharpCode.SharpDevelop.BuildWorker35\ICSharpCode.SharpDevelop.BuildWorker35.csproj", "{B5F54272-49F0-40DB-845A-8D837875D3BA}"

src/AddIns/Analysis/CodeQuality/Gui/MainView.xaml.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,6 @@ void OverviewReport_Click(object sender, RoutedEventArgs e)
9797

9898
void DependecyReport_Click(object sender, RoutedEventArgs e)
9999
{
100-
101100
var dependencyReport = new DependencyReport(fileNames);
102101
var reportCreator = dependencyReport.Run(list);
103102
var previewViewModel = new PreviewViewModel(dependencyReport.ReportSettings,reportCreator.Pages);

src/AddIns/Analysis/CodeQuality/Reporting/DependencyReport.cs

Lines changed: 15 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ namespace ICSharpCode.CodeQuality.Reporting
3232
/// </summary>
3333
public class DependencyReport:BaseReport
3434
{
35-
private const string overviewReport = "DependencyReport.srd";
35+
const string overviewReport = "DependencyReport.srd";
3636

3737
public DependencyReport(List<string> fileNames):base(fileNames)
3838
{
@@ -41,35 +41,31 @@ public DependencyReport(List<string> fileNames):base(fileNames)
4141
public IReportCreator Run(ReadOnlyCollection<AssemblyNode> list)
4242
{
4343
var newList = MakeList (list);
44-
45-
Assembly asm = Assembly.GetExecutingAssembly();
46-
System.IO.Stream stream = asm.GetManifestResourceStream("ICSharpCode.CodeQuality.Reporting.DependencyReport.srd");
47-
44+
var asm = Assembly.GetExecutingAssembly();
45+
var stream = asm.GetManifestResourceStream("ICSharpCode.CodeQuality.Reporting.DependencyReport.srd");
4846
var reportingFactory = new ReportingFactory();
4947
var reportCreator = reportingFactory.ReportCreator (stream,newList);
5048
ReportSettings = reportingFactory.ReportModel.ReportSettings;
5149
reportCreator.BuildExportList();
5250
return reportCreator;
5351
}
52+
5453

55-
56-
private List <DependencyViewModel> MakeList (ReadOnlyCollection<AssemblyNode> list)
54+
List <DependencyViewModel> MakeList (ReadOnlyCollection<AssemblyNode> list)
5755
{
5856
var newList = new List<DependencyViewModel>();
5957
foreach (var baseNode in list) {
6058
foreach (var element in list) {
6159
if (baseNode.Name != element.Name) {
62-
63-
64-
var referenceCount = baseNode.GetUses(element);
65-
if (referenceCount > 0) {
66-
newList.Add(new DependencyViewModel()
67-
{
68-
Node = baseNode,
69-
References = element.Name,
70-
ReferenceCount = referenceCount
71-
});
72-
}
60+
var referenceCount = baseNode.GetUses(element);
61+
if (referenceCount > 0) {
62+
newList.Add(new DependencyViewModel()
63+
{
64+
Node = baseNode,
65+
References = element.Name,
66+
ReferenceCount = referenceCount
67+
});
68+
}
7369
}
7470
}
7571
}
@@ -78,7 +74,7 @@ public IReportCreator Run(ReadOnlyCollection<AssemblyNode> list)
7874
}
7975

8076

81-
internal class DependencyViewModel:ReportViewModel
77+
class DependencyViewModel:ReportViewModel
8278
{
8379
public DependencyViewModel()
8480
{

src/AddIns/Analysis/CodeQuality/Reporting/OverviewReport.cs

Lines changed: 50 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,14 @@
1919
using System;
2020
using System.Collections.Generic;
2121
using System.Collections.ObjectModel;
22+
using System.IO;
2223
using System.Linq;
2324
using System.Reflection;
2425

2526
using ICSharpCode.NRefactory.Utils;
2627
using ICSharpCode.Reporting;
2728
using ICSharpCode.Reporting.Interfaces;
29+
using ICSharpCode.Reporting.Items;
2830
using ICSharpCode.CodeQuality.Engine.Dom;
2931

3032
namespace ICSharpCode.CodeQuality.Reporting
@@ -35,50 +37,77 @@ namespace ICSharpCode.CodeQuality.Reporting
3537
public class OverviewReport:BaseReport
3638
{
3739
private const string overviewReport = "OverviewReport.srd";
40+
ReadOnlyCollection<AssemblyNode> list;
3841

3942
public OverviewReport(List<string> fileNames):base(fileNames)
4043
{
4144
}
4245

4346
public IReportCreator Run(ReadOnlyCollection<AssemblyNode> list)
4447
{
45-
48+
this.list = list;
4649
var asm = Assembly.GetExecutingAssembly();
4750
var stream = asm.GetManifestResourceStream("ICSharpCode.CodeQuality.Reporting.Overviewreport.srd");
4851

49-
50-
var newList = from c in list
51-
select new OverviewViewModel { Node = c};
52+
var viewModelList = CreateViewModel(list);
5253

5354
var reportingFactory = new ReportingFactory();
54-
var reportCreator = reportingFactory.ReportCreator (stream,newList);
55+
var reportCreator = reportingFactory.ReportCreator (stream,viewModelList);
5556
ReportSettings = reportingFactory.ReportModel.ReportSettings;
56-
var reportParameters = new ParameterCollection();
57-
reportParameters.Add(new BasicParameter ("param1",base.FileNames[0]));
58-
reportParameters.Add(new BasicParameter ("param2",list.Count.ToString()));
59-
60-
ReportSettings.ParameterCollection.AddRange(reportParameters);
57+
// var reportParameters = new ParameterCollection();
58+
// reportParameters.Add(new BasicParameter ("param1",base.FileNames[0]));
59+
// reportParameters.Add(new BasicParameter ("param2",list.Count.ToString()));
60+
//
61+
// ReportSettings.ParameterCollection.AddRange(reportParameters);
62+
reportCreator.SectionRendering += HandleSectionEvents;
6163
reportCreator.BuildExportList();
6264
return reportCreator;
63-
/*
64-
var model = ReportEngine.LoadReportModel(stream);
65-
ReportSettings = model.ReportSettings;
66-
65+
}
66+
67+
68+
static IEnumerable<OverviewViewModel> CreateViewModel(ReadOnlyCollection<AssemblyNode> list)
69+
{
70+
var newList = from c in list
71+
select new OverviewViewModel {
72+
Node = c
73+
};
74+
return newList;
75+
}
76+
6777

78+
void HandleSectionEvents(object sender, SectionEventArgs e)
79+
{
80+
var sectionName = e.Section.Name;
81+
if (sectionName == ReportSectionNames.ReportHeader) {
82+
83+
var param1 = (BaseTextItem)e.Section.Items.FirstOrDefault(n => n.Name == "Param1");
84+
FileInfo fi =new FileInfo(FileNames[0]);
85+
// var s = fi..Directory + fi.Name;
86+
param1.Text = fi.Name;
87+
var param2 = (BaseTextItem)e.Section.Items.FirstOrDefault(n => n.Name == "Param2");
88+
param2.Text = list.Count.ToString();
89+
}
6890

91+
else if (sectionName == ReportSectionNames.ReportPageHeader) {
92+
Console.WriteLine("PushPrinting :" +ReportSectionNames .ReportPageHeader);
93+
}
6994

95+
else if (sectionName == ReportSectionNames.ReportDetail){
96+
// Console.WriteLine("PushPrinting :" + ReportSectionNames.ReportDetail);
97+
}
7098

71-
IReportCreator creator = ReportEngine.CreatePageBuilder(model,r.ToList(),p);
72-
creator.BuildExportList();
73-
return creator;
74-
*/
75-
return null;
99+
else if (sectionName == ReportSectionNames.ReportPageFooter){
100+
// Console.WriteLine("PushPrinting :" + ReportSectionNames.ReportPageFooter);
101+
}
102+
103+
else if (sectionName == ReportSectionNames.ReportFooter){
104+
// Console.WriteLine("PushPrinting :" + ReportSectionNames.ReportFooter);
105+
}
76106
}
77-
78107
}
79108

80109

81-
internal class OverviewViewModel:ReportViewModel
110+
class OverviewViewModel:ReportViewModel
82111
{
83112
public OverviewViewModel ()
84113
{

src/AddIns/Analysis/CodeQuality/Reporting/Overviewreport.srd

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@
9696
<DrawBorder>False</DrawBorder>
9797
<FrameColor>Black</FrameColor>
9898
<ForeColor>ControlText</ForeColor>
99-
<Name>BaseTextItem2147483639</Name>
99+
<Name>Param2</Name>
100100
</BaseTextItem>
101101
<BaseTextItem>
102102
<Location>27, 118</Location>

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -172,6 +172,7 @@
172172
<Compile Include="Src\Pdf\PdfHelper.cs" />
173173
<Compile Include="Src\Pdf\PdfVisitor.cs" />
174174
<Compile Include="Src\ReportingFactory.cs" />
175+
<Compile Include="Src\ReportSectionNames.cs" />
175176
<Compile Include="Src\Wpf\PreviewViewModel.cs" />
176177
<Compile Include="Src\Wpf\Visitor\CanvasExtension.cs" />
177178
<Compile Include="Src\Wpf\Visitor\CanvasHelper.cs" />

src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Globals/GlobalEnums.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,17 +25,17 @@ namespace ICSharpCode.Reporting.Globals
2525
/// </summary>
2626
public sealed class GlobalEnums
2727
{
28-
private GlobalEnums() {
28+
GlobalEnums() {
2929
}
30-
30+
/*
3131
public enum ReportSection {
3232
ReportHeader,
3333
ReportPageHeader,
3434
ReportDetail,
3535
ReportPageFooter,
3636
ReportFooter
3737
}
38-
38+
*/
3939
///<summary>Technics to get the data
4040
/// Push : report get's a ready filld dataset or something tah implements IList
4141
/// Pull : report has to fill data by themself

src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IReportContainer.cs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,6 @@
1818

1919
using System;
2020
using System.Collections.Generic;
21-
using ICSharpCode.Reporting.Interfaces.Export;
22-
using ICSharpCode.Reporting.Items;
2321

2422
namespace ICSharpCode.Reporting.Interfaces
2523
{

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

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ namespace ICSharpCode.Reporting.PageBuilder
4040
public class BasePageBuilder:IReportCreator
4141
{
4242

43-
public event EventHandler<SectionEventArgs> SectionRendering;
43+
public event EventHandler<SectionEventArgs> SectionRendering;
4444

4545
public BasePageBuilder(IReportModel reportModel){
4646
if (reportModel == null) {
@@ -55,20 +55,14 @@ public BasePageBuilder(IReportModel reportModel){
5555

5656
void BuildReportHeader(){
5757
if (Pages.Count == 0) {
58-
var sea = new SectionEventArgs(ReportModel.ReportHeader);
59-
60-
Raise<SectionEventArgs> (SectionRendering,this,sea);
61-
62-
var header = CreateSection(sea.Section,CurrentLocation);
63-
58+
var header = CreateSection(ReportModel.ReportHeader,CurrentLocation);
6459
var r = new Rectangle(header.Location.X, header.Location.Y, header.Size.Width, header.Size.Height);
6560
CurrentLocation = new Point (ReportModel.ReportSettings.LeftMargin,r.Bottom + 1);
6661
AddSectionToPage(header);
67-
Raise<SectionEventArgs> (SectionRendering,this,new SectionEventArgs(ReportModel.ReportHeader));
6862
}
6963
}
7064

71-
protected static void Raise <T>(EventHandler<T> handler, object sender, T e)
65+
static void Raise <T>(EventHandler<T> handler, object sender, T e)
7266
where T: EventArgs{
7367
// Copy to a temporary variable to be thread-safe.
7468
EventHandler<T> temp = handler;
@@ -129,6 +123,8 @@ protected bool PageFull(IExportContainer container) {
129123
#endregion
130124

131125
protected IExportContainer CreateSection(IReportContainer container,Point location){
126+
var sea = new SectionEventArgs(container);
127+
Raise<SectionEventArgs> (SectionRendering,this,sea);
132128
var containerConverter = new ContainerConverter(location);
133129
var convertedContainer = containerConverter.ConvertToExportContainer(container);
134130

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,8 @@ public override void BuildExportList()
3838
SetupExpressionRunner(ReportModel.ReportSettings,null);
3939
base.BuildExportList();
4040
BuildDetail();
41-
base.AddPage(CurrentPage);
41+
BuildReportFooter();
42+
AddPage(CurrentPage);
4243
UpdatePageInfo();
4344
// RunDebugVisitor();
4445
ExpressionRunner.Run();

0 commit comments

Comments
 (0)