diff --git a/src/AddIns/Analysis/CodeQuality/CodeQuality.csproj b/src/AddIns/Analysis/CodeQuality/CodeQuality.csproj index 0db5a9764a..dfa9dcf52d 100644 --- a/src/AddIns/Analysis/CodeQuality/CodeQuality.csproj +++ b/src/AddIns/Analysis/CodeQuality/CodeQuality.csproj @@ -91,7 +91,9 @@ - + + + @@ -101,6 +103,9 @@ Always + + Always + Always diff --git a/src/AddIns/Analysis/CodeQuality/Gui/MainView.xaml b/src/AddIns/Analysis/CodeQuality/Gui/MainView.xaml index acfd8d2bfa..b5d941d54c 100644 --- a/src/AddIns/Analysis/CodeQuality/Gui/MainView.xaml +++ b/src/AddIns/Analysis/CodeQuality/Gui/MainView.xaml @@ -12,9 +12,9 @@ - + + + diff --git a/src/AddIns/Analysis/CodeQuality/Gui/MainView.xaml.cs b/src/AddIns/Analysis/CodeQuality/Gui/MainView.xaml.cs index af88a38ee1..45a357b808 100644 --- a/src/AddIns/Analysis/CodeQuality/Gui/MainView.xaml.cs +++ b/src/AddIns/Analysis/CodeQuality/Gui/MainView.xaml.cs @@ -91,5 +91,14 @@ namespace ICSharpCode.CodeQuality.Gui viewer.SetBinding(previewViewModel); reportTab.Visibility = Visibility.Visible; } + + void DependecyReport_Click(object sender, RoutedEventArgs e) + { + var dependency = new DependencyReport(fileNames); + var reportCreator = dependency.Run(list); + var previewViewModel = new PreviewViewModel(dependency.ReportSettings,reportCreator.Pages); + viewer.SetBinding(previewViewModel); + reportTab.Visibility = Visibility.Visible; + } } } \ No newline at end of file diff --git a/src/AddIns/Analysis/CodeQuality/Reporting/BaseReport.cs b/src/AddIns/Analysis/CodeQuality/Reporting/BaseReport.cs new file mode 100644 index 0000000000..d607bffd55 --- /dev/null +++ b/src/AddIns/Analysis/CodeQuality/Reporting/BaseReport.cs @@ -0,0 +1,46 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 25.02.2012 + * Time: 21:04 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using System.Collections.Generic; +using System.IO; +using System.Reflection; + +using ICSharpCode.Reports.Core; + +namespace ICSharpCode.CodeQuality.Reporting +{ + /// + /// Description of BaseReport. + /// + public class BaseReport + { + private const string reportDir = "Reporting"; + + public BaseReport(List fileNames) + { + + if (fileNames.Count > 0) + { + this.FileNames = new List(); + this.FileNames.AddRange(fileNames); + } + } + + protected string MakeReportFileName (string reportName) + { + Uri uri = new Uri(Assembly.GetExecutingAssembly().GetName().CodeBase); + var fullname = uri.LocalPath; + return Path.GetDirectoryName(fullname) + Path.DirectorySeparatorChar + reportDir + Path.DirectorySeparatorChar + reportName; + } + + protected List FileNames {get;private set;} + + public ReportSettings ReportSettings {get;set;} + } +} diff --git a/src/AddIns/Analysis/CodeQuality/Reporting/DependencyReport.cs b/src/AddIns/Analysis/CodeQuality/Reporting/DependencyReport.cs new file mode 100644 index 0000000000..ec3e1c8df8 --- /dev/null +++ b/src/AddIns/Analysis/CodeQuality/Reporting/DependencyReport.cs @@ -0,0 +1,78 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 25.02.2012 + * Time: 21:17 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; + +using ICSharpCode.CodeQuality.Engine.Dom; +using ICSharpCode.Reports.Core; + +namespace ICSharpCode.CodeQuality.Reporting +{ + /// + /// Description of Dependencyrepor. + /// + public class DependencyReport:BaseReport + { + private const string overviewReport = "DependencyReport.srd"; + public DependencyReport(List fileNames):base(fileNames) + { + } + + public IReportCreator Run(ReadOnlyCollection list) + { + var reportFileName = MakeReportFileName(overviewReport); + var model = ReportEngine.LoadReportModel(reportFileName); + ReportSettings = model.ReportSettings; + var newList = MakeList (list); + + IReportCreator creator = ReportEngine.CreatePageBuilder(model,newList,null); + creator.BuildExportList(); + return creator; + } + + List MakeList (ReadOnlyCollection list) + { + AssemblyNode baseNode = list[0]; + var newList = new List(); + foreach (var element in list) { + var i = baseNode.GetUses(element); + if (i > 0) { + Console.WriteLine("{0} ref {1} times {2}",baseNode.Name,element.Name,i); + newList.Add(new DependencyViewModel() + { + Node = baseNode, + References = element.Name + }); + } + } + return newList; + } + } + + + internal class DependencyViewModel + { + public DependencyViewModel() + { + + } + + public AssemblyNode Node {get;set;} + + + public string Name + { + get {return Node.Name;} + } + + public string References {get;set;} + } + +} diff --git a/src/AddIns/Analysis/CodeQuality/Reporting/DependencyReport.srd b/src/AddIns/Analysis/CodeQuality/Reporting/DependencyReport.srd new file mode 100644 index 0000000000..ab19d8a7e4 --- /dev/null +++ b/src/AddIns/Analysis/CodeQuality/Reporting/DependencyReport.srd @@ -0,0 +1,290 @@ + + + + + DependencyReport + FormSheet + 50 + 50 + 50 + 50 + 827, 1169 + False + Millimeter + 5, 5, 5, 5 + + + + + Ascending + Name + System.String + + + + + + + Text + FormSheet + No Data for this Report + Microsoft Sans Serif, 10pt + True + + + + + 50, 50 + 727, 60 + White + False + 0 + 0 + False + False + + + 157, 3 + 414, 40 + White + True + Segoe UI, 18pt, style=Bold + None + TopLeft + False + False + No + SharpDevelop CodeQuality Analysis + False + Black + Black + BaseTextItem2147483637 + + + Black + ReportHeader + + + 50, 125 + 727, 69 + White + False + 0 + 0 + False + False + + + 22, 47 + 660, 10 + White + True + Black + 10, 5 + 647, 5 + Flat + Flat + Flat + Solid + 4 + BaseLineItem1 + + + 222, 3 + 257, 26 + White + True + Microsoft Sans Serif, 15.75pt + None + TopLeft + False + False + System.String + No + Analysis Overview Report + False + Black + Black + Overview + + + 563, 3 + 100, 26 + White + True + Segoe UI, 15.75pt + None + TopLeft + False + False + No + =Today() + False + Black + ControlText + BaseTextItem2147483638 + + + Black + ReportPageHeader + + + 50, 209 + 727, 115 + White + False + 0 + 0 + False + False + + + 31, 72 + 641, 30 + White + True + False + Black + Black + + + 254, 4 + 156, 20 + White + True + Microsoft Sans Serif, 10pt + None + TopLeft + False + False + No + References + False + Black + Black + References + BaseDataItem2 + + + + 0 + BaseRowItem1 + + + 31, 22 + 641, 30 + LightGray + True + False + Black + Black + + + 254, 2 + 100, 20 + White + True + Microsoft Sans Serif, 10pt + None + TopLeft + False + False + No + References + False + Black + Black + BaseTextItem2147483636 + + + 12, 3 + 211, 20 + White + True + Microsoft Sans Serif, 10pt + None + TopLeft + False + False + No + BaseDataItem1 + False + Black + Black + Name + BaseDataItem1 + + + + 0 + False + GroupHeader1 + + + Black + ReportDetail + + + 50, 339 + 727, 60 + White + False + 0 + 0 + False + False + + + 31, 5 + 573, 20 + White + True + Segoe UI, 9.75pt + None + TopLeft + False + False + No + = Globals!ReportFolder + '\' + Globals!ReportName + False + Black + ControlText + BaseTextItem2147483641 + + + 622, 5 + 100, 20 + White + True + Microsoft Sans Serif, 10pt + None + TopLeft + False + False + System.String + No + =Globals!PageNumber + False + Black + Black + PageNumber1 + + + Black + ReportPageFooter + + + 50, 414 + 727, 60 + White + False + 0 + 0 + False + False + + Black + ReportFooter + + + \ No newline at end of file diff --git a/src/AddIns/Analysis/CodeQuality/Reporting/Overview.cs b/src/AddIns/Analysis/CodeQuality/Reporting/OverviewReport.cs similarity index 70% rename from src/AddIns/Analysis/CodeQuality/Reporting/Overview.cs rename to src/AddIns/Analysis/CodeQuality/Reporting/OverviewReport.cs index 506cd3000e..fdce388624 100644 --- a/src/AddIns/Analysis/CodeQuality/Reporting/Overview.cs +++ b/src/AddIns/Analysis/CodeQuality/Reporting/OverviewReport.cs @@ -12,65 +12,42 @@ using System.Collections.ObjectModel; using System.IO; using System.Linq; using System.Reflection; -using System.Windows; - using ICSharpCode.CodeQuality.Engine.Dom; +using ICSharpCode.CodeQuality.Reporting; using ICSharpCode.NRefactory.Utils; using ICSharpCode.Reports.Core; -using ICSharpCode.Reports.Core.Exporter.ExportRenderer; -using ICSharpCode.Reports.Core.WpfReportViewer; -using Microsoft.Win32; namespace ICSharpCode.CodeQuality.Reporting { /// /// Description of Overview. /// - public class OverviewReport + public class OverviewReport:BaseReport { - private const string reportDir = "Reporting"; private const string overviewReport = "ReportingOverview.srd"; - List fileNames; - - public OverviewReport(List fileNames) + public OverviewReport(List fileNames):base(fileNames) { - if (fileNames.Count > 0) - { - this.fileNames = new List(); - this.fileNames.AddRange(fileNames); - } } public IReportCreator Run(ReadOnlyCollection list) { - var r = from c in list - select new OverviewViewModel { Node = c}; - var reportFileName = MakeReportFileName(overviewReport); var model = ReportEngine.LoadReportModel(reportFileName); + ReportSettings = model.ReportSettings; + + var r = from c in list + select new OverviewViewModel { Node = c}; var p = new ReportParameters(); - p.Parameters.Add(new BasicParameter ("param1",fileNames[0])); + p.Parameters.Add(new BasicParameter ("param1",base.FileNames[0])); p.Parameters.Add(new BasicParameter ("param2",list.Count.ToString())); - ReportSettings = model.ReportSettings; - IReportCreator creator = ReportEngine.CreatePageBuilder(model,r.ToList(),p); creator.BuildExportList(); return creator; - } - - string MakeReportFileName (string repName) - { - Uri uri = new Uri(Assembly.GetExecutingAssembly().GetName().CodeBase); - var fullname = uri.LocalPath; - return Path.GetDirectoryName(fullname) + Path.DirectorySeparatorChar + reportDir + Path.DirectorySeparatorChar + repName; - } - - public ReportSettings ReportSettings {get;private set;} - + } } diff --git a/src/AddIns/Analysis/CodeQuality/Reporting/ReportingOverview.srd b/src/AddIns/Analysis/CodeQuality/Reporting/ReportingOverview.srd index 8508a4e5d7..b7f119e734 100644 --- a/src/AddIns/Analysis/CodeQuality/Reporting/ReportingOverview.srd +++ b/src/AddIns/Analysis/CodeQuality/Reporting/ReportingOverview.srd @@ -37,7 +37,7 @@ 50, 50 - 727, 107 + 727, 168 White False 0 @@ -46,11 +46,28 @@ False - 600, 37 - 100, 20 + 122, 13 + 414, 40 White True - Segoe UI, 9pt + Segoe UI, 18pt, style=Bold + None + TopLeft + False + False + No + SharpDevelop CodeQuality Analysis + False + Black + ControlText + BaseTextItem2147483637 + + + 601, 59 + 100, 26 + White + True + Segoe UI, 15.75pt None TopLeft False @@ -63,7 +80,7 @@ BaseTextItem2147483638 - 3, 91 + 12, 145 680, 10 White True @@ -78,7 +95,7 @@ BaseLineItem1 - 130, 64 + 139, 118 108, 20 White True @@ -95,7 +112,7 @@ BaseTextItem2147483639 - 18, 64 + 27, 118 106, 20 White True @@ -112,7 +129,7 @@ BaseTextItem2147483640 - 130, 37 + 139, 91 438, 20 White True @@ -129,7 +146,7 @@ Param1 - 18, 37 + 27, 91 106, 20 White True @@ -146,7 +163,7 @@ BaseTextItem2147483646 - 186, 5 + 195, 59 257, 26 White True @@ -168,7 +185,7 @@ ReportHeader - 50, 172 + 50, 233 727, 60 White False @@ -298,7 +315,7 @@ ReportPageHeader - 50, 247 + 50, 308 727, 60 White False @@ -436,7 +453,7 @@ ReportDetail - 50, 322 + 50, 383 727, 37 White False @@ -456,7 +473,7 @@ False False No - = Globals!ReportFolder + Globals!ReportName + = Globals!ReportFolder + '\' + Globals!ReportName False Black ControlText @@ -485,7 +502,7 @@ ReportPageFooter - 50, 374 + 50, 435 727, 60 White False