From 90e7ed37d7369eec533d4e1452d384aa4d05c334 Mon Sep 17 00:00:00 2001 From: Peter Forstmeier Date: Wed, 27 Feb 2013 20:49:43 +0100 Subject: [PATCH 01/33] Initial add of SharpDevelop Reporting Test#s for DesignerDisplayBinding running --- SharpDevelop.Tests.sln | 48 ++++++++++++++++++- .../ICSharpCode.Reports.Addin.csproj | 2 +- .../Project/Commands/FormsCommand.cs | 7 +-- .../Project/Commands/ViewCommands.cs | 8 ++-- .../DesignerBinding/IDesignerGenerator.cs | 4 +- .../ReportDefinitionDeserializer.cs | 1 + .../ReportDesignerDisplayBinding.cs | 22 +++++---- .../ReportDesignerGenerator.cs | 8 ++-- .../Project/Dialogs/ExpressionEditor.resx | 4 +- .../Project/ReportDesignerView.cs | 10 +++- .../ReportExplorer/ReportExplorerPad.cs | 1 + .../Project/ReportItems/AbstractItem.resx | 4 +- .../Generators/AbstractReportGenerator.cs | 3 +- .../Generators/GeneratePullDataReport.cs | 12 ++--- .../Generators/GeneratePushDataReport.cs | 14 +++--- .../ReportWizard/ReportWizardCommand.cs | 1 + .../WizardPanels/BaseSettingsPanel.cs | 2 +- .../ReportWizard/WizardPanels/LayoutPanel.cs | 8 ++-- .../WizardPanels/PullModelPanel.cs | 2 +- .../WizardPanels/PullModelPanel.resx | 9 ++-- .../WizardPanels/PushModelPanel.cs | 2 +- .../WizardPanels/PushModelPanel.resx | 4 +- .../ReportWizard/WizardPanels/ResultPanel.cs | 2 +- .../WizardPanels/ResultPanel.resx | 4 +- .../Project/SecondaryViews/ReportPreview.cs | 2 + .../ReportViewerSecondaryView.cs | 2 + .../SecondaryViews/WPFReportPreview.cs | 2 + .../Project/SecondaryViews/XmlView.cs | 4 +- .../Project/Services/HelpService.cs | 2 +- .../Project/Services/TypeDiscoveryService.cs | 7 +-- .../Project/UndoRedo/UndoEngine.cs | 1 + .../DerivedReportDesignerDisplayBinding.cs | 29 ----------- .../Test/Designer/MockDesignerGenerator.cs | 6 ++- .../Test/Designer/MockOpenedFile.cs | 13 ++--- .../MockReportDesignerDisplayBinding.cs | 1 + .../Test/Designer/MockViewContend.cs | 2 + ...ReportDesignerDisplayBindingTestFixture.cs | 37 +++++++++----- .../ReportDesignerLoaderTestFixture.cs | 11 ++++- .../ICSharpCode.Reports.Addin.Test.csproj | 4 +- .../Wizard/GeneratePlainReportFixture_1.cs | 2 + .../Generators/GenarateListReportFixture.cs | 1 + .../Generators/GenerateFormsSheetReport.cs | 1 + .../GenerateListWithGroupFixture.cs | 1 + .../GeneratePlainReportFixture_2.cs | 1 + .../Generators/GenerateTableReportFixture.cs | 1 + .../Generators/GenerateTableWithGrouping.cs | 1 + .../ICSharpCode.Reports.Core.csproj | 2 +- .../Project/Dialogs/EditorDialog.resx | 4 +- .../Project/Dialogs/ParameterDialog.resx | 4 +- .../Project/ReportViewer/ReportViewer.resx | 10 ++-- .../Project/Resources/CoreResource.resx | 4 +- .../ICSharpCode.Reports.Core.Test.csproj | 3 +- .../DateTimeFunctionsFixture.cs | 2 +- .../Project/Workbench/File/FileService.cs | 5 ++ 54 files changed, 215 insertions(+), 132 deletions(-) delete mode 100644 src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Designer/DerivedReportDesignerDisplayBinding.cs diff --git a/SharpDevelop.Tests.sln b/SharpDevelop.Tests.sln index 7f871acd5a..e94e7c9aa1 100644 --- a/SharpDevelop.Tests.sln +++ b/SharpDevelop.Tests.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 11.00 # Visual Studio 2010 -# SharpDevelop 5.0 +# SharpDevelop 4.3 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Main", "Main", "{256F5C28-532C-44C0-8AB8-D8EC5E492E01}" ProjectSection(SolutionItems) = postProject EndProjectSection @@ -137,7 +137,15 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PackageManagement.Tests", " EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PackageManagement.PowerShell", "src\AddIns\Misc\PackageManagement\PowerShell\Project\PackageManagement.PowerShell.csproj", "{A406803B-C584-43A3-BCEE-A0BB3132CB5F}" EndProject -Project("") = "SharpDevelop.EnvDTE", "src\AddIns\Misc\PackageManagement\SharpDevelop.EnvDTE\SharpDevelop.EnvDTE.vbproj", "C3F15E22-5793-4129-AF8C-6229112B86D2" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "SharpDevelop.EnvDTE", "src\AddIns\Misc\PackageManagement\SharpDevelop.EnvDTE\SharpDevelop.EnvDTE.vbproj", "C3F15E22-5793-4129-AF8C-6229112B86D2" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Reports.Core", "src\AddIns\Misc\Reports\ICSharpCode.Reports.Core\ICSharpCode.Reports.Core.csproj", "{4B2239FF-8FD6-431D-9D22-1B8049BA6917}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Reports.Core.Test", "src\AddIns\Misc\Reports\ICSharpCode.Reports.Core\Test\ICSharpCode.Reports.Core.Test\ICSharpCode.Reports.Core.Test.csproj", "{E16B73CA-3603-47EE-915E-6F8B2A07304B}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Reports.Addin", "src\AddIns\Misc\Reports\ICSharpCode.Reports.Addin\ICSharpCode.Reports.Addin.csproj", "{35D002D7-C78B-44FB-92AA-104BEB431678}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Reports.Addin.Test", "src\AddIns\Misc\Reports\ICSharpCode.Reports.Addin\Test\ICSharpCode.Reports.Addin.Test.csproj", "{2B232C7E-CFB6-4B73-A1B8-134A8A2ED4F7}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Display Bindings", "Display Bindings", "{11BF9245-88A3-4A0A-9A8A-EC9D98036B0F}" ProjectSection(SolutionItems) = postProject @@ -847,6 +855,38 @@ Global {85C09AD8-183B-403A-869A-7226646218A9}.Release|Any CPU.ActiveCfg = Release|x86 {85C09AD8-183B-403A-869A-7226646218A9}.Release|x86.Build.0 = Release|x86 {85C09AD8-183B-403A-869A-7226646218A9}.Release|x86.ActiveCfg = Release|x86 + {4B2239FF-8FD6-431D-9D22-1B8049BA6917}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4B2239FF-8FD6-431D-9D22-1B8049BA6917}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4B2239FF-8FD6-431D-9D22-1B8049BA6917}.Debug|x86.Build.0 = Debug|Any CPU + {4B2239FF-8FD6-431D-9D22-1B8049BA6917}.Debug|x86.ActiveCfg = Debug|Any CPU + {4B2239FF-8FD6-431D-9D22-1B8049BA6917}.Release|Any CPU.Build.0 = Release|Any CPU + {4B2239FF-8FD6-431D-9D22-1B8049BA6917}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4B2239FF-8FD6-431D-9D22-1B8049BA6917}.Release|x86.Build.0 = Release|Any CPU + {4B2239FF-8FD6-431D-9D22-1B8049BA6917}.Release|x86.ActiveCfg = Release|Any CPU + {E16B73CA-3603-47EE-915E-6F8B2A07304B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E16B73CA-3603-47EE-915E-6F8B2A07304B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E16B73CA-3603-47EE-915E-6F8B2A07304B}.Debug|x86.Build.0 = Debug|Any CPU + {E16B73CA-3603-47EE-915E-6F8B2A07304B}.Debug|x86.ActiveCfg = Debug|Any CPU + {E16B73CA-3603-47EE-915E-6F8B2A07304B}.Release|Any CPU.Build.0 = Release|Any CPU + {E16B73CA-3603-47EE-915E-6F8B2A07304B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E16B73CA-3603-47EE-915E-6F8B2A07304B}.Release|x86.Build.0 = Release|Any CPU + {E16B73CA-3603-47EE-915E-6F8B2A07304B}.Release|x86.ActiveCfg = Release|Any CPU + {35D002D7-C78B-44FB-92AA-104BEB431678}.Debug|Any CPU.Build.0 = Debug|Any CPU + {35D002D7-C78B-44FB-92AA-104BEB431678}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {35D002D7-C78B-44FB-92AA-104BEB431678}.Debug|x86.Build.0 = Debug|Any CPU + {35D002D7-C78B-44FB-92AA-104BEB431678}.Debug|x86.ActiveCfg = Debug|Any CPU + {35D002D7-C78B-44FB-92AA-104BEB431678}.Release|Any CPU.Build.0 = Release|Any CPU + {35D002D7-C78B-44FB-92AA-104BEB431678}.Release|Any CPU.ActiveCfg = Release|Any CPU + {35D002D7-C78B-44FB-92AA-104BEB431678}.Release|x86.Build.0 = Release|Any CPU + {35D002D7-C78B-44FB-92AA-104BEB431678}.Release|x86.ActiveCfg = Release|Any CPU + {2B232C7E-CFB6-4B73-A1B8-134A8A2ED4F7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2B232C7E-CFB6-4B73-A1B8-134A8A2ED4F7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2B232C7E-CFB6-4B73-A1B8-134A8A2ED4F7}.Debug|x86.Build.0 = Debug|Any CPU + {2B232C7E-CFB6-4B73-A1B8-134A8A2ED4F7}.Debug|x86.ActiveCfg = Debug|Any CPU + {2B232C7E-CFB6-4B73-A1B8-134A8A2ED4F7}.Release|Any CPU.Build.0 = Release|Any CPU + {2B232C7E-CFB6-4B73-A1B8-134A8A2ED4F7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2B232C7E-CFB6-4B73-A1B8-134A8A2ED4F7}.Release|x86.Build.0 = Release|Any CPU + {2B232C7E-CFB6-4B73-A1B8-134A8A2ED4F7}.Release|x86.ActiveCfg = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -906,6 +946,10 @@ Global {5186325C-DD7F-4246-9BE7-3F384EFBF5A6} = {F3662720-9EA2-4591-BBC6-97361DCE50A9} {B5D8C3E6-42EC-4D4B-AD05-3644B32563EF} = {F3662720-9EA2-4591-BBC6-97361DCE50A9} {485A4CCF-55CF-49F4-BD6D-A22B788C67DA} = {F3662720-9EA2-4591-BBC6-97361DCE50A9} + {4B2239FF-8FD6-431D-9D22-1B8049BA6917} = {F3662720-9EA2-4591-BBC6-97361DCE50A9} + {E16B73CA-3603-47EE-915E-6F8B2A07304B} = {F3662720-9EA2-4591-BBC6-97361DCE50A9} + {35D002D7-C78B-44FB-92AA-104BEB431678} = {F3662720-9EA2-4591-BBC6-97361DCE50A9} + {2B232C7E-CFB6-4B73-A1B8-134A8A2ED4F7} = {F3662720-9EA2-4591-BBC6-97361DCE50A9} {6B1CFE35-DA17-4DEB-9C6E-227E5E251DA0} = {DEFC8584-BEC3-4921-BD0F-40482E450B7B} {0008FCE9-9EB4-4E2E-979B-553278E5BBA6} = {DEFC8584-BEC3-4921-BD0F-40482E450B7B} {AE4AB0FA-6087-4480-AF37-0FA1452B3DA1} = {485A4CCF-55CF-49F4-BD6D-A22B788C67DA} diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/ICSharpCode.Reports.Addin.csproj b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/ICSharpCode.Reports.Addin.csproj index 6e5a7bc362..85ad1e1e82 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/ICSharpCode.Reports.Addin.csproj +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/ICSharpCode.Reports.Addin.csproj @@ -17,7 +17,7 @@ 4 false ..\..\..\..\..\AddIns\Misc\SharpDevelopReports\ - v4.0 + v4.5 "C:\Program Files\SharpDevelop\bin\..\AddIns\AddIns\Misc\SourceAnalysis\Settings.SourceAnalysis" publish\ true diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Commands/FormsCommand.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Commands/FormsCommand.cs index b0c9ee511d..0effc00c82 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Commands/FormsCommand.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Commands/FormsCommand.cs @@ -10,6 +10,7 @@ using ICSharpCode.Core; using ICSharpCode.Core.WinForms; using ICSharpCode.SharpDevelop; using ICSharpCode.SharpDevelop.Gui; +using ICSharpCode.SharpDevelop.Workbench; namespace ICSharpCode.Reports.Addin.Commands { @@ -110,8 +111,8 @@ namespace ICSharpCode.Reports.Addin.Commands } } - - public class DesignerVerbSubmenuBuilder : ISubmenuBuilder + /* + public class DesignerVerbSubmenuBuilder : IMenuItemBuilder { public ToolStripItem[] BuildSubmenu(Codon codon, object owner) { @@ -154,7 +155,7 @@ namespace ICSharpCode.Reports.Addin.Commands } } } - + */ #region Align Commands /* diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Commands/ViewCommands.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Commands/ViewCommands.cs index d13cdcfcb3..5991c9f25b 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Commands/ViewCommands.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Commands/ViewCommands.cs @@ -12,6 +12,7 @@ using ICSharpCode.Reports.Core.Dialogs; using ICSharpCode.Reports.Core.Globals; using ICSharpCode.SharpDevelop; using ICSharpCode.SharpDevelop.Gui; +using ICSharpCode.SharpDevelop.Workbench; namespace ICSharpCode.Reports.Addin.Commands { @@ -35,9 +36,10 @@ namespace ICSharpCode.Reports.Addin.Commands IReportGenerator generator = new GeneratePlainReport(model,customizer); generator.GenerateReport(); - OpenedFile file = FileService.CreateUntitledOpenedFile(GlobalValues.PlainFileName,new byte[0]); - file.SetData(generator.Generated.ToArray()); - return SetupDesigner(file); +// OpenedFile file = FileService.CreateUntitledOpenedFile(GlobalValues.PlainFileName,new byte[0]); +// file.SetData(generator.Generated.ToArray()); +// return SetupDesigner(file); + return SetupDesigner(null); } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/DesignerBinding/IDesignerGenerator.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/DesignerBinding/IDesignerGenerator.cs index 1214c378a8..5afc3de895 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/DesignerBinding/IDesignerGenerator.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/DesignerBinding/IDesignerGenerator.cs @@ -2,11 +2,13 @@ // This code is distributed under the GNU LGPL (for details please see \doc\license.txt) using System; -using System.ComponentModel; using System.CodeDom; using System.Collections.Generic; +using System.ComponentModel; using ICSharpCode.SharpDevelop; +using ICSharpCode.SharpDevelop.Workbench; + namespace ICSharpCode.Reports.Addin { /// diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/DesignerBinding/ReportDefinitionDeserializer.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/DesignerBinding/ReportDefinitionDeserializer.cs index e558df661c..1d22bd84bc 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/DesignerBinding/ReportDefinitionDeserializer.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/DesignerBinding/ReportDefinitionDeserializer.cs @@ -12,6 +12,7 @@ using ICSharpCode.Core; using ICSharpCode.Reports.Core; using ICSharpCode.Reports.Core.Interfaces; using ICSharpCode.SharpDevelop; +using ICSharpCode.SharpDevelop.Workbench; namespace ICSharpCode.Reports.Addin { diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/DesignerBinding/ReportDesignerDisplayBinding.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/DesignerBinding/ReportDesignerDisplayBinding.cs index 7d1f732632..47b75e32d6 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/DesignerBinding/ReportDesignerDisplayBinding.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/DesignerBinding/ReportDesignerDisplayBinding.cs @@ -2,9 +2,12 @@ // This code is distributed under the GNU LGPL (for details please see \doc\license.txt) using System; +using System.IO; +using ICSharpCode.Reports.Addin.ReportWizard; using ICSharpCode.SharpDevelop; using ICSharpCode.SharpDevelop.Gui; -using ICSharpCode.Reports.Addin.ReportWizard; +using ICSharpCode.SharpDevelop.Workbench; + namespace ICSharpCode.Reports.Addin { /// @@ -12,15 +15,13 @@ namespace ICSharpCode.Reports.Addin /// public class ReportDesignerDisplayBinding:IDisplayBinding { - public ReportDesignerDisplayBinding() - { - } - public bool CanCreateContentForFile(string fileName) + public bool CanCreateContentForFile(ICSharpCode.Core.FileName fileName) { - return true; // definition in .addin does extension-based filtering + return Path.GetExtension(fileName).Equals(".srd", StringComparison.OrdinalIgnoreCase); } + public IViewContent CreateContentForFile(OpenedFile file) { if (file.IsDirty) { @@ -34,15 +35,16 @@ namespace ICSharpCode.Reports.Addin ReportDesignerView view = ICSharpCode.Reports.Addin.Commands.StartViewCommand.SetupDesigner(file); return view; } - - public bool IsPreferredBindingForFile(string fileName) + + public bool IsPreferredBindingForFile(ICSharpCode.Core.FileName fileName) { return true; } - public double AutoDetectFileContent(string fileName, System.IO.Stream fileContent, string detectedMimeType) + + public double AutoDetectFileContent(ICSharpCode.Core.FileName fileName, System.IO.Stream fileContent, string detectedMimeType) { - return 1; + throw new NotImplementedException(); } } } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/DesignerBinding/ReportDesignerGenerator.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/DesignerBinding/ReportDesignerGenerator.cs index 0c6fd3f869..741303e04b 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/DesignerBinding/ReportDesignerGenerator.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/DesignerBinding/ReportDesignerGenerator.cs @@ -2,14 +2,16 @@ // This code is distributed under the GNU LGPL (for details please see \doc\license.txt) using System; +using System.CodeDom; +using System.CodeDom.Compiler; +using System.Collections.Generic; using System.ComponentModel; using System.IO; using System.Windows.Forms; using System.Xml; -using System.CodeDom; -using System.CodeDom.Compiler; -using System.Collections.Generic; + using ICSharpCode.SharpDevelop; +using ICSharpCode.SharpDevelop.Workbench; namespace ICSharpCode.Reports.Addin { diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Dialogs/ExpressionEditor.resx b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Dialogs/ExpressionEditor.resx index 7080a7d118..1af7de150c 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Dialogs/ExpressionEditor.resx +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Dialogs/ExpressionEditor.resx @@ -112,9 +112,9 @@ 2.0 - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 \ No newline at end of file diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportDesignerView.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportDesignerView.cs index a4b843243f..b3c599ba1b 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportDesignerView.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportDesignerView.cs @@ -23,6 +23,8 @@ using ICSharpCode.Reports.Core.Factories; using ICSharpCode.Reports.Core.Globals; using ICSharpCode.SharpDevelop; using ICSharpCode.SharpDevelop.Gui; +using ICSharpCode.SharpDevelop.WinForms; +using ICSharpCode.SharpDevelop.Workbench; namespace ICSharpCode.Reports.Addin { @@ -391,10 +393,14 @@ namespace ICSharpCode.Reports.Addin #region IHasPropertyContainer impementation - PropertyContainer propertyContainer = new PropertyContainer(); +// PropertyContainer propertyContainer = new PropertyContainer(); + PropertyContainer propertyContainer; public PropertyContainer PropertyContainer { get { + if (propertyContainer == null) { + propertyContainer = new PropertyContainer(); + } return propertyContainer; } } @@ -665,7 +671,7 @@ namespace ICSharpCode.Reports.Addin } - public override void Save(ICSharpCode.SharpDevelop.OpenedFile file,Stream stream) + public override void Save(OpenedFile file,Stream stream) { LoggingService.Debug("ReportDesigner: Save to: " + file.FileName); diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportExplorer/ReportExplorerPad.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportExplorer/ReportExplorerPad.cs index d974521a8e..3ebf7f5298 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportExplorer/ReportExplorerPad.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportExplorer/ReportExplorerPad.cs @@ -9,6 +9,7 @@ using System.Windows.Forms; using ICSharpCode.Core.WinForms; using ICSharpCode.Reports.Core; using ICSharpCode.SharpDevelop.Gui; +using ICSharpCode.SharpDevelop.Workbench; namespace ICSharpCode.Reports.Addin { diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportItems/AbstractItem.resx b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportItems/AbstractItem.resx index 7080a7d118..1af7de150c 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportItems/AbstractItem.resx +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportItems/AbstractItem.resx @@ -112,9 +112,9 @@ 2.0 - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 \ No newline at end of file diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/AbstractReportGenerator.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/AbstractReportGenerator.cs index 9b018805b6..996361f46a 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/AbstractReportGenerator.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/AbstractReportGenerator.cs @@ -52,9 +52,10 @@ namespace ICSharpCode.Reports.Addin.ReportWizard if (properties == null) { throw new ArgumentNullException("customizer"); } + throw new NotImplementedException("Fix me AbstractReportGenerator"); this.ReportModel = reportModel; this.Properties = properties; - ReportStructure = (ReportStructure)properties.Get("Generator"); +// ReportStructure = (ReportStructure)properties.Get("Generator"); this.AvailableFieldsCollection.Clear(); this.ReportItemCollection.Clear(); diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GeneratePullDataReport.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GeneratePullDataReport.cs index 0a29af0427..ebcc2a6f40 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GeneratePullDataReport.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GeneratePullDataReport.cs @@ -37,12 +37,12 @@ namespace ICSharpCode.Reports.Addin.ReportWizard base.ReportModel.ReportSettings.DataModel = GlobalEnums.PushPullModel.PullData; base.GenerateReport(); - GlobalEnums.ReportLayout reportLayout = (GlobalEnums.ReportLayout)base.Properties.Get("ReportLayout"); - AbstractLayout layout = LayoutFactory.CreateGenerator(reportLayout,base.ReportModel,base.ReportItemCollection); - layout.CreateReportHeader(); - layout.CreatePageHeader(); - layout.CreateDataSection(base.ReportModel.DetailSection); - layout.CreatePageFooter(); +// GlobalEnums.ReportLayout reportLayout = (GlobalEnums.ReportLayout)base.Properties.Get("ReportLayout"); +// AbstractLayout layout = LayoutFactory.CreateGenerator(reportLayout,base.ReportModel,base.ReportItemCollection); +// layout.CreateReportHeader(); +// layout.CreatePageHeader(); +// layout.CreateDataSection(base.ReportModel.DetailSection); +// layout.CreatePageFooter(); base.WriteToXml(); } } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GeneratePushDataReport.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GeneratePushDataReport.cs index a9587879aa..7ddb547aa2 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GeneratePushDataReport.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GeneratePushDataReport.cs @@ -38,14 +38,14 @@ namespace ICSharpCode.Reports.Addin.ReportWizard base.ReportModel.ReportSettings.ReportType = GlobalEnums.ReportType.DataReport; base.ReportModel.ReportSettings.DataModel = GlobalEnums.PushPullModel.PushData; base.GenerateReport(); - GlobalEnums.ReportLayout reportLayout = (GlobalEnums.ReportLayout)base.Properties.Get("ReportLayout"); +// GlobalEnums.ReportLayout reportLayout = (GlobalEnums.ReportLayout)base.Properties.Get("ReportLayout"); - AbstractLayout layout = LayoutFactory.CreateGenerator(reportLayout,base.ReportModel,base.ReportItemCollection); - - layout.CreateReportHeader(); - layout.CreatePageHeader(); - layout.CreateDataSection(base.ReportModel.DetailSection); - layout.CreatePageFooter(); +// AbstractLayout layout = LayoutFactory.CreateGenerator(reportLayout,base.ReportModel,base.ReportItemCollection); +// +// layout.CreateReportHeader(); +// layout.CreatePageHeader(); +// layout.CreateDataSection(base.ReportModel.DetailSection); +// layout.CreatePageFooter(); base.WriteToXml(); } } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/ReportWizardCommand.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/ReportWizardCommand.cs index d12acafc05..012ea49517 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/ReportWizardCommand.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/ReportWizardCommand.cs @@ -10,6 +10,7 @@ using ICSharpCode.Reports.Core; using ICSharpCode.Reports.Core.Globals; using ICSharpCode.SharpDevelop; using ICSharpCode.SharpDevelop.Gui; +using ICSharpCode.SharpDevelop.Workbench; namespace ICSharpCode.Reports.Addin.ReportWizard { diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/BaseSettingsPanel.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/BaseSettingsPanel.cs index 89f24e73ca..4ef916ba7c 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/BaseSettingsPanel.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/BaseSettingsPanel.cs @@ -159,7 +159,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard{ { if (customizer == null) { customizer = (Properties)base.CustomizationObject; - generator = (ReportStructure)customizer.Get("Generator"); +// generator = (ReportStructure)customizer.Get("Generator"); } generator.ReportName = txtReportName.Text; diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/LayoutPanel.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/LayoutPanel.cs index b88dda21e4..181cd92ced 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/LayoutPanel.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/LayoutPanel.cs @@ -43,15 +43,15 @@ namespace ICSharpCode.Reports.Addin.ReportWizard if (message == DialogMessage.Activated) { - this.layoutControl.ReportLayout = (GlobalEnums.ReportLayout)customizer.Get("ReportLayout"); - reportStructure = (ReportStructure)customizer.Get("Generator"); +// this.layoutControl.ReportLayout = (GlobalEnums.ReportLayout)customizer.Get("ReportLayout"); +// reportStructure = (ReportStructure)customizer.Get("Generator"); layoutControl.AvailableFieldsCollection = reportStructure.AvailableFieldsCollection; } else if (message == DialogMessage.Finish) { - customizer.Set ("ReportLayout",this.layoutControl.ReportLayout); - var reportStructure = (ReportStructure)customizer.Get("Generator"); +// customizer.Set ("ReportLayout",this.layoutControl.ReportLayout); +// var reportStructure = (ReportStructure)customizer.Get("Generator"); reportStructure.Grouping = layoutControl.GroupName; } return true; diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/PullModelPanel.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/PullModelPanel.cs index 5f2ed7fc82..f6fbb04fa3 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/PullModelPanel.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/PullModelPanel.cs @@ -78,7 +78,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard { if (customizer == null) { customizer = (Properties)base.CustomizationObject; - reportStructure = (ReportStructure)customizer.Get("Generator"); +// reportStructure = (ReportStructure)customizer.Get("Generator"); } if (message == DialogMessage.Next) { diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/PullModelPanel.resx b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/PullModelPanel.resx index 271670364a..757195cb3e 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/PullModelPanel.resx +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/PullModelPanel.resx @@ -112,12 +112,13 @@ 2.0 - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + + 17, 17 - + \ No newline at end of file diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/PushModelPanel.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/PushModelPanel.cs index 74aa1a93df..54ef336f3b 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/PushModelPanel.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/PushModelPanel.cs @@ -86,7 +86,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard { if (customizer == null) { customizer = (Properties)base.CustomizationObject; - reportStructure = (ReportStructure)customizer.Get("Generator"); +// reportStructure = (ReportStructure)customizer.Get("Generator"); base.NextWizardPanelID = "Layout"; } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/PushModelPanel.resx b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/PushModelPanel.resx index 7080a7d118..1af7de150c 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/PushModelPanel.resx +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/PushModelPanel.resx @@ -112,9 +112,9 @@ 2.0 - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 \ No newline at end of file diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/ResultPanel.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/ResultPanel.cs index 748cfe03a6..9e67ffad28 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/ResultPanel.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/ResultPanel.cs @@ -234,7 +234,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard { if (customizer == null) { customizer = (Properties)base.CustomizationObject; - reportStructure = (ReportStructure)customizer.Get("Generator"); +// reportStructure = (ReportStructure)customizer.Get("Generator"); } if (message == DialogMessage.Activated) { diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/ResultPanel.resx b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/ResultPanel.resx index 7080a7d118..1af7de150c 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/ResultPanel.resx +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/ResultPanel.resx @@ -112,9 +112,9 @@ 2.0 - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 \ No newline at end of file diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/ReportPreview.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/ReportPreview.cs index 5b1cfe1f78..57f957e5bb 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/ReportPreview.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/ReportPreview.cs @@ -5,7 +5,9 @@ using System; using ICSharpCode.Core; 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 { diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/ReportViewerSecondaryView.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/ReportViewerSecondaryView.cs index b0cb83ca03..9da3c85217 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/ReportViewerSecondaryView.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/ReportViewerSecondaryView.cs @@ -6,7 +6,9 @@ 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 { diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/WPFReportPreview.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/WPFReportPreview.cs index a901fdaf87..af56f0f73d 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/WPFReportPreview.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/WPFReportPreview.cs @@ -12,7 +12,9 @@ using ICSharpCode.Reports.Core; using ICSharpCode.Reports.Core.Exporter.ExportRenderer; using ICSharpCode.Reports.Core.Globals; using ICSharpCode.Reports.Core.WpfReportViewer; +using ICSharpCode.SharpDevelop; using ICSharpCode.SharpDevelop.Gui; +using ICSharpCode.SharpDevelop.Workbench; namespace ICSharpCode.Reports.Addin.SecondaryViews { diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/XmlView.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/XmlView.cs index b9c177af5d..8b501b74fe 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/XmlView.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/XmlView.cs @@ -3,8 +3,10 @@ using System; using System.Windows.Forms; -using ICSharpCode.SharpDevelop.Gui; using ICSharpCode.Core; +using ICSharpCode.SharpDevelop; +using ICSharpCode.SharpDevelop.Gui; +using ICSharpCode.SharpDevelop.Workbench; namespace ICSharpCode.Reports.Addin.SecondaryViews { diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Services/HelpService.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Services/HelpService.cs index 453649d130..408219b3b1 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Services/HelpService.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Services/HelpService.cs @@ -68,7 +68,7 @@ namespace ICSharpCode.Reports.Addin } public void ShowHelp() { - HelpProvider.ShowHelp(f1Keyword); +// HelpProvider.ShowHelp(f1Keyword); } public void ShowHelpFromUrl(string helpUrl) diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Services/TypeDiscoveryService.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Services/TypeDiscoveryService.cs index 1f1d912c62..2a51311c80 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Services/TypeDiscoveryService.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Services/TypeDiscoveryService.cs @@ -38,11 +38,12 @@ namespace ICSharpCode.Reports.Addin //allow to work designers like columns editor in datagridview // Searching types can cause additional assemblies to be loaded, so we need to use // ToArray to prevent an exception if the collection changes. + foreach (Assembly asm in TypeResolutionService.DesignerAssemblies.ToArray()) { if (excludeGlobalTypes) { - if (GacInterop.IsWithinGac(asm.Location)) { - continue; - } +// if (GacInterop.IsWithinGac(asm.Location)) { +// continue; +// } } AddDerivedTypes(baseType, asm, types); } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/UndoRedo/UndoEngine.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/UndoRedo/UndoEngine.cs index 1e25020eb4..4b050c98c4 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/UndoRedo/UndoEngine.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/UndoRedo/UndoEngine.cs @@ -6,6 +6,7 @@ using System.Collections.Generic; using System.ComponentModel.Design; using ICSharpCode.SharpDevelop.Gui; +using ICSharpCode.SharpDevelop.WinForms; namespace ICSharpCode.Reports.Addin { diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Designer/DerivedReportDesignerDisplayBinding.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Designer/DerivedReportDesignerDisplayBinding.cs deleted file mode 100644 index 3ed9cc40a7..0000000000 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Designer/DerivedReportDesignerDisplayBinding.cs +++ /dev/null @@ -1,29 +0,0 @@ -// 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; - -namespace ICSharpCode.Reports.Addin.Test.Designer -{ - /// - /// Description of DerivedReportDesignerDisplayBinding. - /// - public class DerivedReportDesignerDisplayBinding:ReportDesignerDisplayBinding - { - public DerivedReportDesignerDisplayBinding() - { - } - - /// - /// Determines whether the specified parse information contains - /// a class which is designable. - /// - /* - protected override bool IsDesignable(ParseInformation parseInfo) - { - this.parseInfo = parseInfo; - return isParseInfoDesignable; - } - */ - } -} diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Designer/MockDesignerGenerator.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Designer/MockDesignerGenerator.cs index 6dc8b88eab..a38c919de6 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Designer/MockDesignerGenerator.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Designer/MockDesignerGenerator.cs @@ -3,6 +3,8 @@ using System; using ICSharpCode.Reports.Addin; +using ICSharpCode.SharpDevelop; +using ICSharpCode.SharpDevelop.Workbench; namespace ICSharpCode.Reports.Addin.Test.Designer { @@ -29,7 +31,7 @@ namespace ICSharpCode.Reports.Addin.Test.Designer public void Attach(ReportDesignerView viewContent) { - this.view = viewContent; + this.view = viewContent; } public void Detach() @@ -37,7 +39,7 @@ namespace ICSharpCode.Reports.Addin.Test.Designer throw new NotImplementedException(); } - public System.Collections.Generic.IEnumerable GetSourceFiles(out ICSharpCode.SharpDevelop.OpenedFile designerCodeFile) + public System.Collections.Generic.IEnumerable GetSourceFiles(out OpenedFile designerCodeFile) { throw new NotImplementedException(); } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Designer/MockOpenedFile.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Designer/MockOpenedFile.cs index b4b99c5813..bc3762202f 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Designer/MockOpenedFile.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Designer/MockOpenedFile.cs @@ -5,7 +5,7 @@ using System; using System.Collections.Generic; using ICSharpCode.SharpDevelop; using ICSharpCode.SharpDevelop.Gui; - +using ICSharpCode.SharpDevelop.Workbench; //Namespace adapted to namespace ICSharpCode.Reports.Addin.Test.Designer { @@ -18,7 +18,7 @@ namespace ICSharpCode.Reports.Addin.Test.Designer { } - public MockOpenedFile(string fileName) + public MockOpenedFile(string fileName):base() { this.FileName = ICSharpCode.Core.FileName.Create(fileName); } @@ -29,6 +29,10 @@ namespace ICSharpCode.Reports.Addin.Test.Designer } } + protected override void ChangeFileName(ICSharpCode.Core.FileName newValue) + { + + } public override void RegisterView(IViewContent view) { } @@ -39,9 +43,6 @@ namespace ICSharpCode.Reports.Addin.Test.Designer public override event EventHandler FileClosed { add {} remove {} } -// public override bool IsDirty { -// get { return base.IsDirty; } -// set { base.IsDirty = value; } -// } + } } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Designer/MockReportDesignerDisplayBinding.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Designer/MockReportDesignerDisplayBinding.cs index d3122d361c..d6af28b709 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Designer/MockReportDesignerDisplayBinding.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Designer/MockReportDesignerDisplayBinding.cs @@ -7,6 +7,7 @@ using NUnit.Framework; namespace ICSharpCode.Reports.Addin.Test.Designer { [TestFixture] + [Ignore] public class MockReportDesignerDisplayBinding:ReportDesignerDisplayBinding { [Test] diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Designer/MockViewContend.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Designer/MockViewContend.cs index 468ed8876c..5fa3bd9677 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Designer/MockViewContend.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Designer/MockViewContend.cs @@ -4,9 +4,11 @@ using System; using System.Collections.Generic; using System.Windows.Forms; + using ICSharpCode.Core; using ICSharpCode.SharpDevelop; using ICSharpCode.SharpDevelop.Gui; +using ICSharpCode.SharpDevelop.Workbench; namespace ICSharpCode.Reports.Addin.Test.Designer { diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Designer/ReportDesignerDisplayBindingTestFixture.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Designer/ReportDesignerDisplayBindingTestFixture.cs index 292fcffda9..b8d603c5f0 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Designer/ReportDesignerDisplayBindingTestFixture.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Designer/ReportDesignerDisplayBindingTestFixture.cs @@ -8,6 +8,7 @@ using ICSharpCode.Reports.Addin.ReportWizard; using ICSharpCode.Reports.Core; using ICSharpCode.Reports.Core.Globals; using ICSharpCode.SharpDevelop; +using ICSharpCode.SharpDevelop.Workbench; using NUnit.Framework; namespace ICSharpCode.Reports.Addin.Test.Designer @@ -15,17 +16,17 @@ namespace ICSharpCode.Reports.Addin.Test.Designer [TestFixture] public class ReportDesignerDisplayBindingTestFixture { - DerivedReportDesignerDisplayBinding displayBinding; - MockViewContent viewContent; + ReportDesignerDisplayBinding displayBinding; +// MockViewContent viewContent; //bool canAttachToDesignableClass; [SetUp] public void SetUp() { - displayBinding = new DerivedReportDesignerDisplayBinding(); - viewContent = new MockViewContent(); - viewContent.PrimaryFileName = FileName.Create("test.srd"); + displayBinding = new ReportDesignerDisplayBinding(); +// viewContent = new MockViewContent(); +// viewContent.PrimaryFileName = FileName.Create("test.srd"); // viewContent.TextEditorControl.Text = "text content"; // parseInfo = new ParseInformation(); // displayBinding.ParseServiceParseInfoToReturn = parseInfo; @@ -36,21 +37,31 @@ namespace ICSharpCode.Reports.Addin.Test.Designer [Test] public void CanCreateContentForFile() { - Assert.IsTrue(displayBinding.CanCreateContentForFile("test.srd")); + ICSharpCode.Core.FileName filename = new FileName("test.srd"); + Assert.IsTrue(displayBinding.CanCreateContentForFile(filename)); } [Test] + public void IsPreferredBindingForFile() + { + ICSharpCode.Core.FileName filename = new FileName("test.srd"); + Assert.IsTrue(displayBinding.IsPreferredBindingForFile(filename)); + } + + + [Test] + [Ignore] public void CanCreateContentFromFile () { -// ReportModel model = ReportModel.Create(); -// Properties customizer = new Properties(); -// customizer.Set("ReportLayout",GlobalEnums.ReportLayout.ListLayout); -// IReportGenerator generator = new GeneratePlainReport(model,customizer); -// generator.GenerateReport(); -// MockOpenedFile mof = new MockOpenedFile(GlobalValues.PlainFileName); + ReportModel model = ReportModel.Create(); + Properties customizer = new Properties(); + customizer.Set("ReportLayout",GlobalEnums.ReportLayout.ListLayout); + IReportGenerator generator = new GeneratePlainReport(model,customizer); + generator.GenerateReport(); + MockOpenedFile mof = new MockOpenedFile(GlobalValues.PlainFileName); OpenedFile file = new MockOpenedFile(GlobalValues.PlainFileName); -// file.SetData(generator.Generated.ToArray()); + file.SetData(generator.Generated.ToArray()); //ICSharpCode.SharpDevelop.Gui.IViewContent v = displayBinding.CreateContentForFile(new MockOpenedFile("test.srd")); //Assert.IsNotNull(v,"View should not be 'null'"); diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Designer/ReportDesignerLoaderTestFixture.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Designer/ReportDesignerLoaderTestFixture.cs index d386da77be..8333470eb7 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Designer/ReportDesignerLoaderTestFixture.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Designer/ReportDesignerLoaderTestFixture.cs @@ -7,6 +7,7 @@ using NUnit.Framework; namespace ICSharpCode.Reports.Addin.Test.Designer { [TestFixture] + public class ReportDesignerLoaderTestFixture { IDesignerGenerator generator; @@ -26,14 +27,20 @@ namespace ICSharpCode.Reports.Addin.Test.Designer Assert.IsInstanceOf(this.generator.ViewContent); } - + [Test] + [Ignore] + public void FixMoreTests() + { + Assert.IsNotNull(this.generator.ViewContent); + Assert.IsInstanceOf(this.generator.ViewContent); + } [TestFixtureSetUp] public void Init() { generator = new MockDesignerGenerator(); view = new ReportDesignerView(null, new MockOpenedFile("Test.srd")); generator.Attach(view); - /* + /* view.DesignerCodeFileContent = GetFormCode(); loader = new DerivedPythonDesignerLoader(generator); diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/ICSharpCode.Reports.Addin.Test.csproj b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/ICSharpCode.Reports.Addin.Test.csproj index df75cb3e52..db640d4f31 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/ICSharpCode.Reports.Addin.Test.csproj +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/ICSharpCode.Reports.Addin.Test.csproj @@ -12,8 +12,9 @@ False 4 false - v4.0 + v4.5 C:\Users\Peter Forstmeier\AppData\Roaming\ICSharpCode/SharpDevelop3.0\Settings.SourceAnalysis + true @@ -54,7 +55,6 @@ - diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/GeneratePlainReportFixture_1.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/GeneratePlainReportFixture_1.cs index 605fd82f84..392a7ca3f7 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/GeneratePlainReportFixture_1.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/GeneratePlainReportFixture_1.cs @@ -15,9 +15,11 @@ using NUnit.Framework; namespace ICSharpCode.Reports.Addin.Test.Wizard { [TestFixture] + [Ignore] public class GeneratePlainReportFixture { [Test] + public void GeneratePlainReport_1() { ReportModel model = ReportModel.Create(); diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenarateListReportFixture.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenarateListReportFixture.cs index 6622eb7c2a..d947fb4555 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenarateListReportFixture.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenarateListReportFixture.cs @@ -10,6 +10,7 @@ using NUnit.Framework; namespace ICSharpCode.Reports.Addin.Test.Wizard.Generators { [TestFixture] + [Ignore] public class GenerateListReportFixture { private const string reportName = "ListBasedReport"; diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateFormsSheetReport.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateFormsSheetReport.cs index 3b77e1563a..0bcd36d5ec 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateFormsSheetReport.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateFormsSheetReport.cs @@ -12,6 +12,7 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard { [TestFixture] + [Ignore] public class GenerateFormsSheetReportFixture { diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateListWithGroupFixture.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateListWithGroupFixture.cs index b6011fb054..bafeb3470d 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateListWithGroupFixture.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateListWithGroupFixture.cs @@ -17,6 +17,7 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard.Generators /// Description of GenerateListWithGroupFixture. /// [TestFixture] + [Ignore] public class GenerateListWithGroupFixture { diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GeneratePlainReportFixture_2.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GeneratePlainReportFixture_2.cs index 79fbebd239..4062292579 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GeneratePlainReportFixture_2.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GeneratePlainReportFixture_2.cs @@ -11,6 +11,7 @@ using NUnit.Framework; namespace ICSharpCode.Reports.Addin.Test.Wizard { [TestFixture] + [Ignore] public class GeneratePlainReportFixture_2 { ReportModel mockReportModel; diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateTableReportFixture.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateTableReportFixture.cs index 60599eb755..136dfe8ce6 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateTableReportFixture.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateTableReportFixture.cs @@ -12,6 +12,7 @@ using NUnit.Framework; namespace ICSharpCode.Reports.Addin.Test.Wizard.Generators { [TestFixture] + [Ignore] public class GenerateTableReportFixture { private const string reportName = "TableBasedReport"; diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateTableWithGrouping.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateTableWithGrouping.cs index 0d82fafb82..66f3cd3ef9 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateTableWithGrouping.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateTableWithGrouping.cs @@ -19,6 +19,7 @@ using NUnit.Framework; namespace ICSharpCode.Reports.Addin.Test.Wizard.Generators { [TestFixture] + [Ignore] public class GenertaeTableWithGroupFixture { diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/ICSharpCode.Reports.Core.csproj b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/ICSharpCode.Reports.Core.csproj index 9985834ef6..26c69e617b 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/ICSharpCode.Reports.Core.csproj +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/ICSharpCode.Reports.Core.csproj @@ -17,7 +17,7 @@ 4 false OnBuildSuccess - v4.0 + v4.5 "C:\Program Files\SharpDevelop\bin\..\AddIns\AddIns\Misc\SourceAnalysis\Settings.SourceAnalysis" ..\..\..\..\..\AddIns\Misc\SharpDevelopReports\ publish\ diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Dialogs/EditorDialog.resx b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Dialogs/EditorDialog.resx index 7080a7d118..1af7de150c 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Dialogs/EditorDialog.resx +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Dialogs/EditorDialog.resx @@ -112,9 +112,9 @@ 2.0 - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 \ No newline at end of file diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Dialogs/ParameterDialog.resx b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Dialogs/ParameterDialog.resx index 7080a7d118..1af7de150c 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Dialogs/ParameterDialog.resx +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Dialogs/ParameterDialog.resx @@ -112,9 +112,9 @@ 2.0 - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 \ No newline at end of file diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/ReportViewer/ReportViewer.resx b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/ReportViewer/ReportViewer.resx index 90527653fc..2a0def35ca 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/ReportViewer/ReportViewer.resx +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/ReportViewer/ReportViewer.resx @@ -117,13 +117,13 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + + 116, 17 - - + + 17, 17 - - + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Resources/CoreResource.resx b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Resources/CoreResource.resx index 6251156e34..24bf6129db 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Resources/CoreResource.resx +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Resources/CoreResource.resx @@ -112,10 +112,10 @@ 2.0 - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 Ok diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/ICSharpCode.Reports.Core.Test.csproj b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/ICSharpCode.Reports.Core.Test.csproj index ea0b847503..603c897fa0 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/ICSharpCode.Reports.Core.Test.csproj +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/ICSharpCode.Reports.Core.Test.csproj @@ -7,13 +7,14 @@ Library ICSharpCode.Reports.Core.Test ICSharpCode.Reports.Core.Test - v4.0 + v4.5 Properties C:\Dokumente und Einstellungen\Peter\Anwendungsdaten\ICSharpCode/SharpDevelop3.0\Settings.SourceAnalysis False False 4 false + ..\..\..\..\..\..\..\bin\UnitTests\ diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/ReportingLanguage/DateTimeFunctionsFixture.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/ReportingLanguage/DateTimeFunctionsFixture.cs index 171ecf1abe..f9fb4ed97f 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/ReportingLanguage/DateTimeFunctionsFixture.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/ReportingLanguage/DateTimeFunctionsFixture.cs @@ -51,7 +51,7 @@ namespace ICSharpCode.Reports.Core.Test.ReportingLanguage.LanguageTests { const string expression = "dateSubtract('09.02.2013','10.02.2013')"; IExpression expr = CreateExpression(expression); - Assert.That(expr.Evaluate(null), Is.EqualTo(new TimeSpan(1,0,0,0))); + Assert.That(expr.Evaluate(null), Is.EqualTo(new TimeSpan(-1,0,0,0))); } [Test] diff --git a/src/Main/Base/Project/Workbench/File/FileService.cs b/src/Main/Base/Project/Workbench/File/FileService.cs index cc9cb61398..0b9765c2ee 100644 --- a/src/Main/Base/Project/Workbench/File/FileService.cs +++ b/src/Main/Base/Project/Workbench/File/FileService.cs @@ -233,5 +233,10 @@ namespace ICSharpCode.SharpDevelop } #endregion Events + + public static object CreateUntitledOpenedFile(string plainFileName, byte[] byte1) + { + throw new NotImplementedException(); + } } } From d38029db6590f808431835cc326c8280b10b5755 Mon Sep 17 00:00:00 2001 From: Peter Forstmeier Date: Wed, 27 Feb 2013 20:59:40 +0100 Subject: [PATCH 02/33] Fix test's in FormattingFixture.cs --- .../Printing/FormattingFixture.cs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/Printing/FormattingFixture.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/Printing/FormattingFixture.cs index 22b9a681ba..af21a4034d 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/Printing/FormattingFixture.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/Printing/FormattingFixture.cs @@ -97,6 +97,22 @@ namespace ICSharpCode.Reports.Core.Test.Printing } + [Test] + public void NegativeTimeSpan_HH_mm_ss () + { + TimeSpan time; + string toFormat = "-5:50:10"; + string format = "H:mm:ss"; + var result = StandardFormatter.FormatOutput(toFormat,format,dateTimetype,nullValue); + Assert.That(result,Is.EqualTo("-5:50:10")); + bool valid = TimeSpan.TryParseExact(result, + "c", + CultureInfo.CurrentCulture, + out time); + Assert.That(valid,Is.True); + } + + [Test] public void TimeSpan_D_H_mm_ss () { From 66878dac69f7f8107f995668e8c024d667fc274d Mon Sep 17 00:00:00 2001 From: Peter Forstmeier Date: Thu, 28 Feb 2013 19:25:15 +0100 Subject: [PATCH 03/33] Add reporting to SharpDevelop.sln --- SharpDevelop.sln | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/SharpDevelop.sln b/SharpDevelop.sln index d17a837455..61b5f6ff9e 100644 --- a/SharpDevelop.sln +++ b/SharpDevelop.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 11.00 # Visual Studio 2010 -# SharpDevelop 5.0 +# SharpDevelop 4.3 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Main", "Main", "{256F5C28-532C-44C0-8AB8-D8EC5E492E01}" ProjectSection(SolutionItems) = postProject EndProjectSection @@ -117,7 +117,11 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PackageManagement", "src\Ad EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PackageManagement.PowerShell", "src\AddIns\Misc\PackageManagement\PowerShell\Project\PackageManagement.PowerShell.csproj", "{A406803B-C584-43A3-BCEE-A0BB3132CB5F}" EndProject -Project("") = "SharpDevelop.EnvDTE", "src\AddIns\Misc\PackageManagement\SharpDevelop.EnvDTE\SharpDevelop.EnvDTE.vbproj", "752BD058-5517-48A1-BB27-5ED186FA052B" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "SharpDevelop.EnvDTE", "src\AddIns\Misc\PackageManagement\SharpDevelop.EnvDTE\SharpDevelop.EnvDTE.vbproj", "752BD058-5517-48A1-BB27-5ED186FA052B" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Reports.Core", "src\AddIns\Misc\Reports\ICSharpCode.Reports.Core\ICSharpCode.Reports.Core.csproj", "{4B2239FF-8FD6-431D-9D22-1B8049BA6917}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Reports.Addin", "src\AddIns\Misc\Reports\ICSharpCode.Reports.Addin\ICSharpCode.Reports.Addin.csproj", "{35D002D7-C78B-44FB-92AA-104BEB431678}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Display Bindings", "Display Bindings", "{11BF9245-88A3-4A0A-9A8A-EC9D98036B0F}" ProjectSection(SolutionItems) = postProject @@ -697,6 +701,22 @@ Global 752BD058-5517-48A1-BB27-5ED186FA052B.Release|Any CPU.ActiveCfg = Release|Any CPU 752BD058-5517-48A1-BB27-5ED186FA052B.Release|x86.Build.0 = Release|Any CPU 752BD058-5517-48A1-BB27-5ED186FA052B.Release|x86.ActiveCfg = Release|Any CPU + {4B2239FF-8FD6-431D-9D22-1B8049BA6917}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4B2239FF-8FD6-431D-9D22-1B8049BA6917}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4B2239FF-8FD6-431D-9D22-1B8049BA6917}.Debug|x86.Build.0 = Debug|Any CPU + {4B2239FF-8FD6-431D-9D22-1B8049BA6917}.Debug|x86.ActiveCfg = Debug|Any CPU + {4B2239FF-8FD6-431D-9D22-1B8049BA6917}.Release|Any CPU.Build.0 = Release|Any CPU + {4B2239FF-8FD6-431D-9D22-1B8049BA6917}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4B2239FF-8FD6-431D-9D22-1B8049BA6917}.Release|x86.Build.0 = Release|Any CPU + {4B2239FF-8FD6-431D-9D22-1B8049BA6917}.Release|x86.ActiveCfg = Release|Any CPU + {35D002D7-C78B-44FB-92AA-104BEB431678}.Debug|Any CPU.Build.0 = Debug|Any CPU + {35D002D7-C78B-44FB-92AA-104BEB431678}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {35D002D7-C78B-44FB-92AA-104BEB431678}.Debug|x86.Build.0 = Debug|Any CPU + {35D002D7-C78B-44FB-92AA-104BEB431678}.Debug|x86.ActiveCfg = Debug|Any CPU + {35D002D7-C78B-44FB-92AA-104BEB431678}.Release|Any CPU.Build.0 = Release|Any CPU + {35D002D7-C78B-44FB-92AA-104BEB431678}.Release|Any CPU.ActiveCfg = Release|Any CPU + {35D002D7-C78B-44FB-92AA-104BEB431678}.Release|x86.Build.0 = Release|Any CPU + {35D002D7-C78B-44FB-92AA-104BEB431678}.Release|x86.ActiveCfg = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -746,6 +766,8 @@ Global {E2FD63DA-8478-4066-934C-DA82A852C83A} = {F3662720-9EA2-4591-BBC6-97361DCE50A9} {B5D8C3E6-42EC-4D4B-AD05-3644B32563EF} = {F3662720-9EA2-4591-BBC6-97361DCE50A9} {87D549AF-8FCD-4E84-9C33-3DB6E42FEF6D} = {F3662720-9EA2-4591-BBC6-97361DCE50A9} + {4B2239FF-8FD6-431D-9D22-1B8049BA6917} = {F3662720-9EA2-4591-BBC6-97361DCE50A9} + {35D002D7-C78B-44FB-92AA-104BEB431678} = {F3662720-9EA2-4591-BBC6-97361DCE50A9} {6B1CFE35-DA17-4DEB-9C6E-227E5E251DA0} = {59A30AA6-D600-41AB-B7A1-9543469DBE36} {0008FCE9-9EB4-4E2E-979B-553278E5BBA6} = {59A30AA6-D600-41AB-B7A1-9543469DBE36} {AE4AB0FA-6087-4480-AF37-0FA1452B3DA1} = {87D549AF-8FCD-4E84-9C33-3DB6E42FEF6D} From 52a13d7ada0a728ff187189825593247bfd0db52 Mon Sep 17 00:00:00 2001 From: Peter Forstmeier Date: Fri, 15 Mar 2013 19:59:29 +0100 Subject: [PATCH 04/33] Cleanup, set C compiling Options to 'any processor (prefer 64 bit) --- .../ICSharpCode.Reports.Addin.csproj | 10 ++++-- .../Project/Commands/ViewCommands.cs | 17 +++++----- .../DesignerBinding/InternalReportLoader.cs | 24 ++++++++------ .../ReportDefinitionDeserializer.cs | 4 ++- .../ReportDesignerGenerator.cs | 7 +++-- .../DesignerBinding/ReportDesignerLoader.cs | 4 ++- .../Project/ReportDesignerView.cs | 10 ++++++ .../Project/Xml/ReportDefinitionParser.cs | 3 +- .../ICSharpCode.Reports.Core.csproj | 10 ++++-- .../Project/ReportEngine.cs | 31 ++++++++++++++++--- .../Project/Xml/BaseItemLoader.cs | 2 ++ .../Project/Xml/MycroParser.cs | 2 ++ 12 files changed, 93 insertions(+), 31 deletions(-) diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/ICSharpCode.Reports.Addin.csproj b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/ICSharpCode.Reports.Addin.csproj index 85ad1e1e82..957401eaa1 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/ICSharpCode.Reports.Addin.csproj +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/ICSharpCode.Reports.Addin.csproj @@ -12,10 +12,10 @@ False Auto 125829120 - x86 + AnyCPU 4096 4 - false + False ..\..\..\..\..\AddIns\Misc\SharpDevelopReports\ v4.5 "C:\Program Files\SharpDevelop\bin\..\AddIns\AddIns\Misc\SourceAnalysis\Settings.SourceAnalysis" @@ -36,6 +36,8 @@ true + False + obj\$(Configuration)\ False @@ -46,6 +48,7 @@ Project ..\..\..\..\..\bin\SharpDevelop.exe AllRules.ruleset + obj\ True @@ -55,6 +58,9 @@ False AllRules.ruleset + + False + ..\Libraries\itextsharp.dll diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Commands/ViewCommands.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Commands/ViewCommands.cs index 5991c9f25b..1334850e75 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Commands/ViewCommands.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Commands/ViewCommands.cs @@ -24,30 +24,33 @@ namespace ICSharpCode.Reports.Addin.Commands public override void Run() { - WorkbenchSingleton.Workbench.ShowView(SetupDesigner()); +// WorkbenchSingleton.Workbench.ShowView(SetupDesigner()); + throw new NotImplementedException("Run"); } - public static ReportDesignerView SetupDesigner () + /* + private static ReportDesignerView SetupDesigner () { ReportModel model = ReportModel.Create(); - Properties customizer = new Properties(); - customizer.Set("ReportLayout",GlobalEnums.ReportLayout.ListLayout); - IReportGenerator generator = new GeneratePlainReport(model,customizer); + Properties properties = new Properties(); + properties.Set("ReportLayout",GlobalEnums.ReportLayout.ListLayout); + IReportGenerator generator = new GeneratePlainReport(model,properties); generator.GenerateReport(); - + Console.WriteLine("--Rework-----StartViewCommand----------"); // OpenedFile file = FileService.CreateUntitledOpenedFile(GlobalValues.PlainFileName,new byte[0]); // file.SetData(generator.Generated.ToArray()); // return SetupDesigner(file); return SetupDesigner(null); } - + */ public static ReportDesignerView SetupDesigner (OpenedFile file) { if (file == null) { throw new ArgumentNullException("file"); } + Console.WriteLine("StartViewCommand.SetupDesigner"); IDesignerGenerator generator = new ReportDesignerGenerator(); return new ReportDesignerView(file, generator); } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/DesignerBinding/InternalReportLoader.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/DesignerBinding/InternalReportLoader.cs index 1d1f42f294..36da6ca46c 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/DesignerBinding/InternalReportLoader.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/DesignerBinding/InternalReportLoader.cs @@ -6,9 +6,9 @@ using System.ComponentModel; using System.ComponentModel.Design.Serialization; using System.IO; using System.Windows.Forms; + using ICSharpCode.Core; using ICSharpCode.Reports.Core; -using ICSharpCode.Reports.Core.Interfaces; using ICSharpCode.SharpDevelop; namespace ICSharpCode.Reports.Addin @@ -31,6 +31,10 @@ namespace ICSharpCode.Reports.Addin if (generator == null) { throw new ArgumentNullException("generator"); } + if (stream == null) { + throw new ArgumentNullException("stream"); + } + Console.WriteLine("---------InternalReportLoader------------"); this.host = host; this.generator = generator; this.stream = stream; @@ -38,9 +42,8 @@ namespace ICSharpCode.Reports.Addin public void LoadOrCreateReport() { - + Console.WriteLine("LoadOrCreateReport()"); Application.UseWaitCursor = true; -// Application.DoEvents(); try { IComponent cc = this.host.CreateComponent(typeof(ICSharpCode.Reports.Addin.Designer.RootReportModel),"RootReportModel"); ICSharpCode.Reports.Addin.Designer.RootReportModel rootControl = cc as ICSharpCode.Reports.Addin.Designer.RootReportModel; @@ -55,17 +58,18 @@ namespace ICSharpCode.Reports.Addin } } + private void UpdateStatusbar () { string message; - if (this.generator.ViewContent.PrimaryFile.IsDirty) { - message = String.Format("Create Report <{0}> ...",Path.GetFileName(this.generator.ViewContent.PrimaryFile.FileName)); - } else { - message = String.Format("Load Report <{0}> ...",Path.GetFileName(this.generator.ViewContent.PrimaryFile.FileName)); - } - SharpDevelop.Gui.WorkbenchSingleton.StatusBar.SetMessage(message); + if (this.generator.ViewContent.PrimaryFile.IsDirty) { + message = String.Format("Create Report <{0}> ...",Path.GetFileName(this.generator.ViewContent.PrimaryFile.FileName)); + } else { + message = String.Format("Load Report <{0}> ...",Path.GetFileName(this.generator.ViewContent.PrimaryFile.FileName)); + } + SD.StatusBar.SetMessage(message); } - + private void CreateNamedSurface () { diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/DesignerBinding/ReportDefinitionDeserializer.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/DesignerBinding/ReportDefinitionDeserializer.cs index 1d22bd84bc..9649363220 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/DesignerBinding/ReportDefinitionDeserializer.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/DesignerBinding/ReportDefinitionDeserializer.cs @@ -32,6 +32,7 @@ namespace ICSharpCode.Reports.Addin if (stream == null) { throw new ArgumentNullException("stream"); } + Console.WriteLine("ReportDefinitionDeserializer"); this.host = host; this.stream = stream; } @@ -40,7 +41,7 @@ namespace ICSharpCode.Reports.Addin public ReportModel LoadObjectFromFileDefinition() { - + Console.WriteLine("LoadObjectFromFileDefinition()"); XmlDocument doc = new XmlDocument(); doc.Load(this.stream); if (doc.FirstChild.NodeType == XmlNodeType.XmlDeclaration) @@ -54,6 +55,7 @@ namespace ICSharpCode.Reports.Addin private ReportModel LoadObjectFromXmlDocument(XmlElement elem) { + Console.WriteLine("LoadObjectFromXmlDocumen)"); //ReportSettings OpenedFile file =(OpenedFile) host.GetService(typeof(OpenedFile)); BaseItemLoader baseItemLoader = new BaseItemLoader(); diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/DesignerBinding/ReportDesignerGenerator.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/DesignerBinding/ReportDesignerGenerator.cs index 741303e04b..610f4748b5 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/DesignerBinding/ReportDesignerGenerator.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/DesignerBinding/ReportDesignerGenerator.cs @@ -25,6 +25,7 @@ namespace ICSharpCode.Reports.Addin public ReportDesignerGenerator() { + Console.WriteLine("Create ReportDesignerGenerator()"); } public CodeDomProvider CodeDomProvider { @@ -41,6 +42,7 @@ namespace ICSharpCode.Reports.Addin public void Attach(ReportDesignerView viewContent) { + Console.WriteLine("ReportDesignerGenerator:Attach"); if (viewContent == null) { throw new ArgumentNullException("viewContent"); } @@ -56,13 +58,14 @@ namespace ICSharpCode.Reports.Addin public IEnumerable GetSourceFiles(out OpenedFile designerCodeFile) { + Console.WriteLine("ReportDesignerGenerator:getSourceFile"); designerCodeFile = this.viewContent.PrimaryFile; return new [] {designerCodeFile}; } public void MergeFormChanges(CodeCompileUnit unit){ - + Console.WriteLine("ReportDesignerGenerator:MergeFormChanges"); System.Diagnostics.Trace.WriteLine("Generator:MergeFormChanges"); StringWriterWithEncoding writer = new StringWriterWithEncoding(System.Text.Encoding.UTF8); XmlTextWriter xml = XmlHelper.CreatePropperWriter(writer); @@ -77,7 +80,7 @@ namespace ICSharpCode.Reports.Addin if (xml == null) { throw new ArgumentNullException("xml"); } - + Console.WriteLine("ReportDesignerGenerator:internalMergeFormChanges"); ReportDesignerWriter rpd = new ReportDesignerWriter(); XmlHelper.CreatePropperDocument(xml); diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/DesignerBinding/ReportDesignerLoader.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/DesignerBinding/ReportDesignerLoader.cs index 7f27b716b4..3ca8493a47 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/DesignerBinding/ReportDesignerLoader.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/DesignerBinding/ReportDesignerLoader.cs @@ -10,7 +10,6 @@ using System.Xml; using ICSharpCode.Reports.Core; using ICSharpCode.Reports.Core.Globals; -using ICSharpCode.SharpDevelop; namespace ICSharpCode.Reports.Addin { @@ -26,6 +25,7 @@ namespace ICSharpCode.Reports.Addin public ReportDesignerLoader(IDesignerGenerator generator, Stream stream) { + Console.WriteLine("ReportDesignerLoader:Ctor"); if (stream == null) throw new ArgumentNullException("stream"); if (generator == null) { @@ -83,6 +83,7 @@ namespace ICSharpCode.Reports.Addin public ReportModel CreateRenderableModel() { + Console.WriteLine("ReportDesignerLoader:CreateRenderableModel"); ReportModel m = new ReportModel(); generator.MergeFormChanges((System.CodeDom.CodeCompileUnit)null); XmlDocument doc = new XmlDocument(); @@ -122,6 +123,7 @@ namespace ICSharpCode.Reports.Addin public static Type GetReportType(Type baseType) { + Console.WriteLine("ReportLoader:GetReportType"); if (baseType == null) return null; if (baseToReport == null) { baseToReport = new Dictionary(); diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportDesignerView.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportDesignerView.cs index b3c599ba1b..4bfde85c6e 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportDesignerView.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportDesignerView.cs @@ -69,6 +69,7 @@ namespace ICSharpCode.Reports.Addin if (generator == null) { throw new ArgumentNullException("generator"); } + Console.WriteLine("ReportDesignerView"); this.generator = generator; this.generator.Attach(this); base.TabPageText = ResourceService.GetString("SharpReport.Design"); @@ -88,6 +89,7 @@ namespace ICSharpCode.Reports.Addin private void SetupSecondaryView () { + Console.WriteLine("SetupSecondaryView ()"); xmlView = new XmlView(generator,this); SecondaryViewContents.Add(xmlView); preview = new ReportPreview(loader,this); @@ -106,6 +108,7 @@ namespace ICSharpCode.Reports.Addin private void LoadDesigner(Stream stream) { + Console.WriteLine("LoadDesigner(Stream stream)"); LoggingService.Info("Form Designer: BEGIN INITIALIZE"); CreatePanel(); defaultServiceContainer = new DefaultServiceContainer(); @@ -247,6 +250,7 @@ namespace ICSharpCode.Reports.Addin private void MergeFormChanges() { + LoggingService.Info("MergeFormChanges()"); System.Diagnostics.Trace.WriteLine("View:MergeFormChanges()"); this.designSurface.Flush(); generator.MergeFormChanges(null); @@ -268,6 +272,7 @@ namespace ICSharpCode.Reports.Addin private void StartReportExplorer () { + LoggingService.Info("StartReportExplorer ()"); ReportExplorerPad explorerPad = CheckReportExplorer(); WorkbenchSingleton.Workbench.GetPad(typeof(ReportExplorerPad)).BringPadToFront(); explorerPad.AddContent(this.loader.ReportModel); @@ -277,6 +282,7 @@ namespace ICSharpCode.Reports.Addin private void ReportExplorer_PropertyChanged (object sender,System.ComponentModel.PropertyChangedEventArgs e) { + Console.WriteLine("ReportExplorer_PropertyChanged"); this.MakeDirty(); ReportExplorerPad explorerPad = CheckReportExplorer(); IComponentChangeService change = Host.GetService(typeof(IComponentChangeService)) as IComponentChangeService; @@ -369,6 +375,7 @@ namespace ICSharpCode.Reports.Addin private void UpdatePropertyPad() { + Console.WriteLine("UpdatePropertyPad()"); if (IsFormsDesignerVisible && Host != null) { propertyContainer.Host = Host; propertyContainer.SelectableObjects = Host.Container.Components; @@ -550,6 +557,9 @@ namespace ICSharpCode.Reports.Addin public PrintDocument PrintDocument { get { + Console.WriteLine(""); + Console.WriteLine("----ReportdesignerView:PrintDocument------"); + Console.WriteLine(""); ReportModel model = loader.CreateRenderableModel(); IReportCreator reportCreator = null; var paramCmd = new CollectParametersCommand(model); diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Xml/ReportDefinitionParser.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Xml/ReportDefinitionParser.cs index 9fecae79d3..832e21bb9b 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Xml/ReportDefinitionParser.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Xml/ReportDefinitionParser.cs @@ -52,7 +52,7 @@ namespace ICSharpCode.Reports.Addin } //Trace.Assert(t != null, "Type "+cname+" could not be determined."); // Debug.WriteLine("Looking for " + cname + " and got " + t.FullName); - + Console.WriteLine("ReportDefinitionParser - Looking for " + cname + " and got " + t.FullName); try { ret=Activator.CreateInstance(t); @@ -223,6 +223,7 @@ namespace ICSharpCode.Reports.Addin if (tc.CanConvertFrom(typeof(string))) { object val=tc.ConvertFromInvariantString(value); + Console.WriteLine("\tRDP -> SetPropertyToString {0} - {1}",pi.Name,value.ToString()); pi.SetValue(obj, val, null); } else if (pi.PropertyType == typeof(Type)) { pi.SetValue(obj, Type.GetType(value), null); diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/ICSharpCode.Reports.Core.csproj b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/ICSharpCode.Reports.Core.csproj index 26c69e617b..30d1593866 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/ICSharpCode.Reports.Core.csproj +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/ICSharpCode.Reports.Core.csproj @@ -12,10 +12,10 @@ False Auto 123731968 - x86 + AnyCPU 4096 4 - false + False OnBuildSuccess v4.5 "C:\Program Files\SharpDevelop\bin\..\AddIns\AddIns\Misc\SourceAnalysis\Settings.SourceAnalysis" @@ -37,6 +37,8 @@ true + False + obj\$(Configuration)\ False @@ -44,6 +46,7 @@ true Full True + obj\ True @@ -52,6 +55,9 @@ None False + + False + ..\Libraries\Irony.dll diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/ReportEngine.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/ReportEngine.cs index 8e41320374..bb36419a6a 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/ReportEngine.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/ReportEngine.cs @@ -38,6 +38,7 @@ namespace ICSharpCode.Reports.Core { public ReportEngine() { + Console.WriteLine("reportEngine"); } #endregion @@ -96,6 +97,7 @@ namespace ICSharpCode.Reports.Core { internal static void CheckForParameters (IReportModel model,ReportParameters reportParameters) { + Console.WriteLine("ReportEngine:CheckforParameters"); if (reportParameters != null) { if (reportParameters.SortColumnCollection.Count > 0) { @@ -117,6 +119,7 @@ namespace ICSharpCode.Reports.Core { private static void SetReportParam (IReportModel model,BasicParameter param) { + Console.WriteLine("ReportEngine:SetReportParameters"); var p = model.ReportSettings.ParameterCollection.Find(param.ParameterName); if (p != null) { p.ParameterValue = param.ParameterValue; @@ -126,6 +129,7 @@ namespace ICSharpCode.Reports.Core { private static void SetSqlParam (IReportModel model,SqlParameter param) { + Console.WriteLine("ReportEngine:SetSqlparameters"); var p = model.ReportSettings.SqlParameters.Find(param.ParameterName); if (p != null) { p.ParameterValue = param.ParameterValue; @@ -162,8 +166,9 @@ namespace ICSharpCode.Reports.Core { /// - protected AbstractRenderer SetupStandardRenderer (IReportModel model,ReportParameters parameters) { - + protected AbstractRenderer SetupStandardRenderer (IReportModel model,ReportParameters parameters) + { + Console.WriteLine("ReportEngine:SetupStandardRenderer"); AbstractRenderer abstr = null; try { switch (model.ReportSettings.ReportType) { @@ -190,8 +195,9 @@ namespace ICSharpCode.Reports.Core { protected AbstractRenderer SetupPushDataRenderer (IReportModel model, - IList list) { - + IList list) + { + Console.WriteLine("ReportEngine:SetupPushDataRenderer_1"); if (model == null) { throw new ArgumentNullException("model"); } @@ -215,7 +221,7 @@ namespace ICSharpCode.Reports.Core { protected AbstractRenderer SetupPushDataRenderer (IReportModel model, DataTable dataTable) { - + Console.WriteLine("ReportEngine:SetupPushRenderer_2"); if (model == null) { throw new ArgumentNullException("model"); } @@ -249,6 +255,7 @@ namespace ICSharpCode.Reports.Core { /// with /// this is an easy way to ask the report for desired paramaters public static ReportParameters LoadParameters (string fileName) { + Console.WriteLine("ReportEngine:LoadParameters"); if (String.IsNullOrEmpty(fileName)) { throw new ArgumentNullException("fileName"); } @@ -274,6 +281,7 @@ namespace ICSharpCode.Reports.Core { /// /// public static ReportModel LoadReportModel (string fileName) { + Console.WriteLine("ReportEngine:LoadReportModel_1"); if (String.IsNullOrEmpty(fileName)) { throw new ArgumentNullException("fileName"); } @@ -291,6 +299,7 @@ namespace ICSharpCode.Reports.Core { if (stream == null) { throw new ArgumentNullException("stream"); } + Console.WriteLine("ReportEngine:LoadReportModel_2"); var doc = new XmlDocument(); doc.Load(stream); return LoadModel(doc); @@ -299,6 +308,7 @@ namespace ICSharpCode.Reports.Core { static ReportModel LoadModel(XmlDocument doc) { + Console.WriteLine("ReportEngine:LoadModel"); BaseItemLoader loader = new BaseItemLoader(); object root = loader.Load(doc.DocumentElement); @@ -316,6 +326,7 @@ namespace ICSharpCode.Reports.Core { public void PreviewStandardReport (string fileName,ReportParameters reportParameters) { + Console.WriteLine("ReportEngine:PreviewStandardReport"); if (String.IsNullOrEmpty(fileName)) { throw new ArgumentNullException("fileName"); } @@ -336,6 +347,7 @@ namespace ICSharpCode.Reports.Core { public void PreviewPushDataReport (string fileName,DataTable dataTable,ReportParameters reportParameters) { + Console.WriteLine("ReportEngine:PreviewPushDataReport_1"); if (String.IsNullOrEmpty(fileName)) { throw new ArgumentNullException("fileName"); } @@ -358,6 +370,7 @@ namespace ICSharpCode.Reports.Core { public void PreviewPushDataReport (string fileName,IList list,ReportParameters reportParameters) { + Console.WriteLine("ReportEngine:PreviewPushDataReport_2"); if (String.IsNullOrEmpty(fileName)) { throw new ArgumentNullException("fileName"); } @@ -392,6 +405,7 @@ namespace ICSharpCode.Reports.Core { public static IReportCreator CreatePageBuilder (string fileName, ReportParameters reportParameters) { + Console.WriteLine("ReportEngine:CreatePageBuilder_1"); if (String.IsNullOrEmpty(fileName)) { throw new ArgumentNullException("fileName"); } @@ -437,6 +451,7 @@ namespace ICSharpCode.Reports.Core { DataSet dataSet, ReportParameters reportParameter) { + Console.WriteLine("ReportEngine:CreatePageBuilder_2"); if (reportModel == null) { throw new ArgumentNullException("reportModel"); } @@ -460,6 +475,7 @@ namespace ICSharpCode.Reports.Core { DataTable dataTable, ReportParameters reportParameters) { + Console.WriteLine("ReportEngine:CreatePageBuilder_3"); if (reportModel == null) { throw new ArgumentNullException("reportModel"); } @@ -488,6 +504,7 @@ namespace ICSharpCode.Reports.Core { IList list, ReportParameters reportParameters) { + Console.WriteLine("ReportEngine:CreatePageBuilder_4"); if (reportModel == null) { throw new ArgumentNullException("reportModel"); } @@ -510,6 +527,7 @@ namespace ICSharpCode.Reports.Core { #region Printing private static void ReportToPrinter (AbstractRenderer renderer,IReportModel model) { + Console.WriteLine("ReportEngine:reportToPrinter"); if (renderer == null) { throw new ArgumentNullException("renderer"); } @@ -550,6 +568,7 @@ namespace ICSharpCode.Reports.Core { // public void PrintStandardReport (string fileName,ReportParameters reportParameters) { + Console.WriteLine("ReportEngine:PrintStandardReport"); if (String.IsNullOrEmpty(fileName)) { throw new ArgumentNullException("fileName"); } @@ -579,6 +598,7 @@ namespace ICSharpCode.Reports.Core { /// public void PrintPushDataReport (string fileName,DataTable dataTable) { + Console.WriteLine("ReportEngine:PrintPushDataReport_1"); if (String.IsNullOrEmpty(fileName)) { throw new ArgumentNullException("fileName"); } @@ -597,6 +617,7 @@ namespace ICSharpCode.Reports.Core { public void PrintPushDataReport (string fileName,DataTable dataTable, ReportParameters reportParameters) { + Console.WriteLine("ReportEngine:PrintPushDataReport_2"); if (String.IsNullOrEmpty(fileName)) { throw new ArgumentNullException("fileName"); } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Xml/BaseItemLoader.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Xml/BaseItemLoader.cs index bd761c0c4b..a2a8ab4262 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Xml/BaseItemLoader.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Xml/BaseItemLoader.cs @@ -9,7 +9,9 @@ namespace ICSharpCode.Reports.Core { protected override Type GetTypeByName(string ns, string name) { + Console.WriteLine("BaseItemLoader - GetTypeByName {0}",name); return typeof(BaseSection).Assembly.GetType(typeof(BaseSection).Namespace + "." + name); } } } + \ No newline at end of file diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Xml/MycroParser.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Xml/MycroParser.cs index 6047a6717e..df5964f9c2 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Xml/MycroParser.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Xml/MycroParser.cs @@ -48,6 +48,7 @@ namespace ICSharpCode.Reports.Core // Trace.Assert(t != null, "Type "+cname+" could not be determined."); // Debug.WriteLine("Looking for " + cname + " and got " + t.FullName); + Console.WriteLine("Looking for " + cname + " and got " + t.FullName); try { ret=Activator.CreateInstance(t); @@ -200,6 +201,7 @@ namespace ICSharpCode.Reports.Core void SetPropertyToString(object obj, PropertyInfo pi, string value) { + Console.WriteLine("MP - SetPropertyToString {0} - {1}",pi.Name,value.ToString()); // it's string, so use a type converter. TypeConverter tc=TypeDescriptor.GetConverter(pi.PropertyType); try From 55760d9058a0ad9fcef91fe8063e964e42c427b2 Mon Sep 17 00:00:00 2001 From: Peter Forstmeier Date: Wed, 20 Mar 2013 20:51:59 +0100 Subject: [PATCH 05/33] Modify Projectstructure, add basic classes and there test's --- SharpDevelop.Tests.sln | 22 ++ .../Factory/ReportingFactoryFixture.cs | 23 ++ .../Model/LoadPlainModelFixture.cs | 75 ++++++ .../Model/ReportModelFixture.cs | 48 ++++ .../Model/ReportSettingsFixture.cs | 35 +++ .../TestReports/PlainModel.srd | 86 +++++++ .../Reporting/Configuration/AssemblyInfo.cs | 13 + .../Reporting/ICSharpCode.Reporting.csproj | 69 +++++ .../Misc/Reporting/Src/Globals/GlobalEnums.cs | 26 ++ .../Reporting/Src/Globals/GlobalValues.cs | 25 ++ .../Reporting/Src/Interfaces/IReportModel.cs | 29 +++ .../Misc/Reporting/Src/Items/BaseSection.cs | 22 ++ .../Misc/Reporting/Src/Items/ReportModel.cs | 100 ++++++++ .../Reporting/Src/Items/ReportSettings.cs | 80 ++++++ .../Misc/Reporting/Src/ReportingFactory.cs | 50 ++++ .../Misc/Reporting/Src/Xml/ModelLoader.cs | 30 +++ .../Misc/Reporting/Src/Xml/MycroParser.cs | 235 ++++++++++++++++++ .../Generators/AbstractReportGenerator.cs | 9 +- .../Generators/GenerateFormSheetReport.cs | 2 +- .../Generators/GeneratePlainReport.cs | 2 +- .../Generators/GeneratePullDataReport.cs | 2 +- .../Generators/GeneratePushDataReport.cs | 2 +- .../Generators/GeneratorFactory.cs | 18 +- .../ReportWizard/ReportWizardCommand.cs | 10 +- .../WizardPanels/BaseSettingsPanel.cs | 39 ++- .../ReportWizard/WizardPanels/LayoutPanel.cs | 11 +- .../WizardPanels/PullModelPanel.cs | 13 +- .../WizardPanels/PushModelPanel.cs | 16 +- .../ReportWizard/WizardPanels/ResultPanel.cs | 12 +- .../WizardPanels/Wizard/WizardDialog.cs | 8 +- ...ReportDesignerDisplayBindingTestFixture.cs | 4 +- .../Wizard/GeneratePlainReportFixture_1.cs | 6 +- .../Generators/GenarateListReportFixture.cs | 2 + .../Generators/GenerateFormsSheetReport.cs | 3 +- .../GenerateListWithGroupFixture.cs | 2 + .../GeneratePlainReportFixture_2.cs | 6 +- .../Generators/GenerateTableReportFixture.cs | 2 + .../Generators/GenerateTableWithGrouping.cs | 2 + .../Generators/ReportGenerationHelper.cs | 3 + .../Test/Wizard/ReportStructureFixture.cs | 2 + .../Project/ReportModel.cs | 1 - 41 files changed, 1058 insertions(+), 87 deletions(-) create mode 100644 src/AddIns/Misc/ICSharpCode.Reporting.Tests/Factory/ReportingFactoryFixture.cs create mode 100644 src/AddIns/Misc/ICSharpCode.Reporting.Tests/Model/LoadPlainModelFixture.cs create mode 100644 src/AddIns/Misc/ICSharpCode.Reporting.Tests/Model/ReportModelFixture.cs create mode 100644 src/AddIns/Misc/ICSharpCode.Reporting.Tests/Model/ReportSettingsFixture.cs create mode 100644 src/AddIns/Misc/ICSharpCode.Reporting.Tests/TestReports/PlainModel.srd create mode 100644 src/AddIns/Misc/Reporting/Configuration/AssemblyInfo.cs create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting.csproj create mode 100644 src/AddIns/Misc/Reporting/Src/Globals/GlobalEnums.cs create mode 100644 src/AddIns/Misc/Reporting/Src/Globals/GlobalValues.cs create mode 100644 src/AddIns/Misc/Reporting/Src/Interfaces/IReportModel.cs create mode 100644 src/AddIns/Misc/Reporting/Src/Items/BaseSection.cs create mode 100644 src/AddIns/Misc/Reporting/Src/Items/ReportModel.cs create mode 100644 src/AddIns/Misc/Reporting/Src/Items/ReportSettings.cs create mode 100644 src/AddIns/Misc/Reporting/Src/ReportingFactory.cs create mode 100644 src/AddIns/Misc/Reporting/Src/Xml/ModelLoader.cs create mode 100644 src/AddIns/Misc/Reporting/Src/Xml/MycroParser.cs diff --git a/SharpDevelop.Tests.sln b/SharpDevelop.Tests.sln index e94e7c9aa1..b0f3d303b9 100644 --- a/SharpDevelop.Tests.sln +++ b/SharpDevelop.Tests.sln @@ -147,6 +147,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Reports.Addin", EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Reports.Addin.Test", "src\AddIns\Misc\Reports\ICSharpCode.Reports.Addin\Test\ICSharpCode.Reports.Addin.Test.csproj", "{2B232C7E-CFB6-4B73-A1B8-134A8A2ED4F7}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Reporting", "src\AddIns\Misc\Reporting\ICSharpCode.Reporting.csproj", "{40CA84D4-ACFC-4646-9CDD-B87262D34093}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Reporting.Tests", "src\AddIns\Misc\ICSharpCode.Reporting.Tests\ICSharpCode.Reporting.Tests.csproj", "{D38DE254-A132-4E43-9BF0-21BA45564E9D}" +EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Display Bindings", "Display Bindings", "{11BF9245-88A3-4A0A-9A8A-EC9D98036B0F}" ProjectSection(SolutionItems) = postProject EndProjectSection @@ -887,6 +891,22 @@ Global {2B232C7E-CFB6-4B73-A1B8-134A8A2ED4F7}.Release|Any CPU.ActiveCfg = Release|Any CPU {2B232C7E-CFB6-4B73-A1B8-134A8A2ED4F7}.Release|x86.Build.0 = Release|Any CPU {2B232C7E-CFB6-4B73-A1B8-134A8A2ED4F7}.Release|x86.ActiveCfg = Release|Any CPU + {40CA84D4-ACFC-4646-9CDD-B87262D34093}.Debug|Any CPU.Build.0 = Debug|Any CPU + {40CA84D4-ACFC-4646-9CDD-B87262D34093}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {40CA84D4-ACFC-4646-9CDD-B87262D34093}.Debug|x86.Build.0 = Debug|Any CPU + {40CA84D4-ACFC-4646-9CDD-B87262D34093}.Debug|x86.ActiveCfg = Debug|Any CPU + {40CA84D4-ACFC-4646-9CDD-B87262D34093}.Release|Any CPU.Build.0 = Release|Any CPU + {40CA84D4-ACFC-4646-9CDD-B87262D34093}.Release|Any CPU.ActiveCfg = Release|Any CPU + {40CA84D4-ACFC-4646-9CDD-B87262D34093}.Release|x86.Build.0 = Release|Any CPU + {40CA84D4-ACFC-4646-9CDD-B87262D34093}.Release|x86.ActiveCfg = Release|Any CPU + {D38DE254-A132-4E43-9BF0-21BA45564E9D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D38DE254-A132-4E43-9BF0-21BA45564E9D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D38DE254-A132-4E43-9BF0-21BA45564E9D}.Debug|x86.Build.0 = Debug|Any CPU + {D38DE254-A132-4E43-9BF0-21BA45564E9D}.Debug|x86.ActiveCfg = Debug|Any CPU + {D38DE254-A132-4E43-9BF0-21BA45564E9D}.Release|Any CPU.Build.0 = Release|Any CPU + {D38DE254-A132-4E43-9BF0-21BA45564E9D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D38DE254-A132-4E43-9BF0-21BA45564E9D}.Release|x86.Build.0 = Release|Any CPU + {D38DE254-A132-4E43-9BF0-21BA45564E9D}.Release|x86.ActiveCfg = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -950,6 +970,8 @@ Global {E16B73CA-3603-47EE-915E-6F8B2A07304B} = {F3662720-9EA2-4591-BBC6-97361DCE50A9} {35D002D7-C78B-44FB-92AA-104BEB431678} = {F3662720-9EA2-4591-BBC6-97361DCE50A9} {2B232C7E-CFB6-4B73-A1B8-134A8A2ED4F7} = {F3662720-9EA2-4591-BBC6-97361DCE50A9} + {40CA84D4-ACFC-4646-9CDD-B87262D34093} = {F3662720-9EA2-4591-BBC6-97361DCE50A9} + {D38DE254-A132-4E43-9BF0-21BA45564E9D} = {F3662720-9EA2-4591-BBC6-97361DCE50A9} {6B1CFE35-DA17-4DEB-9C6E-227E5E251DA0} = {DEFC8584-BEC3-4921-BD0F-40482E450B7B} {0008FCE9-9EB4-4E2E-979B-553278E5BBA6} = {DEFC8584-BEC3-4921-BD0F-40482E450B7B} {AE4AB0FA-6087-4480-AF37-0FA1452B3DA1} = {485A4CCF-55CF-49F4-BD6D-A22B788C67DA} diff --git a/src/AddIns/Misc/ICSharpCode.Reporting.Tests/Factory/ReportingFactoryFixture.cs b/src/AddIns/Misc/ICSharpCode.Reporting.Tests/Factory/ReportingFactoryFixture.cs new file mode 100644 index 0000000000..6792c2589e --- /dev/null +++ b/src/AddIns/Misc/ICSharpCode.Reporting.Tests/Factory/ReportingFactoryFixture.cs @@ -0,0 +1,23 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 19.03.2013 + * Time: 19:14 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using NUnit.Framework; + +namespace ICSharpCode.Reporting.Tests.Factory +{ + [TestFixture] + public class ReportingFactoryFixture + { + [Test] + public void TestMethod() + { + // TODO: Add your test. + } + } +} diff --git a/src/AddIns/Misc/ICSharpCode.Reporting.Tests/Model/LoadPlainModelFixture.cs b/src/AddIns/Misc/ICSharpCode.Reporting.Tests/Model/LoadPlainModelFixture.cs new file mode 100644 index 0000000000..240522094c --- /dev/null +++ b/src/AddIns/Misc/ICSharpCode.Reporting.Tests/Model/LoadPlainModelFixture.cs @@ -0,0 +1,75 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 19.03.2013 + * Time: 19:58 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using System.IO; +using System.Reflection; + +using NUnit.Framework; + +namespace ICSharpCode.Reporting.Tests.Model +{ + [TestFixture] + public class LoadPlainModelFixture + { + private const string nS = "ICSharpCode.Reporting.Tests.TestReports."; + private const string reportName = "PlainModel.srd"; + private Stream stream; + + [Test] + public void CanLoadFromResource() + { + Assert.IsNotNull(stream); + } + + + [Test] + public void LoadPlainModel() + { + var rf = new ReportingFactory(); + var model = rf.LoadReport(stream); + Assert.IsNotNull(model); + } + + [Test] + public void ReportSettingsFromPlainModel() + { + var rf = new ReportingFactory(); + var model = rf.LoadReport(stream); + Assert.That(model.ReportSettings,Is.Not.Null); + } + + + [Test] + public void ReportSettingsReportName() + { + var rf = new ReportingFactory(); + var model = rf.LoadReport(stream); + Assert.That(model.ReportSettings.ReportName,Is.EqualTo(Globals.GlobalValues.DefaultReportName)); + } + + + [Test] + public void ReportSettingsPageSize() + { + var rf = new ReportingFactory(); + var model = rf.LoadReport(stream); + Assert.That(model.ReportSettings.PageSize,Is.EqualTo(Globals.GlobalValues.DefaultPageSize)); + } + + + [SetUp] + public void LoadFromStream() + { + System.Reflection.Assembly asm = Assembly.GetExecutingAssembly(); + stream = asm.GetManifestResourceStream(nS + reportName); + } + + + } +} diff --git a/src/AddIns/Misc/ICSharpCode.Reporting.Tests/Model/ReportModelFixture.cs b/src/AddIns/Misc/ICSharpCode.Reporting.Tests/Model/ReportModelFixture.cs new file mode 100644 index 0000000000..dddd3c81e0 --- /dev/null +++ b/src/AddIns/Misc/ICSharpCode.Reporting.Tests/Model/ReportModelFixture.cs @@ -0,0 +1,48 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 19.03.2013 + * Time: 19:02 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using ICSharpCode.Reporting.Items; +using NUnit.Framework; + +namespace ICSharpCode.Reporting.Tests.Model +{ + [TestFixture] + public class ReportModelFixture + { + private ReportModel model; + + [Test] + public void CanCreateReportModel() + { + Assert.That(model,Is.Not.Null); + } + + + [Test] + public void ModelInitializeReportSettings() + { + Assert.That(model.ReportSettings,Is.Not.Null); + } + + + [Test] + public void ModelReturnsPlainReportName() + { + Assert.That(model.ReportSettings.ReportName,Is.EqualTo(Globals.GlobalValues.DefaultReportName)); + } + + + [SetUp] + public void CreateModel() + { + model = ReportModel.Create(); + } + + } +} diff --git a/src/AddIns/Misc/ICSharpCode.Reporting.Tests/Model/ReportSettingsFixture.cs b/src/AddIns/Misc/ICSharpCode.Reporting.Tests/Model/ReportSettingsFixture.cs new file mode 100644 index 0000000000..33294d0770 --- /dev/null +++ b/src/AddIns/Misc/ICSharpCode.Reporting.Tests/Model/ReportSettingsFixture.cs @@ -0,0 +1,35 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 19.03.2013 + * Time: 19:10 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using ICSharpCode.Reporting.Globals; +using ICSharpCode.Reporting.Items; +using NUnit.Framework; + +namespace ICSharpCode.Reporting.Tests +{ + [TestFixture] + public class ReportSettingsFixture + { + [Test] + public void DefaultConstructureShouldReturnStandardValues() + { + ReportSettings rs = new ReportSettings(); + Assert.IsNotNull(rs,"Should not be 'null'"); + Assert.AreEqual(GlobalValues.DefaultReportName,rs.ReportName); + } + + + [Test] + public void DefaultPageSize () + { + ReportSettings rs = new ReportSettings(); + Assert.AreEqual(GlobalValues.DefaultPageSize,rs.PageSize); + } + } +} diff --git a/src/AddIns/Misc/ICSharpCode.Reporting.Tests/TestReports/PlainModel.srd b/src/AddIns/Misc/ICSharpCode.Reporting.Tests/TestReports/PlainModel.srd new file mode 100644 index 0000000000..d6306dd40f --- /dev/null +++ b/src/AddIns/Misc/ICSharpCode.Reporting.Tests/TestReports/PlainModel.srd @@ -0,0 +1,86 @@ + + + + + Microsoft Sans Serif, 10pt + FormSheet + D:\SharpDevelop3.0_CHECKOUT\SharpDevelop\bin\Raaaaaeport1.srd + 50 + True + + + No Data for this Report + 50 + 827, 1169 + 5, 5, 5, 5 + 50 + Text + + False + Report1 + 50 + + Millimeter + + FormSheet + + + + + + 727, 60 + ReportHeader + False + 0 + 0 + White + + 50, 50 + False + + + 727, 60 + ReportPageHeader + False + 0 + 0 + White + + 50, 125 + False + + + 727, 60 + ReportDetail + False + 0 + 0 + White + + 50, 200 + False + + + 727, 60 + ReportPageFooter + False + 0 + 0 + White + + 50, 275 + False + + + 727, 60 + ReportFooter + False + 0 + 0 + White + + 50, 350 + False + + + \ No newline at end of file diff --git a/src/AddIns/Misc/Reporting/Configuration/AssemblyInfo.cs b/src/AddIns/Misc/Reporting/Configuration/AssemblyInfo.cs new file mode 100644 index 0000000000..92c27daa12 --- /dev/null +++ b/src/AddIns/Misc/Reporting/Configuration/AssemblyInfo.cs @@ -0,0 +1,13 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 16.03.2013 + * Time: 20:24 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System.Security; + +[assembly: SecurityRules(SecurityRuleSet.Level1)] + +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ICSharpCode.Reporting.Tests")] \ No newline at end of file diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.csproj b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.csproj new file mode 100644 index 0000000000..367c6921f8 --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.csproj @@ -0,0 +1,69 @@ + + + + {40CA84D4-ACFC-4646-9CDD-B87262D34093} + Debug + AnyCPU + Library + ICSharpCode.Reporting + ICSharpCode.Reporting + v4.0 + Client + Properties + + + AnyCPU + + + bin\Debug\ + True + Full + False + True + DEBUG;TRACE + + + bin\Release\ + False + None + True + False + TRACE + + + + $(SharpDevelopBinPath)\Tools\NUnit\NUnit.Framework.dll + + + + 3.5 + + + + + 3.5 + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/AddIns/Misc/Reporting/Src/Globals/GlobalEnums.cs b/src/AddIns/Misc/Reporting/Src/Globals/GlobalEnums.cs new file mode 100644 index 0000000000..44154949e9 --- /dev/null +++ b/src/AddIns/Misc/Reporting/Src/Globals/GlobalEnums.cs @@ -0,0 +1,26 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 17.03.2013 + * Time: 17:30 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; + +namespace ICSharpCode.Reporting.Globals +{ + /// + /// Description of GlobalEnums. + /// + internal sealed class GlobalEnums + { + internal enum ReportSection { + ReportHeader, + ReportPageHeader, + ReportDetail, + ReportPageFooter, + ReportFooter + } + } +} diff --git a/src/AddIns/Misc/Reporting/Src/Globals/GlobalValues.cs b/src/AddIns/Misc/Reporting/Src/Globals/GlobalValues.cs new file mode 100644 index 0000000000..3c045783c7 --- /dev/null +++ b/src/AddIns/Misc/Reporting/Src/Globals/GlobalValues.cs @@ -0,0 +1,25 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 17.03.2013 + * Time: 17:57 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using System.Drawing; +namespace ICSharpCode.Reporting.Globals +{ + /// + /// Description of GlobalValues. + /// + public static class GlobalValues + { + public static string ReportExtension {get {return ".srd";}} + + public static string DefaultReportName {get { return "Report1";}} + + public static Size DefaultPageSize {get {return new Size(827,1169);}} + + } +} diff --git a/src/AddIns/Misc/Reporting/Src/Interfaces/IReportModel.cs b/src/AddIns/Misc/Reporting/Src/Interfaces/IReportModel.cs new file mode 100644 index 0000000000..c0cf143469 --- /dev/null +++ b/src/AddIns/Misc/Reporting/Src/Interfaces/IReportModel.cs @@ -0,0 +1,29 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 17.03.2013 + * Time: 17:20 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; + +namespace ICSharpCode.Reporting.Interfaces +{ + /// + /// Description of IReportModel. + /// + public interface IReportModel + { + /* + BaseSection ReportHeader {get;} + BaseSection PageHeader {get;} + BaseSection DetailSection {get;} + BaseSection PageFooter {get;} + BaseSection ReportFooter {get;} + ReportSettings ReportSettings {get;set;} + GlobalEnums.PushPullModel DataModel {get;} + ReportSectionCollection SectionCollection {get;} + */ + } +} diff --git a/src/AddIns/Misc/Reporting/Src/Items/BaseSection.cs b/src/AddIns/Misc/Reporting/Src/Items/BaseSection.cs new file mode 100644 index 0000000000..6e33f5fee0 --- /dev/null +++ b/src/AddIns/Misc/Reporting/Src/Items/BaseSection.cs @@ -0,0 +1,22 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 19.03.2013 + * Time: 20:19 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; + +namespace ICSharpCode.Reporting.Items +{ + /// + /// Description of BaseSection. + /// + public class BaseSection + { + public BaseSection() + { + } + } +} diff --git a/src/AddIns/Misc/Reporting/Src/Items/ReportModel.cs b/src/AddIns/Misc/Reporting/Src/Items/ReportModel.cs new file mode 100644 index 0000000000..a04122b842 --- /dev/null +++ b/src/AddIns/Misc/Reporting/Src/Items/ReportModel.cs @@ -0,0 +1,100 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 17.03.2013 + * Time: 17:18 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using ICSharpCode.Reporting.Globals; +using ICSharpCode.Reporting.Interfaces; + +namespace ICSharpCode.Reporting.Items +{ + /// + /// Description of ReportModel. + /// + public class ReportModel :IReportModel + { + +// ReportSectionCollection sectionCollection; + + + public static ReportModel Create() + { + var model = new ReportModel(); +// foreach (GlobalEnums.ReportSection sec in Enum.GetValues(typeof(GlobalEnums.ReportSection))) { +// m.SectionCollection.Add (SectionFactory.Create(sec.ToString())); +// } + return model; + } + + /* + public static ReportModel Create(GraphicsUnit graphicsUnit) + { + ReportModel m = Create(); + m.ReportSettings.GraphicsUnit = graphicsUnit; + return m; + } + + + #region Sections + + public BaseSection ReportHeader + { + get { + return (BaseSection)sectionCollection[0]; + } + } + + + public BaseSection PageHeader + { + get { + return (BaseSection)sectionCollection[1]; + } + } + + + public BaseSection DetailSection + { + get { + return (BaseSection)sectionCollection[2]; + } + } + + + public BaseSection PageFooter + { + get { + return (BaseSection)sectionCollection[3]; + } + } + + public BaseSection ReportFooter + { + get { + return (BaseSection)sectionCollection[4]; + } + } + + #endregion + */ + + ReportSettings reportSettings ; + + public ReportSettings ReportSettings + { + get { + if (this.reportSettings == null) { + this.reportSettings = new ReportSettings(); + } + return reportSettings; + } + set { + reportSettings = value; + } + } + } +} diff --git a/src/AddIns/Misc/Reporting/Src/Items/ReportSettings.cs b/src/AddIns/Misc/Reporting/Src/Items/ReportSettings.cs new file mode 100644 index 0000000000..d24b35f9ca --- /dev/null +++ b/src/AddIns/Misc/Reporting/Src/Items/ReportSettings.cs @@ -0,0 +1,80 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 17.03.2013 + * Time: 17:41 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using System.Drawing; + +namespace ICSharpCode.Reporting.Items +{ + /// + /// Description of ReportSettings. + /// + public class ReportSettings + { + + + public ReportSettings() + { + this.PageSize = Globals.GlobalValues.DefaultPageSize; + BaseValues(); + } + + + void BaseValues() + { + +// this.UseStandardPrinter = true; +// this.GraphicsUnit = GraphicsUnit.Pixel; +// this.Padding = new Padding(5); +// this.DefaultFont = GlobalValues.DefaultFont; +// this.ReportType = GlobalEnums.ReportType.FormSheet; +// +// this.DataModel = GlobalEnums.PushPullModel.FormSheet; +// +// this.CommandType = System.Data.CommandType.Text; +// this.ConnectionString = String.Empty; +// this.CommandText = String.Empty; +// +// this.TopMargin = GlobalValues.DefaultPageMargin.Left; +// this.BottomMargin = GlobalValues.DefaultPageMargin.Bottom; +// this.LeftMargin = GlobalValues.DefaultPageMargin.Left; +// this.RightMargin = GlobalValues.DefaultPageMargin.Right; +// +// this.availableFields = new AvailableFieldsCollection(); +// this.groupingsCollection = new GroupColumnCollection(); +// this.sortingCollection = new SortColumnCollection(); +// this.sqlParameters = new SqlParameterCollection(); +// this.parameterCollection = new ParameterCollection(); +// this.NoDataMessage = "No Data for this Report"; + } + + + private string reportName; + +// [Category("Base Settings")] +// [DefaultValueAttribute ("")] + public string ReportName + { + get { + if (string.IsNullOrEmpty(reportName)) { + reportName = Globals.GlobalValues.DefaultReportName; + } + return reportName; + } + set { + if (reportName != value) { + reportName = value; + } + } + } + + +// [Category("Page Settings")] + public Size PageSize {get;set;} + } +} diff --git a/src/AddIns/Misc/Reporting/Src/ReportingFactory.cs b/src/AddIns/Misc/Reporting/Src/ReportingFactory.cs new file mode 100644 index 0000000000..b33ba3f96f --- /dev/null +++ b/src/AddIns/Misc/Reporting/Src/ReportingFactory.cs @@ -0,0 +1,50 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 17.03.2013 + * Time: 17:09 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using System.IO; +using System.Xml; + +using ICSharpCode.Reporting.Items; +using ICSharpCode.Reporting.Xml; + +namespace ICSharpCode.Reporting +{ + /// + /// Description of Reporting. + /// + public class ReportingFactory + { + public ReportingFactory() + { + } + + + public ReportModel LoadReport (Stream stream) + { + Console.WriteLine("ReportEngine:LoadReportModel_2"); + var doc = new XmlDocument(); + doc.Load(stream); + var rm = LoadModel(doc); + return rm; + } + + static ReportModel LoadModel(XmlDocument doc) + { + Console.WriteLine("ReportEngine:LoadModel"); + var loader = new ModelLoader(); + object root = loader.Load(doc.DocumentElement); + + var model = root as ReportModel; + if (model == null) { +// throw new IllegalFileFormatException("ReportModel"); + } + return model; + } + } +} diff --git a/src/AddIns/Misc/Reporting/Src/Xml/ModelLoader.cs b/src/AddIns/Misc/Reporting/Src/Xml/ModelLoader.cs new file mode 100644 index 0000000000..be14882f74 --- /dev/null +++ b/src/AddIns/Misc/Reporting/Src/Xml/ModelLoader.cs @@ -0,0 +1,30 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 19.03.2013 + * Time: 20:13 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using ICSharpCode.Reporting.Items; + +namespace ICSharpCode.Reporting.Xml +{ + /// + /// Description of ModelLoader. + /// + public class ModelLoader: MycroParser + { + + protected override Type GetTypeByName(string ns, string name) + { +// var b = typeof(BaseSection).Assembly.GetType("ICSharpCode.Reporting.Items" + "." + name); + var s = typeof(BaseSection).Assembly.GetType(typeof(BaseSection).Namespace + "." + name); + Console.WriteLine("getTypeByname <{0}>",s.Name); + return typeof(BaseSection).Assembly.GetType(typeof(BaseSection).Namespace + "." + name); + + } + + } +} diff --git a/src/AddIns/Misc/Reporting/Src/Xml/MycroParser.cs b/src/AddIns/Misc/Reporting/Src/Xml/MycroParser.cs new file mode 100644 index 0000000000..078f64a880 --- /dev/null +++ b/src/AddIns/Misc/Reporting/Src/Xml/MycroParser.cs @@ -0,0 +1,235 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 19.03.2013 + * Time: 20:14 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using System.ComponentModel; +using System.Diagnostics; +using System.Collections; +using System.Collections.Generic; +using System.Xml; +using System.Reflection; + +namespace ICSharpCode.Reporting.Xml +{ + /// + /// Description of MycroParser. + /// + public interface IMycroXaml + { + void Initialize(object parent); + object ReturnedObject + { + get; + } + } + + /// + /// See http://www.codeproject.com/dotnet/MycroXaml.asp + /// + public abstract class MycroParser + { + public object Load(XmlElement element) + { + return ProcessNode(element, null); + } + + protected abstract Type GetTypeByName(string ns, string name); + + protected object ProcessNode(XmlNode node, object parent) + { + object ret=null; + if (node is XmlElement) + { + // instantiate the class + string ns=node.Prefix; + string cname=node.LocalName; + Console.WriteLine ("ProcessNode(XmlNode node, object parent) {0}",cname); + Type t=GetTypeByName(ns, cname); + if (t == null) { + Console.WriteLine("\t Not found {0}",t.FullName); +// t = GetTypeByName (ns,"ErrorItem"); + } + + Trace.Assert(t != null, "Type "+cname+" could not be determined."); +// Debug.WriteLine("Looking for " + cname + " and got " + t.FullName); + Console.WriteLine("Looking for " + cname + " and got " + t.FullName); + try + { + ret=Activator.CreateInstance(t); + } + catch(Exception e) + { + Trace.Fail("Type "+cname+" could not be instantiated:\r\n"+e.Message); + } + + // support the ISupportInitialize interface + if (ret is ISupportInitialize) { + ((ISupportInitialize)ret).BeginInit(); + } + + // If the instance implements the IMicroXaml interface, then it may need + // access to the parser. + if (ret is IMycroXaml) { + ((IMycroXaml)ret).Initialize(parent); + } + + // implements the class-property-class model + ProcessAttributes(node, ret, t); + ProcessChildProperties(node, ret); + + // support the ISupportInitialize interface + if (ret is ISupportInitialize) { + ((ISupportInitialize)ret).EndInit(); + } + + // If the instance implements the IMicroXaml interface, then it has the option + // to return an object that replaces the instance created by the parser. + if (ret is IMycroXaml) { + ret=((IMycroXaml)ret).ReturnedObject; + } + + } + return ret; + } + + protected void ProcessChildProperties(XmlNode node, object parent) + { + Type t=parent.GetType(); + + // children of a class must always be properties + foreach(XmlNode child in node.ChildNodes) + { + if (child is XmlElement) + { + string pname=child.LocalName; + PropertyInfo pi=t.GetProperty(pname); + + if (pi==null) + { + // Special case--we're going to assume that the child is a class instance + // not associated with the parent object +// Trace.Fail("Unsupported property: "+pname); + System.Console.WriteLine("Unsupported property: "+pname); + continue; + } + + // a property can only have one child node unless it's a collection + foreach(XmlNode grandChild in child.ChildNodes) + { + if (grandChild is XmlText) { + SetPropertyToString(parent, pi, child.InnerText); + break; + } + else if (grandChild is XmlElement) + { + object propObject=pi.GetValue(parent, null); + object obj=ProcessNode(grandChild, propObject); + + // A null return is valid in cases where a class implementing the IMicroXaml interface + // might want to take care of managing the instance it creates itself. See DataBinding + if (obj != null) + { + + // support for ICollection objects + if (propObject is ICollection) + { + MethodInfo mi=t.GetMethod("Add", new Type[] {obj.GetType()}); + if (mi != null) + { + try + { + mi.Invoke(obj, new object[] {obj}); + } + catch(Exception e) + { + Trace.Fail("Adding to collection failed:\r\n"+e.Message); + } + } + else if (propObject is IList) + { + try + { + ((IList)propObject).Add(obj); + } + catch(Exception e) + { + Trace.Fail("List/Collection add failed:\r\n"+e.Message); + } + } + } + else if (!pi.CanWrite) { + Trace.Fail("Unsupported read-only property: "+pname); + } + else + { + // direct assignment if not a collection + try + { + pi.SetValue(parent, obj, null); + } + catch(Exception e) + { + Trace.Fail("Property setter for "+pname+" failed:\r\n"+e.Message); + } + } + } + } + } + } + } + } + + protected void ProcessAttributes(XmlNode node, object ret, Type type) + { + // process attributes + foreach(XmlAttribute attr in node.Attributes) + { + string pname=attr.Name; + string pvalue=attr.Value; + + // it's either a property or an event + PropertyInfo pi=type.GetProperty(pname); + + if (pi != null) + { + // it's a property! + SetPropertyToString(ret, pi, pvalue); + } + else + { + // who knows what it is??? + Trace.Fail("Failed acquiring property information for "+pname); + } + } + } + + void SetPropertyToString(object obj, PropertyInfo pi, string value) + { + Console.WriteLine("MP - SetPropertyToString {0} - {1}",pi.Name,value.ToString()); + // it's string, so use a type converter. + TypeConverter tc=TypeDescriptor.GetConverter(pi.PropertyType); + try + { + if (tc.CanConvertFrom(typeof(string))) + { + object val=tc.ConvertFromInvariantString(value); + pi.SetValue(obj, val, null); + } else if (pi.PropertyType == typeof(Type)) { + pi.SetValue(obj, Type.GetType(value), null); + } + } + catch(Exception e) + { + String s = String.Format("Property setter for {0} failed {1}\r\n",pi.Name, + e.Message); + System.Console.WriteLine("MycroParser : {0}",s); + } + } + + } +} diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/AbstractReportGenerator.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/AbstractReportGenerator.cs index 996361f46a..c3908baaad 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/AbstractReportGenerator.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/AbstractReportGenerator.cs @@ -43,7 +43,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard private ColumnCollection groupColumnCollection; - protected AbstractReportGenerator(ReportModel reportModel,Properties properties) + protected AbstractReportGenerator(ReportModel reportModel,ReportStructure properties) { if (reportModel == null) { throw new ArgumentNullException("reportModel"); @@ -52,11 +52,12 @@ namespace ICSharpCode.Reports.Addin.ReportWizard if (properties == null) { throw new ArgumentNullException("customizer"); } - throw new NotImplementedException("Fix me AbstractReportGenerator"); + this.ReportModel = reportModel; - this.Properties = properties; +// this.Properties = properties; // ReportStructure = (ReportStructure)properties.Get("Generator"); - +// ReportStructure = (ReportStructure)base.CustomizationObject; + ReportStructure = properties; this.AvailableFieldsCollection.Clear(); this.ReportItemCollection.Clear(); this.GroupColumnCollection.Clear(); diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GenerateFormSheetReport.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GenerateFormSheetReport.cs index a77a3f4787..309ae125cd 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GenerateFormSheetReport.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GenerateFormSheetReport.cs @@ -16,7 +16,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard public class GenerateFormSheetReport:GeneratePlainReport { public GenerateFormSheetReport(ReportModel reportModel, - Properties customizer):base(reportModel,customizer) + ReportStructure customizer):base(reportModel,customizer) { if (reportModel == null) { diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GeneratePlainReport.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GeneratePlainReport.cs index 5a3d0ddca4..6d17462a9b 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GeneratePlainReport.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GeneratePlainReport.cs @@ -15,7 +15,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard public class GeneratePlainReport:AbstractReportGenerator { - public GeneratePlainReport(ReportModel reportModel,Properties customizer):base(reportModel,customizer) + public GeneratePlainReport(ReportModel reportModel,ReportStructure customizer):base(reportModel,customizer) { if (reportModel == null) { throw new ArgumentNullException("reportModel"); diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GeneratePullDataReport.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GeneratePullDataReport.cs index ebcc2a6f40..0d79dcb033 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GeneratePullDataReport.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GeneratePullDataReport.cs @@ -17,7 +17,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard public GeneratePullDataReport(ReportModel reportModel, - Properties properties):base(reportModel,properties) + ReportStructure properties):base(reportModel,properties) { if (reportModel == null) { diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GeneratePushDataReport.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GeneratePushDataReport.cs index 7ddb547aa2..a41d1fa653 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GeneratePushDataReport.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GeneratePushDataReport.cs @@ -25,7 +25,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard /// Default constructor - initializes all fields to default values /// public GeneratePushDataReport(ReportModel reportModel, - Properties properties):base(reportModel,properties) + ReportStructure properties):base(reportModel,properties) { base.UpdateGenerator(); diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GeneratorFactory.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GeneratorFactory.cs index 245c2558eb..9fed8d54ae 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GeneratorFactory.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GeneratorFactory.cs @@ -35,18 +35,18 @@ namespace ICSharpCode.Reports.Addin.ReportWizard public static class GeneratorFactory { - public static IReportGenerator Create (ReportModel model, - Properties customizer) + public static IReportGenerator Create (ReportModel model,ReportStructure customizer) + { IReportGenerator reportGenerator = null; switch (model.DataModel) { - case GlobalEnums.PushPullModel.PullData: - reportGenerator = new GeneratePullDataReport(model,customizer); - - break; - case GlobalEnums.PushPullModel.PushData: - reportGenerator = new GeneratePushDataReport(model,customizer); - break; +// case GlobalEnums.PushPullModel.PullData: +// reportGenerator = new GeneratePullDataReport(model,customizer); +// +// break; +// case GlobalEnums.PushPullModel.PushData: +// reportGenerator = new GeneratePushDataReport(model,customizer); +// break; case GlobalEnums.PushPullModel.FormSheet: reportGenerator = new GenerateFormSheetReport (model,customizer); break; diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/ReportWizardCommand.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/ReportWizardCommand.cs index 012ea49517..39dc552598 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/ReportWizardCommand.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/ReportWizardCommand.cs @@ -23,7 +23,6 @@ namespace ICSharpCode.Reports.Addin.ReportWizard private OpenedFile file; private ReportModel reportModel; private IReportGenerator reportGenerator; - private Properties customizer = new Properties(); private ReportStructure reportStructure; private bool canceled; @@ -37,15 +36,12 @@ namespace ICSharpCode.Reports.Addin.ReportWizard public override void Run() { reportStructure = new ReportStructure(); - customizer.Set("Generator", reportStructure); - customizer.Set("ReportLayout",GlobalEnums.ReportLayout.ListLayout); - if (GlobalValues.IsValidPrinter() == true) { - using (WizardDialog wizard = new WizardDialog("Report Wizard", customizer, WizardPath)) { + using (WizardDialog wizard = new WizardDialog("Report Wizard", reportStructure, WizardPath)) { if (wizard.ShowDialog() == DialogResult.OK) { reportModel = reportStructure.CreateAndFillReportModel (); - CreateReportFromModel(reportModel); + CreateReportFromModel(reportModel,reportStructure); } else{ this.canceled = true; @@ -57,7 +53,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard } - private void CreateReportFromModel (ReportModel model) + private void CreateReportFromModel (ReportModel model,ReportStructure customizer) { reportGenerator = GeneratorFactory.Create (model,customizer); file.MakeDirty(); diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/BaseSettingsPanel.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/BaseSettingsPanel.cs index 4ef916ba7c..1c313c7c5a 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/BaseSettingsPanel.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/BaseSettingsPanel.cs @@ -42,9 +42,8 @@ namespace ICSharpCode.Reports.Addin.ReportWizard{ private RadioButton radioStandardLayout; private RadioButton radioLandscape; - ReportStructure generator; - Properties customizer; - + ReportStructure reportStructure; + bool initDone; public BaseSettingsPanel(){ @@ -157,36 +156,35 @@ namespace ICSharpCode.Reports.Addin.ReportWizard{ private void UpdateGenerator () { - if (customizer == null) { - customizer = (Properties)base.CustomizationObject; -// generator = (ReportStructure)customizer.Get("Generator"); + if (reportStructure == null) { + reportStructure = (ReportStructure)base.CustomizationObject; } - generator.ReportName = txtReportName.Text; + reportStructure.ReportName = txtReportName.Text; if (!this.txtFileName.Text.EndsWith(GlobalValues.ReportExtension,StringComparison.OrdinalIgnoreCase)){ - generator.FileName = txtFileName.Text + GlobalValues.ReportExtension; + reportStructure.FileName = txtFileName.Text + GlobalValues.ReportExtension; } else { - generator.FileName = txtFileName.Text; + reportStructure.FileName = txtFileName.Text; } - generator.Path = this.txtPath.Text; - generator.GraphicsUnit = (GraphicsUnit)Enum.Parse(typeof(GraphicsUnit), + reportStructure.Path = this.txtPath.Text; + reportStructure.GraphicsUnit = (GraphicsUnit)Enum.Parse(typeof(GraphicsUnit), this.cboGraphicsUnit.Text); if (this.radioPullModell.Checked == true) { base.NextWizardPanelID = "PullModel"; - generator.DataModel = GlobalEnums.PushPullModel.PullData; + reportStructure.DataModel = GlobalEnums.PushPullModel.PullData; GoOn(); } else if (this.radioPushModell.Checked == true){ base.NextWizardPanelID = "PushModel"; - generator.DataModel = GlobalEnums.PushPullModel.PushData; + reportStructure.DataModel = GlobalEnums.PushPullModel.PushData; GoOn(); } else if (this.radioFormSheet.Checked == true){ - generator.DataModel = GlobalEnums.PushPullModel.FormSheet; + reportStructure.DataModel = GlobalEnums.PushPullModel.FormSheet; base.EnableNext = false; base.IsLastPanel = true; } - generator.Landscape = this.radioLandscape.Checked; + reportStructure.Landscape = this.radioLandscape.Checked; } @@ -196,22 +194,19 @@ namespace ICSharpCode.Reports.Addin.ReportWizard{ if (this.radioPullModell.Checked == true) { base.NextWizardPanelID = "PullModel"; - generator.DataModel = GlobalEnums.PushPullModel.PullData; + reportStructure.DataModel = GlobalEnums.PushPullModel.PullData; GoOn(); } else if (this.radioPushModell.Checked == true){ base.NextWizardPanelID = "PushModel"; - generator.DataModel = GlobalEnums.PushPullModel.PushData; + reportStructure.DataModel = GlobalEnums.PushPullModel.PushData; GoOn(); } else if (this.radioFormSheet.Checked == true){ -// generator.DataModel = GlobalEnums.PushPullModel.FormSheet; base.EnableNext = false; base.IsLastPanel = true; } else if(this.radioStandardLayout.Checked == true) { - - generator.Landscape = false; - + reportStructure.Landscape = false; } else if(this.radioLandscape.Checked == true) { - generator.Landscape = true; + reportStructure.Landscape = true; } base.EnableFinish = true; diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/LayoutPanel.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/LayoutPanel.cs index 181cd92ced..04b5a65583 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/LayoutPanel.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/LayoutPanel.cs @@ -15,7 +15,6 @@ namespace ICSharpCode.Reports.Addin.ReportWizard public class LayoutPanel: AbstractWizardPanel { private LayoutPanelControl layoutControl; - private Properties customizer; private ReportStructure reportStructure; public LayoutPanel() @@ -37,21 +36,15 @@ namespace ICSharpCode.Reports.Addin.ReportWizard base.IsLastPanel = true; base.EnablePrevious = true; - if (customizer == null) { - customizer = (Properties)base.CustomizationObject; + if (reportStructure == null) { + reportStructure = (ReportStructure)base.CustomizationObject; } - if (message == DialogMessage.Activated) { - -// this.layoutControl.ReportLayout = (GlobalEnums.ReportLayout)customizer.Get("ReportLayout"); -// reportStructure = (ReportStructure)customizer.Get("Generator"); layoutControl.AvailableFieldsCollection = reportStructure.AvailableFieldsCollection; } else if (message == DialogMessage.Finish) { -// customizer.Set ("ReportLayout",this.layoutControl.ReportLayout); -// var reportStructure = (ReportStructure)customizer.Get("Generator"); reportStructure.Grouping = layoutControl.GroupName; } return true; diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/PullModelPanel.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/PullModelPanel.cs index f6fbb04fa3..c2d8724f6e 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/PullModelPanel.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/PullModelPanel.cs @@ -28,8 +28,9 @@ namespace ICSharpCode.Reports.Addin.ReportWizard private System.Windows.Forms.Label label3; private bool firstDrag; private string connectionString; + private ReportStructure reportStructure; - private Properties customizer; + private IDatabaseObjectBase currentNode; private ElementHost databasesTreeHost; private DatabasesTreeView databasesTree; @@ -76,15 +77,13 @@ namespace ICSharpCode.Reports.Addin.ReportWizard public override bool ReceiveDialogMessage(DialogMessage message) { - if (customizer == null) { - customizer = (Properties)base.CustomizationObject; -// reportStructure = (ReportStructure)customizer.Get("Generator"); + if (reportStructure == null) { + reportStructure = (ReportStructure)base.CustomizationObject; } if (message == DialogMessage.Next) { - customizer.Set("SqlString", this.txtSqlString.Text.Trim()); - reportStructure.SqlString = this.txtSqlString.Text.Trim(); reportStructure.ConnectionString = connectionString; + reportStructure.SqlString = this.txtSqlString.Text.Trim(); base.EnableFinish = true; } return true; @@ -165,6 +164,8 @@ namespace ICSharpCode.Reports.Addin.ReportWizard this.txtSqlString.Clear(); ITable table = draggedObject as ITable; this.txtSqlString.Text = "SELECT * FROM " + table.Name; +// reportStructure.CommandType = CommandType.Text; +// reportStructure.IDatabaseObjectBase = table; reportStructure.CommandType = CommandType.Text; reportStructure.IDatabaseObjectBase = table; break; diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/PushModelPanel.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/PushModelPanel.cs index 54ef336f3b..86e5ac468d 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/PushModelPanel.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/PushModelPanel.cs @@ -23,10 +23,8 @@ namespace ICSharpCode.Reports.Addin.ReportWizard private System.Windows.Forms.Button btnPath; private System.Windows.Forms.CheckedListBox checkedListBox; private System.Windows.Forms.TextBox txtPath; - - private ReportStructure reportStructure; - private Properties customizer; private DataSet resultDataSet; + private ReportStructure reportStructure; public PushModelPanel() { @@ -84,13 +82,11 @@ namespace ICSharpCode.Reports.Addin.ReportWizard public override bool ReceiveDialogMessage(DialogMessage message) { - if (customizer == null) { - customizer = (Properties)base.CustomizationObject; -// reportStructure = (ReportStructure)customizer.Get("Generator"); - base.NextWizardPanelID = "Layout"; - } - - else if (message == DialogMessage.Activated) { +// if (customizer == null) { +// base.NextWizardPanelID = "Layout"; +// } + base.NextWizardPanelID = "Layout"; + if (message == DialogMessage.Activated) { WriteResult(); base.EnableNext = true; } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/ResultPanel.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/ResultPanel.cs index 9e67ffad28..27055a1ca4 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/ResultPanel.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/ResultPanel.cs @@ -36,7 +36,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard private System.Windows.Forms.TextBox txtSqlString; private ReportStructure reportStructure; - private Properties customizer; +// private Properties customizer; private ReportModel model; private ConnectionObject connectionObject; private DataSet resultDataSet; @@ -232,10 +232,12 @@ namespace ICSharpCode.Reports.Addin.ReportWizard public override bool ReceiveDialogMessage(DialogMessage message) { - if (customizer == null) { - customizer = (Properties)base.CustomizationObject; -// reportStructure = (ReportStructure)customizer.Get("Generator"); - } +// if (customizer == null) { +// customizer = (Properties)base.CustomizationObject; +//// reportStructure = (ReportStructure)customizer.Get("Generator"); +// } + reportStructure = (ReportStructure)base.CustomizationObject; + if (message == DialogMessage.Activated) { ShowData(); diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/Wizard/WizardDialog.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/Wizard/WizardDialog.cs index f1a7c38fc1..aa1c9d948d 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/Wizard/WizardDialog.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/Wizard/WizardDialog.cs @@ -31,6 +31,8 @@ namespace ICSharpCode.Reports.Addin.ReportWizard ArrayList wizardPanels = new ArrayList(); int activePanelNumber = 0; + ReportStructure reportStructure; + EventHandler enableNextChangedHandler; EventHandler enableCancelChangedHandler; EventHandler nextWizardPanelIDChangedHandler; @@ -184,14 +186,14 @@ namespace ICSharpCode.Reports.Addin.ReportWizard } - public WizardDialog(string title, object customizer, string treePath) + public WizardDialog(string title, ReportStructure reportStructure, string treePath) { - + this.reportStructure = reportStructure; AddInTreeNode node = AddInTree.GetTreeNode(treePath); this.Text = title; if (node != null) { - AddNodes(customizer, node.BuildChildItems(this)); + AddNodes(this.reportStructure, node.BuildChildItems(this)); } InitializeComponents(); diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Designer/ReportDesignerDisplayBindingTestFixture.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Designer/ReportDesignerDisplayBindingTestFixture.cs index b8d603c5f0..f20bb8853f 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Designer/ReportDesignerDisplayBindingTestFixture.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Designer/ReportDesignerDisplayBindingTestFixture.cs @@ -49,7 +49,7 @@ namespace ICSharpCode.Reports.Addin.Test.Designer Assert.IsTrue(displayBinding.IsPreferredBindingForFile(filename)); } - + /* [Test] [Ignore] public void CanCreateContentFromFile () @@ -66,7 +66,7 @@ namespace ICSharpCode.Reports.Addin.Test.Designer //ICSharpCode.SharpDevelop.Gui.IViewContent v = displayBinding.CreateContentForFile(new MockOpenedFile("test.srd")); //Assert.IsNotNull(v,"View should not be 'null'"); } - + */ } } \ No newline at end of file diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/GeneratePlainReportFixture_1.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/GeneratePlainReportFixture_1.cs index 392a7ca3f7..1c140b02e0 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/GeneratePlainReportFixture_1.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/GeneratePlainReportFixture_1.cs @@ -18,6 +18,7 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard [Ignore] public class GeneratePlainReportFixture { + /* [Test] public void GeneratePlainReport_1() @@ -50,6 +51,7 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard } + [Test] public void CheckReportSettings () { @@ -83,7 +85,8 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard } Assert.AreEqual (5,sq1.Count(),"Should be 5 times a 'BaseSection'"); } - + */ + /* private XmlDocument CreateXmlFromModel () { ReportModel model = ReportModel.Create(); @@ -94,5 +97,6 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard generator.GenerateReport(); return generator.XmlReport; } + */ } } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenarateListReportFixture.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenarateListReportFixture.cs index d947fb4555..ca6cbce072 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenarateListReportFixture.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenarateListReportFixture.cs @@ -9,6 +9,7 @@ using NUnit.Framework; namespace ICSharpCode.Reports.Addin.Test.Wizard.Generators { + /* [TestFixture] [Ignore] public class GenerateListReportFixture @@ -186,4 +187,5 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard.Generators #endregion } + */ } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateFormsSheetReport.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateFormsSheetReport.cs index 0bcd36d5ec..8f3f855278 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateFormsSheetReport.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateFormsSheetReport.cs @@ -10,7 +10,7 @@ using NUnit.Framework; namespace ICSharpCode.Reports.Addin.Test.Wizard { - + /* [TestFixture] [Ignore] public class GenerateFormsSheetReportFixture @@ -93,4 +93,5 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard this.model = this.CreateModel(); } } + */ } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateListWithGroupFixture.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateListWithGroupFixture.cs index bafeb3470d..d257c0e2cc 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateListWithGroupFixture.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateListWithGroupFixture.cs @@ -11,6 +11,7 @@ using ICSharpCode.Reports.Core; using ICSharpCode.Reports.Core.Globals; using NUnit.Framework; +/* namespace ICSharpCode.Reports.Addin.Test.Wizard.Generators { /// @@ -95,3 +96,4 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard.Generators #endregion } } +*/ \ No newline at end of file diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GeneratePlainReportFixture_2.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GeneratePlainReportFixture_2.cs index 4062292579..20da1fc3a6 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GeneratePlainReportFixture_2.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GeneratePlainReportFixture_2.cs @@ -71,7 +71,7 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard Assert.AreEqual(0,s.Items.Count); } - + /* private ReportModel CreateModel() { ReportModel m = ReportModel.Create(); @@ -93,11 +93,11 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard } return model; } - + [TestFixtureSetUp] public void CreateModels () { this.mockReportModel = CreateModel(); - } + } */ } } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateTableReportFixture.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateTableReportFixture.cs index 136dfe8ce6..9bf629c787 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateTableReportFixture.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateTableReportFixture.cs @@ -11,6 +11,7 @@ using NUnit.Framework; namespace ICSharpCode.Reports.Addin.Test.Wizard.Generators { + /* [TestFixture] [Ignore] public class GenerateTableReportFixture @@ -136,4 +137,5 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard.Generators #endregion } + */ } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateTableWithGrouping.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateTableWithGrouping.cs index 66f3cd3ef9..7adf8b2906 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateTableWithGrouping.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateTableWithGrouping.cs @@ -18,6 +18,7 @@ using NUnit.Framework; namespace ICSharpCode.Reports.Addin.Test.Wizard.Generators { + /* [TestFixture] [Ignore] public class GenertaeTableWithGroupFixture @@ -137,4 +138,5 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard.Generators #endregion } + */ } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/ReportGenerationHelper.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/ReportGenerationHelper.cs index 0b0d863d7b..c3ce8a50af 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/ReportGenerationHelper.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/ReportGenerationHelper.cs @@ -14,6 +14,8 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard /// /// Description of ReportGenerationHelper. /// + /// + /* public class ReportGenerationHelper { public static ReportModel FormSheetModel() @@ -87,4 +89,5 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard return structure; } } + */ } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/ReportStructureFixture.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/ReportStructureFixture.cs index 399070c618..34cd5dae99 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/ReportStructureFixture.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/ReportStructureFixture.cs @@ -9,6 +9,7 @@ using NUnit.Framework; namespace ICSharpCode.Reports.Addin.Test.Wizard { + /* [TestFixture] public class ReportStructureFixture { @@ -57,4 +58,5 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard return m; } } + */ } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/ReportModel.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/ReportModel.cs index 6f86f2bd49..62cf83796c 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/ReportModel.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/ReportModel.cs @@ -9,7 +9,6 @@ using ICSharpCode.Reports.Core.Interfaces; namespace ICSharpCode.Reports.Core { - public class ReportModel :IReportModel, IDisposable { ReportSettings reportSettings ; From e29594ebad4988740a45e30849e052e1bf8399a3 Mon Sep 17 00:00:00 2001 From: Peter Forstmeier Date: Fri, 22 Mar 2013 22:14:32 +0100 Subject: [PATCH 06/33] Add more Test's --- .../Model/LoadPlainModelFixture.cs | 2 ++ .../Model/ReportSettingsFixture.cs | 26 +++++++++++++++---- .../Reporting/ICSharpCode.Reporting.csproj | 6 +++-- .../Src/Interfaces/IReportCreator.cs | 26 +++++++++++++++++++ .../Reporting/Src/Items/ReportSettings.cs | 19 ++++++++++++-- .../Misc/Reporting/Src/ReportingFactory.cs | 11 +++++++- .../Project/ReportEngine.cs | 2 +- 7 files changed, 81 insertions(+), 11 deletions(-) create mode 100644 src/AddIns/Misc/Reporting/Src/Interfaces/IReportCreator.cs diff --git a/src/AddIns/Misc/ICSharpCode.Reporting.Tests/Model/LoadPlainModelFixture.cs b/src/AddIns/Misc/ICSharpCode.Reporting.Tests/Model/LoadPlainModelFixture.cs index 240522094c..023109e9e8 100644 --- a/src/AddIns/Misc/ICSharpCode.Reporting.Tests/Model/LoadPlainModelFixture.cs +++ b/src/AddIns/Misc/ICSharpCode.Reporting.Tests/Model/LoadPlainModelFixture.cs @@ -36,6 +36,7 @@ namespace ICSharpCode.Reporting.Tests.Model Assert.IsNotNull(model); } + [Test] public void ReportSettingsFromPlainModel() { @@ -63,6 +64,7 @@ namespace ICSharpCode.Reporting.Tests.Model } + [SetUp] public void LoadFromStream() { diff --git a/src/AddIns/Misc/ICSharpCode.Reporting.Tests/Model/ReportSettingsFixture.cs b/src/AddIns/Misc/ICSharpCode.Reporting.Tests/Model/ReportSettingsFixture.cs index 33294d0770..bbf760e8fa 100644 --- a/src/AddIns/Misc/ICSharpCode.Reporting.Tests/Model/ReportSettingsFixture.cs +++ b/src/AddIns/Misc/ICSharpCode.Reporting.Tests/Model/ReportSettingsFixture.cs @@ -7,6 +7,7 @@ * To change this template use Tools | Options | Coding | Edit Standard Headers. */ using System; +using System.Drawing; using ICSharpCode.Reporting.Globals; using ICSharpCode.Reporting.Items; using NUnit.Framework; @@ -16,20 +17,35 @@ namespace ICSharpCode.Reporting.Tests [TestFixture] public class ReportSettingsFixture { + ReportSettings reportSettings; + [Test] public void DefaultConstructureShouldReturnStandardValues() { - ReportSettings rs = new ReportSettings(); - Assert.IsNotNull(rs,"Should not be 'null'"); - Assert.AreEqual(GlobalValues.DefaultReportName,rs.ReportName); + Assert.IsNotNull(reportSettings,"Should not be 'null'"); + Assert.AreEqual(GlobalValues.DefaultReportName,reportSettings.ReportName); } [Test] public void DefaultPageSize () { - ReportSettings rs = new ReportSettings(); - Assert.AreEqual(GlobalValues.DefaultPageSize,rs.PageSize); + Assert.AreEqual(GlobalValues.DefaultPageSize,reportSettings.PageSize); + } + + + [Test] + public void LandScape_True_Return_PageSize_For_LandScape () + { + reportSettings.Landscape = true; + var landscapeSize = new Size(Globals.GlobalValues.DefaultPageSize.Height, + Globals.GlobalValues.DefaultPageSize.Width); + Assert.That(reportSettings.PageSize,Is.EqualTo(landscapeSize)); + } + + [SetUp] + public void Setup () { + reportSettings = new ReportSettings(); } } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.csproj b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.csproj index 367c6921f8..4377114374 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.csproj +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.csproj @@ -7,8 +7,9 @@ Library ICSharpCode.Reporting ICSharpCode.Reporting - v4.0 - Client + v4.5 + + Properties @@ -46,6 +47,7 @@ + diff --git a/src/AddIns/Misc/Reporting/Src/Interfaces/IReportCreator.cs b/src/AddIns/Misc/Reporting/Src/Interfaces/IReportCreator.cs new file mode 100644 index 0000000000..822ab46345 --- /dev/null +++ b/src/AddIns/Misc/Reporting/Src/Interfaces/IReportCreator.cs @@ -0,0 +1,26 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 21.03.2013 + * Time: 20:06 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; + +namespace ICSharpCode.Reporting.Interfaces +{ + /// + /// Description of IReportCreator. + /// + public interface IReportCreator + { + void BuildExportList (); +// PagesCollection Pages{get;} +// event EventHandler PageCreated; +// event EventHandler SectionRendering; +// event EventHandler GroupHeaderRendering; +// event EventHandler GroupFooterRendering; +// event EventHandler RowRendering; + } +} diff --git a/src/AddIns/Misc/Reporting/Src/Items/ReportSettings.cs b/src/AddIns/Misc/Reporting/Src/Items/ReportSettings.cs index d24b35f9ca..df55380756 100644 --- a/src/AddIns/Misc/Reporting/Src/Items/ReportSettings.cs +++ b/src/AddIns/Misc/Reporting/Src/Items/ReportSettings.cs @@ -20,7 +20,7 @@ namespace ICSharpCode.Reporting.Items public ReportSettings() { - this.PageSize = Globals.GlobalValues.DefaultPageSize; + this.pageSize = Globals.GlobalValues.DefaultPageSize; BaseValues(); } @@ -73,8 +73,23 @@ namespace ICSharpCode.Reporting.Items } } + private Size pageSize; + + public Size PageSize { + get { + if (!Landscape) { + return pageSize; + } else { + return new Size(pageSize.Height,pageSize.Width); + } + } + set { pageSize = value; } + } + +// [Category("Page Settings")] +// public Size PageSize {get;set;} // [Category("Page Settings")] - public Size PageSize {get;set;} + public bool Landscape {get;set;} } } diff --git a/src/AddIns/Misc/Reporting/Src/ReportingFactory.cs b/src/AddIns/Misc/Reporting/Src/ReportingFactory.cs index b33ba3f96f..fbdbabafc8 100644 --- a/src/AddIns/Misc/Reporting/Src/ReportingFactory.cs +++ b/src/AddIns/Misc/Reporting/Src/ReportingFactory.cs @@ -7,9 +7,12 @@ * To change this template use Tools | Options | Coding | Edit Standard Headers. */ using System; +using System.Collections.Generic; +using System.Collections; using System.IO; using System.Xml; +using ICSharpCode.Reporting.Interfaces; using ICSharpCode.Reporting.Items; using ICSharpCode.Reporting.Xml; @@ -25,7 +28,13 @@ namespace ICSharpCode.Reporting } - public ReportModel LoadReport (Stream stream) + public IReportCreator CreatePageBuilder (Stream stream, IList list) + { + return null; + } + + + internal ReportModel LoadReport (Stream stream) { Console.WriteLine("ReportEngine:LoadReportModel_2"); var doc = new XmlDocument(); diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/ReportEngine.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/ReportEngine.cs index bb36419a6a..2410d019d0 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/ReportEngine.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/ReportEngine.cs @@ -295,7 +295,7 @@ namespace ICSharpCode.Reports.Core { } - public static ReportModel LoadReportModel (Stream stream) { + internal static ReportModel LoadReportModel (Stream stream) { if (stream == null) { throw new ArgumentNullException("stream"); } From b24ef530288fd9e06d1264a08f2778579959e4b0 Mon Sep 17 00:00:00 2001 From: Peter Forstmeier Date: Wed, 27 Mar 2013 19:13:16 +0100 Subject: [PATCH 07/33] Add Test's for Report-Model and Settings --- .../Factory/ReportingFactoryFixture.cs | 20 +++++++++++++++++-- .../Model/LoadPlainModelFixture.cs | 17 ++++++++++++---- .../Misc/Reporting/Src/Globals/GlobalEnums.cs | 14 ++++++++++++- .../Reporting/Src/Interfaces/IReportModel.cs | 4 +++- .../Reporting/Src/Items/ReportSettings.cs | 6 +++++- .../Misc/Reporting/Src/ReportingFactory.cs | 19 +++++++++++++++--- 6 files changed, 68 insertions(+), 12 deletions(-) diff --git a/src/AddIns/Misc/ICSharpCode.Reporting.Tests/Factory/ReportingFactoryFixture.cs b/src/AddIns/Misc/ICSharpCode.Reporting.Tests/Factory/ReportingFactoryFixture.cs index 6792c2589e..6fe6fe4694 100644 --- a/src/AddIns/Misc/ICSharpCode.Reporting.Tests/Factory/ReportingFactoryFixture.cs +++ b/src/AddIns/Misc/ICSharpCode.Reporting.Tests/Factory/ReportingFactoryFixture.cs @@ -7,6 +7,9 @@ * To change this template use Tools | Options | Coding | Edit Standard Headers. */ using System; +using System.IO; +using System.Reflection; + using NUnit.Framework; namespace ICSharpCode.Reporting.Tests.Factory @@ -14,10 +17,23 @@ namespace ICSharpCode.Reporting.Tests.Factory [TestFixture] public class ReportingFactoryFixture { + private const string nS = "ICSharpCode.Reporting.Tests.TestReports."; + private const string reportName = "PlainModel.srd"; + private Stream stream; + [Test] - public void TestMethod() + public void CreateFormSheetBuilder() + { + var r = new ReportingFactory(); + var x = r.CreatePageBuilder(stream); + Assert.That(x,Is.Null); + } + + [SetUp] + public void LoadFromStream() { - // TODO: Add your test. + System.Reflection.Assembly asm = Assembly.GetExecutingAssembly(); + stream = asm.GetManifestResourceStream(nS + reportName); } } } diff --git a/src/AddIns/Misc/ICSharpCode.Reporting.Tests/Model/LoadPlainModelFixture.cs b/src/AddIns/Misc/ICSharpCode.Reporting.Tests/Model/LoadPlainModelFixture.cs index 023109e9e8..75a05a7d29 100644 --- a/src/AddIns/Misc/ICSharpCode.Reporting.Tests/Model/LoadPlainModelFixture.cs +++ b/src/AddIns/Misc/ICSharpCode.Reporting.Tests/Model/LoadPlainModelFixture.cs @@ -10,6 +10,7 @@ using System; using System.IO; using System.Reflection; +using ICSharpCode.Reporting.Globals; using NUnit.Framework; namespace ICSharpCode.Reporting.Tests.Model @@ -32,7 +33,7 @@ namespace ICSharpCode.Reporting.Tests.Model public void LoadPlainModel() { var rf = new ReportingFactory(); - var model = rf.LoadReport(stream); + var model = rf.LoadReportModel(stream); Assert.IsNotNull(model); } @@ -41,7 +42,7 @@ namespace ICSharpCode.Reporting.Tests.Model public void ReportSettingsFromPlainModel() { var rf = new ReportingFactory(); - var model = rf.LoadReport(stream); + var model = rf.LoadReportModel(stream); Assert.That(model.ReportSettings,Is.Not.Null); } @@ -50,16 +51,24 @@ namespace ICSharpCode.Reporting.Tests.Model public void ReportSettingsReportName() { var rf = new ReportingFactory(); - var model = rf.LoadReport(stream); + var model = rf.LoadReportModel(stream); Assert.That(model.ReportSettings.ReportName,Is.EqualTo(Globals.GlobalValues.DefaultReportName)); } + [Test] + public void ReportSettingsDataModelFormSheet() + { + var rf = new ReportingFactory(); + var model = rf.LoadReportModel(stream); + Assert.That(model.ReportSettings.DataModel,Is.EqualTo(GlobalEnums.PushPullModel.FormSheet)); + } + [Test] public void ReportSettingsPageSize() { var rf = new ReportingFactory(); - var model = rf.LoadReport(stream); + var model = rf.LoadReportModel(stream); Assert.That(model.ReportSettings.PageSize,Is.EqualTo(Globals.GlobalValues.DefaultPageSize)); } diff --git a/src/AddIns/Misc/Reporting/Src/Globals/GlobalEnums.cs b/src/AddIns/Misc/Reporting/Src/Globals/GlobalEnums.cs index 44154949e9..02928d6523 100644 --- a/src/AddIns/Misc/Reporting/Src/Globals/GlobalEnums.cs +++ b/src/AddIns/Misc/Reporting/Src/Globals/GlobalEnums.cs @@ -13,7 +13,7 @@ namespace ICSharpCode.Reporting.Globals /// /// Description of GlobalEnums. /// - internal sealed class GlobalEnums + public class GlobalEnums { internal enum ReportSection { ReportHeader, @@ -22,5 +22,17 @@ namespace ICSharpCode.Reporting.Globals ReportPageFooter, ReportFooter } + + ///Technics to get the data + /// Push : report get's a ready filld dataset or something tah implements IList + /// Pull : report has to fill data by themself + /// FormSheet : FormSheet report, just labels and images are allowed + /// + /// + public enum PushPullModel { + PushData, + PullData, + FormSheet + } } } diff --git a/src/AddIns/Misc/Reporting/Src/Interfaces/IReportModel.cs b/src/AddIns/Misc/Reporting/Src/Interfaces/IReportModel.cs index c0cf143469..b6093d0e5e 100644 --- a/src/AddIns/Misc/Reporting/Src/Interfaces/IReportModel.cs +++ b/src/AddIns/Misc/Reporting/Src/Interfaces/IReportModel.cs @@ -7,6 +7,7 @@ * To change this template use Tools | Options | Coding | Edit Standard Headers. */ using System; +using ICSharpCode.Reporting.Items; namespace ICSharpCode.Reporting.Interfaces { @@ -15,13 +16,14 @@ namespace ICSharpCode.Reporting.Interfaces /// public interface IReportModel { + ReportSettings ReportSettings {get;set;} /* BaseSection ReportHeader {get;} BaseSection PageHeader {get;} BaseSection DetailSection {get;} BaseSection PageFooter {get;} BaseSection ReportFooter {get;} - ReportSettings ReportSettings {get;set;} + GlobalEnums.PushPullModel DataModel {get;} ReportSectionCollection SectionCollection {get;} */ diff --git a/src/AddIns/Misc/Reporting/Src/Items/ReportSettings.cs b/src/AddIns/Misc/Reporting/Src/Items/ReportSettings.cs index df55380756..e540087f46 100644 --- a/src/AddIns/Misc/Reporting/Src/Items/ReportSettings.cs +++ b/src/AddIns/Misc/Reporting/Src/Items/ReportSettings.cs @@ -8,6 +8,7 @@ */ using System; using System.Drawing; +using ICSharpCode.Reporting.Globals; namespace ICSharpCode.Reporting.Items { @@ -34,7 +35,7 @@ namespace ICSharpCode.Reporting.Items // this.DefaultFont = GlobalValues.DefaultFont; // this.ReportType = GlobalEnums.ReportType.FormSheet; // -// this.DataModel = GlobalEnums.PushPullModel.FormSheet; + this.DataModel = GlobalEnums.PushPullModel.FormSheet; // // this.CommandType = System.Data.CommandType.Text; // this.ConnectionString = String.Empty; @@ -91,5 +92,8 @@ namespace ICSharpCode.Reporting.Items // [Category("Page Settings")] public bool Landscape {get;set;} + +// [Category("Data")] + public GlobalEnums.PushPullModel DataModel {get;set;} } } diff --git a/src/AddIns/Misc/Reporting/Src/ReportingFactory.cs b/src/AddIns/Misc/Reporting/Src/ReportingFactory.cs index fbdbabafc8..deddcff896 100644 --- a/src/AddIns/Misc/Reporting/Src/ReportingFactory.cs +++ b/src/AddIns/Misc/Reporting/Src/ReportingFactory.cs @@ -7,11 +7,12 @@ * To change this template use Tools | Options | Coding | Edit Standard Headers. */ using System; -using System.Collections.Generic; using System.Collections; +using System.Collections.Generic; using System.IO; using System.Xml; +using ICSharpCode.Reporting.Globals; using ICSharpCode.Reporting.Interfaces; using ICSharpCode.Reporting.Items; using ICSharpCode.Reporting.Xml; @@ -28,13 +29,25 @@ namespace ICSharpCode.Reporting } - public IReportCreator CreatePageBuilder (Stream stream, IList list) + public IReportCreator CreatePageBuilder (Stream stream) { + IReportModel reportModel = LoadReportModel (stream); + IReportCreator builder = null; + if (reportModel.ReportSettings.DataModel == GlobalEnums.PushPullModel.FormSheet) { +// builder = FormPageBuilder.CreateInstance(reportModel); + Console.WriteLine("aaaaaaaaaaaaaaaaa"); + } +// else { +// CheckForParameters(reportModel,reportParameters); +// IDataManager dataMan = DataManagerFactory.CreateDataManager(reportModel,reportParameters); +// builder = DataPageBuilder.CreateInstance(reportModel, dataMan); +// } + return builder; return null; } - internal ReportModel LoadReport (Stream stream) + internal ReportModel LoadReportModel (Stream stream) { Console.WriteLine("ReportEngine:LoadReportModel_2"); var doc = new XmlDocument(); From bb23f82efb9f73aa3c9819c1b0381faaafd5762e Mon Sep 17 00:00:00 2001 From: Peter Forstmeier Date: Fri, 29 Mar 2013 17:49:55 +0100 Subject: [PATCH 08/33] FormSheet-Report Wizard --- .../Project/Commands/ViewCommands.cs | 17 +++----- .../Generators/AbstractReportGenerator.cs | 10 +---- .../Generators/GenerateFormSheetReport.cs | 4 +- .../Generators/GeneratePlainReport.cs | 12 +----- .../Generators/GeneratePullDataReport.cs | 4 +- .../Generators/GeneratePushDataReport.cs | 5 +-- .../Generators/GeneratorFactory.cs | 20 ++++----- .../ReportWizard/ReportWizardCommand.cs | 8 +++- .../WizardPanels/BaseSettingsPanel.cs | 43 +++++++++++-------- .../ReportWizard/WizardPanels/LayoutPanel.cs | 6 +-- .../WizardPanels/PullModelPanel.cs | 11 ++--- .../WizardPanels/PushModelPanel.cs | 13 +++--- .../ReportWizard/WizardPanels/ResultPanel.cs | 9 +--- ...ReportDesignerDisplayBindingTestFixture.cs | 2 +- .../Wizard/GeneratePlainReportFixture_1.cs | 4 +- .../Generators/GenerateFormsSheetReport.cs | 3 +- .../GeneratePlainReportFixture_2.cs | 2 +- .../Generators/GenerateTableWithGrouping.cs | 2 +- .../Generators/ReportGenerationHelper.cs | 2 +- .../Test/Wizard/ReportStructureFixture.cs | 7 +-- 20 files changed, 78 insertions(+), 106 deletions(-) diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Commands/ViewCommands.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Commands/ViewCommands.cs index 1334850e75..fd1af97627 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Commands/ViewCommands.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Commands/ViewCommands.cs @@ -24,33 +24,30 @@ namespace ICSharpCode.Reports.Addin.Commands public override void Run() { -// WorkbenchSingleton.Workbench.ShowView(SetupDesigner()); - throw new NotImplementedException("Run"); + WorkbenchSingleton.Workbench.ShowView(SetupDesigner()); } - /* - private static ReportDesignerView SetupDesigner () + public static ReportDesignerView SetupDesigner () { ReportModel model = ReportModel.Create(); - Properties properties = new Properties(); - properties.Set("ReportLayout",GlobalEnums.ReportLayout.ListLayout); - IReportGenerator generator = new GeneratePlainReport(model,properties); + Properties customizer = new Properties(); + customizer.Set("ReportLayout",GlobalEnums.ReportLayout.ListLayout); + IReportGenerator generator = new GeneratePlainReport(model); generator.GenerateReport(); - Console.WriteLine("--Rework-----StartViewCommand----------"); + // OpenedFile file = FileService.CreateUntitledOpenedFile(GlobalValues.PlainFileName,new byte[0]); // file.SetData(generator.Generated.ToArray()); // return SetupDesigner(file); return SetupDesigner(null); } - */ + public static ReportDesignerView SetupDesigner (OpenedFile file) { if (file == null) { throw new ArgumentNullException("file"); } - Console.WriteLine("StartViewCommand.SetupDesigner"); IDesignerGenerator generator = new ReportDesignerGenerator(); return new ReportDesignerView(file, generator); } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/AbstractReportGenerator.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/AbstractReportGenerator.cs index c3908baaad..0226794cda 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/AbstractReportGenerator.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/AbstractReportGenerator.cs @@ -43,21 +43,15 @@ namespace ICSharpCode.Reports.Addin.ReportWizard private ColumnCollection groupColumnCollection; - protected AbstractReportGenerator(ReportModel reportModel,ReportStructure properties) + protected AbstractReportGenerator(ReportModel reportModel) { if (reportModel == null) { throw new ArgumentNullException("reportModel"); } - if (properties == null) { - throw new ArgumentNullException("customizer"); - } - this.ReportModel = reportModel; // this.Properties = properties; -// ReportStructure = (ReportStructure)properties.Get("Generator"); -// ReportStructure = (ReportStructure)base.CustomizationObject; - ReportStructure = properties; + this.AvailableFieldsCollection.Clear(); this.ReportItemCollection.Clear(); this.GroupColumnCollection.Clear(); diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GenerateFormSheetReport.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GenerateFormSheetReport.cs index 309ae125cd..8ee8d63674 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GenerateFormSheetReport.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GenerateFormSheetReport.cs @@ -15,8 +15,8 @@ namespace ICSharpCode.Reports.Addin.ReportWizard /// public class GenerateFormSheetReport:GeneratePlainReport { - public GenerateFormSheetReport(ReportModel reportModel, - ReportStructure customizer):base(reportModel,customizer) + public GenerateFormSheetReport(ReportModel reportModel ):base(reportModel) + { if (reportModel == null) { diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GeneratePlainReport.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GeneratePlainReport.cs index 6d17462a9b..ac8112aa04 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GeneratePlainReport.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GeneratePlainReport.cs @@ -15,16 +15,8 @@ namespace ICSharpCode.Reports.Addin.ReportWizard public class GeneratePlainReport:AbstractReportGenerator { - public GeneratePlainReport(ReportModel reportModel,ReportStructure customizer):base(reportModel,customizer) - { - if (reportModel == null) { - throw new ArgumentNullException("reportModel"); - } - - if (base.ReportModel.ReportSettings.DataModel != GlobalEnums.PushPullModel.FormSheet) { - throw new InvalidReportModelException(); - } - } + public GeneratePlainReport(ReportModel reportModel):base(reportModel) + {} public override void GenerateReport() diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GeneratePullDataReport.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GeneratePullDataReport.cs index 0d79dcb033..ffb4920f59 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GeneratePullDataReport.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GeneratePullDataReport.cs @@ -16,9 +16,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard { - public GeneratePullDataReport(ReportModel reportModel, - ReportStructure properties):base(reportModel,properties) - + public GeneratePullDataReport(ReportModel reportModel):base(reportModel) { if (reportModel == null) { throw new ArgumentNullException("reportModel"); diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GeneratePushDataReport.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GeneratePushDataReport.cs index a41d1fa653..8c01b81c47 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GeneratePushDataReport.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GeneratePushDataReport.cs @@ -24,10 +24,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard /// /// Default constructor - initializes all fields to default values /// - public GeneratePushDataReport(ReportModel reportModel, - ReportStructure properties):base(reportModel,properties) - { - + public GeneratePushDataReport(ReportModel reportModel):base(reportModel){ base.UpdateGenerator(); base.UpdateModel(); } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GeneratorFactory.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GeneratorFactory.cs index 9fed8d54ae..76568785a3 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GeneratorFactory.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GeneratorFactory.cs @@ -35,20 +35,20 @@ namespace ICSharpCode.Reports.Addin.ReportWizard public static class GeneratorFactory { - public static IReportGenerator Create (ReportModel model,ReportStructure customizer) - + public static IReportGenerator Create (ReportModel model, + Properties customizer) { IReportGenerator reportGenerator = null; switch (model.DataModel) { -// case GlobalEnums.PushPullModel.PullData: -// reportGenerator = new GeneratePullDataReport(model,customizer); -// -// break; -// case GlobalEnums.PushPullModel.PushData: -// reportGenerator = new GeneratePushDataReport(model,customizer); -// break; + case GlobalEnums.PushPullModel.PullData: + reportGenerator = new GeneratePullDataReport(model); + + break; + case GlobalEnums.PushPullModel.PushData: + reportGenerator = new GeneratePushDataReport(model); + break; case GlobalEnums.PushPullModel.FormSheet: - reportGenerator = new GenerateFormSheetReport (model,customizer); + reportGenerator = new GenerateFormSheetReport (model); break; } return reportGenerator; diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/ReportWizardCommand.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/ReportWizardCommand.cs index 39dc552598..9f64199178 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/ReportWizardCommand.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/ReportWizardCommand.cs @@ -23,6 +23,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard private OpenedFile file; private ReportModel reportModel; private IReportGenerator reportGenerator; + private Properties customizer = new Properties(); private ReportStructure reportStructure; private bool canceled; @@ -36,12 +37,15 @@ namespace ICSharpCode.Reports.Addin.ReportWizard public override void Run() { reportStructure = new ReportStructure(); +// customizer.Set("Generator", reportStructure); +// customizer.Set("ReportLayout",GlobalEnums.ReportLayout.ListLayout); + if (GlobalValues.IsValidPrinter() == true) { using (WizardDialog wizard = new WizardDialog("Report Wizard", reportStructure, WizardPath)) { if (wizard.ShowDialog() == DialogResult.OK) { reportModel = reportStructure.CreateAndFillReportModel (); - CreateReportFromModel(reportModel,reportStructure); + CreateReportFromModel(reportModel); } else{ this.canceled = true; @@ -53,7 +57,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard } - private void CreateReportFromModel (ReportModel model,ReportStructure customizer) + private void CreateReportFromModel (ReportModel model) { reportGenerator = GeneratorFactory.Create (model,customizer); file.MakeDirty(); diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/BaseSettingsPanel.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/BaseSettingsPanel.cs index 1c313c7c5a..8bf4e080be 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/BaseSettingsPanel.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/BaseSettingsPanel.cs @@ -42,8 +42,10 @@ namespace ICSharpCode.Reports.Addin.ReportWizard{ private RadioButton radioStandardLayout; private RadioButton radioLandscape; - ReportStructure reportStructure; - + ReportStructure generator; +// Properties customizer; +//ReportStructure ReportStructure customizer; + bool initDone; public BaseSettingsPanel(){ @@ -156,35 +158,37 @@ namespace ICSharpCode.Reports.Addin.ReportWizard{ private void UpdateGenerator () { - if (reportStructure == null) { - reportStructure = (ReportStructure)base.CustomizationObject; - } +// if (customizer == null) { +// customizer = (ReportStructure)base.CustomizationObject; +// generator = (ReportStructure)customizer.Get("Generator"); + generator = (ReportStructure)base.CustomizationObject; +// } - reportStructure.ReportName = txtReportName.Text; + generator.ReportName = txtReportName.Text; if (!this.txtFileName.Text.EndsWith(GlobalValues.ReportExtension,StringComparison.OrdinalIgnoreCase)){ - reportStructure.FileName = txtFileName.Text + GlobalValues.ReportExtension; + generator.FileName = txtFileName.Text + GlobalValues.ReportExtension; } else { - reportStructure.FileName = txtFileName.Text; + generator.FileName = txtFileName.Text; } - reportStructure.Path = this.txtPath.Text; - reportStructure.GraphicsUnit = (GraphicsUnit)Enum.Parse(typeof(GraphicsUnit), + generator.Path = this.txtPath.Text; + generator.GraphicsUnit = (GraphicsUnit)Enum.Parse(typeof(GraphicsUnit), this.cboGraphicsUnit.Text); if (this.radioPullModell.Checked == true) { base.NextWizardPanelID = "PullModel"; - reportStructure.DataModel = GlobalEnums.PushPullModel.PullData; + generator.DataModel = GlobalEnums.PushPullModel.PullData; GoOn(); } else if (this.radioPushModell.Checked == true){ base.NextWizardPanelID = "PushModel"; - reportStructure.DataModel = GlobalEnums.PushPullModel.PushData; + generator.DataModel = GlobalEnums.PushPullModel.PushData; GoOn(); } else if (this.radioFormSheet.Checked == true){ - reportStructure.DataModel = GlobalEnums.PushPullModel.FormSheet; + generator.DataModel = GlobalEnums.PushPullModel.FormSheet; base.EnableNext = false; base.IsLastPanel = true; } - reportStructure.Landscape = this.radioLandscape.Checked; + generator.Landscape = this.radioLandscape.Checked; } @@ -194,19 +198,22 @@ namespace ICSharpCode.Reports.Addin.ReportWizard{ if (this.radioPullModell.Checked == true) { base.NextWizardPanelID = "PullModel"; - reportStructure.DataModel = GlobalEnums.PushPullModel.PullData; + generator.DataModel = GlobalEnums.PushPullModel.PullData; GoOn(); } else if (this.radioPushModell.Checked == true){ base.NextWizardPanelID = "PushModel"; - reportStructure.DataModel = GlobalEnums.PushPullModel.PushData; + generator.DataModel = GlobalEnums.PushPullModel.PushData; GoOn(); } else if (this.radioFormSheet.Checked == true){ +// generator.DataModel = GlobalEnums.PushPullModel.FormSheet; base.EnableNext = false; base.IsLastPanel = true; } else if(this.radioStandardLayout.Checked == true) { - reportStructure.Landscape = false; + + generator.Landscape = false; + } else if(this.radioLandscape.Checked == true) { - reportStructure.Landscape = true; + generator.Landscape = true; } base.EnableFinish = true; diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/LayoutPanel.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/LayoutPanel.cs index 04b5a65583..1a09758f70 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/LayoutPanel.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/LayoutPanel.cs @@ -15,6 +15,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard public class LayoutPanel: AbstractWizardPanel { private LayoutPanelControl layoutControl; +// private Properties customizer; private ReportStructure reportStructure; public LayoutPanel() @@ -35,10 +36,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard base.EnableFinish = true; base.IsLastPanel = true; base.EnablePrevious = true; - - if (reportStructure == null) { - reportStructure = (ReportStructure)base.CustomizationObject; - } + reportStructure = (ReportStructure)base.CustomizationObject; if (message == DialogMessage.Activated) { layoutControl.AvailableFieldsCollection = reportStructure.AvailableFieldsCollection; } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/PullModelPanel.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/PullModelPanel.cs index c2d8724f6e..bb794410ad 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/PullModelPanel.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/PullModelPanel.cs @@ -28,9 +28,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard private System.Windows.Forms.Label label3; private bool firstDrag; private string connectionString; - private ReportStructure reportStructure; - private IDatabaseObjectBase currentNode; private ElementHost databasesTreeHost; private DatabasesTreeView databasesTree; @@ -77,13 +75,12 @@ namespace ICSharpCode.Reports.Addin.ReportWizard public override bool ReceiveDialogMessage(DialogMessage message) { - if (reportStructure == null) { - reportStructure = (ReportStructure)base.CustomizationObject; - } + this.reportStructure = (ReportStructure)base.CustomizationObject; + if (message == DialogMessage.Next) { - reportStructure.ConnectionString = connectionString; reportStructure.SqlString = this.txtSqlString.Text.Trim(); + reportStructure.ConnectionString = connectionString; base.EnableFinish = true; } return true; @@ -164,8 +161,6 @@ namespace ICSharpCode.Reports.Addin.ReportWizard this.txtSqlString.Clear(); ITable table = draggedObject as ITable; this.txtSqlString.Text = "SELECT * FROM " + table.Name; -// reportStructure.CommandType = CommandType.Text; -// reportStructure.IDatabaseObjectBase = table; reportStructure.CommandType = CommandType.Text; reportStructure.IDatabaseObjectBase = table; break; diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/PushModelPanel.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/PushModelPanel.cs index 86e5ac468d..2101f59543 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/PushModelPanel.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/PushModelPanel.cs @@ -23,8 +23,10 @@ namespace ICSharpCode.Reports.Addin.ReportWizard private System.Windows.Forms.Button btnPath; private System.Windows.Forms.CheckedListBox checkedListBox; private System.Windows.Forms.TextBox txtPath; - private DataSet resultDataSet; + private ReportStructure reportStructure; +// private Properties customizer; + private DataSet resultDataSet; public PushModelPanel() { @@ -82,11 +84,12 @@ namespace ICSharpCode.Reports.Addin.ReportWizard public override bool ReceiveDialogMessage(DialogMessage message) { -// if (customizer == null) { -// base.NextWizardPanelID = "Layout"; -// } + + reportStructure = (ReportStructure)base.CustomizationObject; base.NextWizardPanelID = "Layout"; - if (message == DialogMessage.Activated) { + + + if (message == DialogMessage.Activated) { WriteResult(); base.EnableNext = true; } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/ResultPanel.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/ResultPanel.cs index 27055a1ca4..de5afd7356 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/ResultPanel.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/ResultPanel.cs @@ -34,9 +34,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard private System.Windows.Forms.Label label1; private System.Windows.Forms.TextBox txtSqlString; - private ReportStructure reportStructure; -// private Properties customizer; private ReportModel model; private ConnectionObject connectionObject; private DataSet resultDataSet; @@ -232,12 +230,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard public override bool ReceiveDialogMessage(DialogMessage message) { -// if (customizer == null) { -// customizer = (Properties)base.CustomizationObject; -//// reportStructure = (ReportStructure)customizer.Get("Generator"); -// } - reportStructure = (ReportStructure)base.CustomizationObject; - + if (message == DialogMessage.Activated) { ShowData(); diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Designer/ReportDesignerDisplayBindingTestFixture.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Designer/ReportDesignerDisplayBindingTestFixture.cs index f20bb8853f..a45f1a923e 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Designer/ReportDesignerDisplayBindingTestFixture.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Designer/ReportDesignerDisplayBindingTestFixture.cs @@ -57,7 +57,7 @@ namespace ICSharpCode.Reports.Addin.Test.Designer ReportModel model = ReportModel.Create(); Properties customizer = new Properties(); customizer.Set("ReportLayout",GlobalEnums.ReportLayout.ListLayout); - IReportGenerator generator = new GeneratePlainReport(model,customizer); + IReportGenerator generator = new GeneratePlainReport(model); generator.GenerateReport(); MockOpenedFile mof = new MockOpenedFile(GlobalValues.PlainFileName); OpenedFile file = new MockOpenedFile(GlobalValues.PlainFileName); diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/GeneratePlainReportFixture_1.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/GeneratePlainReportFixture_1.cs index 1c140b02e0..747a290df4 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/GeneratePlainReportFixture_1.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/GeneratePlainReportFixture_1.cs @@ -27,7 +27,7 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard Properties customizer = new Properties(); customizer.Set("ReportLayout",GlobalEnums.ReportLayout.ListLayout); - IReportGenerator generator = new GeneratePlainReport(model,customizer); + IReportGenerator generator = new GeneratePlainReport(model); generator.GenerateReport(); XDocument doc1 = XDocument.Load(new XmlNodeReader (generator.XmlReport)); @@ -93,7 +93,7 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard Properties customizer = new Properties(); customizer.Set("ReportLayout",GlobalEnums.ReportLayout.ListLayout); - IReportGenerator generator = new GeneratePlainReport(model,customizer); + IReportGenerator generator = new GeneratePlainReport(model); generator.GenerateReport(); return generator.XmlReport; } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateFormsSheetReport.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateFormsSheetReport.cs index 8f3f855278..d593ff4eb1 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateFormsSheetReport.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateFormsSheetReport.cs @@ -12,7 +12,6 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard { /* [TestFixture] - [Ignore] public class GenerateFormsSheetReportFixture { @@ -71,7 +70,7 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard Properties customizer = new Properties(); customizer.Set("ReportLayout",GlobalEnums.ReportLayout.ListLayout); - IReportGenerator generator = new GenerateFormSheetReport(m,customizer); + IReportGenerator generator = new GenerateFormSheetReport(m); generator.GenerateReport(); ReportLoader rl = new ReportLoader(); diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GeneratePlainReportFixture_2.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GeneratePlainReportFixture_2.cs index 20da1fc3a6..8313f8bc91 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GeneratePlainReportFixture_2.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GeneratePlainReportFixture_2.cs @@ -78,7 +78,7 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard Properties customizer = new Properties(); customizer.Set("ReportLayout",GlobalEnums.ReportLayout.ListLayout); - IReportGenerator generator = new GeneratePlainReport(m,customizer); + IReportGenerator generator = new GeneratePlainReport(m); generator.GenerateReport(); ReportLoader rl = new ReportLoader(); diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateTableWithGrouping.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateTableWithGrouping.cs index 7adf8b2906..55d6961a4b 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateTableWithGrouping.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateTableWithGrouping.cs @@ -109,7 +109,7 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard.Generators customizer.Set("Generator", structure); customizer.Set("ReportLayout",GlobalEnums.ReportLayout.TableLayout); - IReportGenerator generator = new GeneratePushDataReport(m,customizer); + IReportGenerator generator = new GeneratePushDataReport(m); generator.GenerateReport(); diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/ReportGenerationHelper.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/ReportGenerationHelper.cs index c3ce8a50af..576f65b312 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/ReportGenerationHelper.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/ReportGenerationHelper.cs @@ -64,7 +64,7 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard customizer.Set("Generator", structure); customizer.Set("ReportLayout",GlobalEnums.ReportLayout.ListLayout); - IReportGenerator generator = new GeneratePushDataReport(m,customizer); + IReportGenerator generator = new GeneratePushDataReport(m); generator.GenerateReport(); ReportLoader rl = new ReportLoader(); diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/ReportStructureFixture.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/ReportStructureFixture.cs index 34cd5dae99..e8e357da47 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/ReportStructureFixture.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/ReportStructureFixture.cs @@ -13,12 +13,7 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard [TestFixture] public class ReportStructureFixture { - [Test] - public void Constructore() - { - ReportStructure rs = new ReportStructure(); - Assert.IsNotNull(rs,"ReportStructure should not be 'null'"); - } + [Test] public void FormSheetReport () From 1ebaba19078457618148193ab0fc6abbf70d0700 Mon Sep 17 00:00:00 2001 From: Peter Forstmeier Date: Sat, 30 Mar 2013 18:16:39 +0100 Subject: [PATCH 09/33] Fix PushModel-Wizard, adjust test's --- .../Project/Commands/ViewCommands.cs | 17 +++--- .../Generators/AbstractReportGenerator.cs | 28 ++++------ .../Generators/GenerateFormSheetReport.cs | 4 +- .../Generators/GeneratePlainReport.cs | 2 +- .../Generators/GeneratePullDataReport.cs | 4 +- .../Generators/GeneratePushDataReport.cs | 16 +++--- .../Generators/GeneratorFactory.cs | 11 ++-- .../ReportLayout/AbstractLayout.cs | 2 +- .../ReportWizard/ReportLayout/ListLayout.cs | 2 +- .../Project/ReportWizard/ReportStructure.cs | 4 +- .../ReportWizard/ReportWizardCommand.cs | 11 ++-- .../WizardPanels/BaseSettingsPanel.cs | 39 ++++++-------- .../ReportWizard/WizardPanels/LayoutPanel.cs | 5 +- ...ReportDesignerDisplayBindingTestFixture.cs | 14 ++--- .../ICSharpCode.Reports.Addin.Test.csproj | 1 - .../Wizard/GeneratePlainReportFixture_1.cs | 30 ++++++----- .../Generators/GenarateListReportFixture.cs | 9 ++-- .../Generators/GenerateFormsSheetReport.cs | 53 ++++++++++--------- .../GenerateListWithGroupFixture.cs | 5 +- .../Generators/GenerateTableReportFixture.cs | 3 +- .../Generators/GenerateTableWithGrouping.cs | 6 +-- .../Generators/ReportGenerationHelper.cs | 15 +++--- 22 files changed, 134 insertions(+), 147 deletions(-) diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Commands/ViewCommands.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Commands/ViewCommands.cs index fd1af97627..7c9717c623 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Commands/ViewCommands.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Commands/ViewCommands.cs @@ -24,16 +24,21 @@ namespace ICSharpCode.Reports.Addin.Commands public override void Run() { - WorkbenchSingleton.Workbench.ShowView(SetupDesigner()); + throw new NotImplementedException("StartViewCommand-Run"); +// SD.Workbench.ShowView(SetupDesigner()); } + /* public static ReportDesignerView SetupDesigner () { - + throw new NotImplementedException("SetupDesigner"); ReportModel model = ReportModel.Create(); - Properties customizer = new Properties(); - customizer.Set("ReportLayout",GlobalEnums.ReportLayout.ListLayout); - IReportGenerator generator = new GeneratePlainReport(model); + + var reportStructure = new ReportStructure() + { + ReportLayout = GlobalEnums.ReportLayout.ListLayout; + } + IReportGenerator generator = new GeneratePlainReport(model,reportStructure); generator.GenerateReport(); // OpenedFile file = FileService.CreateUntitledOpenedFile(GlobalValues.PlainFileName,new byte[0]); @@ -41,7 +46,7 @@ namespace ICSharpCode.Reports.Addin.Commands // return SetupDesigner(file); return SetupDesigner(null); } - + */ public static ReportDesignerView SetupDesigner (OpenedFile file) { diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/AbstractReportGenerator.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/AbstractReportGenerator.cs index 0226794cda..ad7802e22c 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/AbstractReportGenerator.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/AbstractReportGenerator.cs @@ -24,34 +24,29 @@ namespace ICSharpCode.Reports.Addin.ReportWizard public interface IReportGenerator{ void GenerateReport (); XmlDocument XmlReport {get;} - MemoryStream Generated { - get; - } - Properties Properties{ - get; - } + MemoryStream Generated {get;} + ReportStructure ReportStructure {get;} } + public abstract class AbstractReportGenerator : IReportGenerator { private StringWriter stringWriter; - private ReportItemCollection reportItemCollection; private AvailableFieldsCollection availableFieldsCollection; private ParameterCollection parameterCollection; - - private ColumnCollection groupColumnCollection; - protected AbstractReportGenerator(ReportModel reportModel) + protected AbstractReportGenerator(ReportModel reportModel,ReportStructure reportStructure) { if (reportModel == null) { throw new ArgumentNullException("reportModel"); } - + if (reportStructure == null) { + throw new ArgumentNullException("reportStructure"); + } this.ReportModel = reportModel; -// this.Properties = properties; - + ReportStructure = reportStructure; this.AvailableFieldsCollection.Clear(); this.ReportItemCollection.Clear(); this.GroupColumnCollection.Clear(); @@ -153,14 +148,11 @@ namespace ICSharpCode.Reports.Addin.ReportWizard #endregion - protected ReportStructure ReportStructure {get;private set;} + public ReportStructure ReportStructure {get;private set;} public ReportModel ReportModel {get;private set;} - - public Properties Properties {get; private set;} - - + protected ReportItemCollection ReportItemCollection { get { if (this.reportItemCollection == null) { this.reportItemCollection = new ReportItemCollection(); diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GenerateFormSheetReport.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GenerateFormSheetReport.cs index 8ee8d63674..5e1be6b3dc 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GenerateFormSheetReport.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GenerateFormSheetReport.cs @@ -15,8 +15,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard /// public class GenerateFormSheetReport:GeneratePlainReport { - public GenerateFormSheetReport(ReportModel reportModel ):base(reportModel) - + public GenerateFormSheetReport(ReportModel reportModel,ReportStructure reportStructure ):base(reportModel,reportStructure) { if (reportModel == null) { @@ -34,7 +33,6 @@ namespace ICSharpCode.Reports.Addin.ReportWizard ListLayout layout = new ListLayout(base.ReportModel,null); layout.CreateReportHeader(); layout.CreatePageFooter(); -// base.AdjustAllNames(); base.WriteToXml(); } } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GeneratePlainReport.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GeneratePlainReport.cs index ac8112aa04..95dd6f8885 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GeneratePlainReport.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GeneratePlainReport.cs @@ -15,7 +15,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard public class GeneratePlainReport:AbstractReportGenerator { - public GeneratePlainReport(ReportModel reportModel):base(reportModel) + public GeneratePlainReport(ReportModel reportModel,ReportStructure reportStructure):base(reportModel,reportStructure) {} diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GeneratePullDataReport.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GeneratePullDataReport.cs index ffb4920f59..6b55be9386 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GeneratePullDataReport.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GeneratePullDataReport.cs @@ -15,13 +15,11 @@ namespace ICSharpCode.Reports.Addin.ReportWizard internal class GeneratePullDataReport: AbstractReportGenerator { - - public GeneratePullDataReport(ReportModel reportModel):base(reportModel) + public GeneratePullDataReport(ReportModel reportModel,ReportStructure reportStructure):base(reportModel,reportStructure) { if (reportModel == null) { throw new ArgumentNullException("reportModel"); } - base.UpdateGenerator(); base.UpdateModel(); base.SqlQueryParameters.AddRange(base.ReportStructure.SqlQueryParameters); diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GeneratePushDataReport.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GeneratePushDataReport.cs index 8c01b81c47..51da81c44f 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GeneratePushDataReport.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GeneratePushDataReport.cs @@ -24,7 +24,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard /// /// Default constructor - initializes all fields to default values /// - public GeneratePushDataReport(ReportModel reportModel):base(reportModel){ + public GeneratePushDataReport(ReportModel reportModel,ReportStructure reportStructure):base(reportModel,reportStructure){ base.UpdateGenerator(); base.UpdateModel(); } @@ -35,14 +35,14 @@ namespace ICSharpCode.Reports.Addin.ReportWizard base.ReportModel.ReportSettings.ReportType = GlobalEnums.ReportType.DataReport; base.ReportModel.ReportSettings.DataModel = GlobalEnums.PushPullModel.PushData; base.GenerateReport(); -// GlobalEnums.ReportLayout reportLayout = (GlobalEnums.ReportLayout)base.Properties.Get("ReportLayout"); + + GlobalEnums.ReportLayout reportLayout = ReportStructure.ReportLayout; + var layout = LayoutFactory.CreateGenerator(reportLayout,base.ReportModel,base.ReportItemCollection); -// AbstractLayout layout = LayoutFactory.CreateGenerator(reportLayout,base.ReportModel,base.ReportItemCollection); -// -// layout.CreateReportHeader(); -// layout.CreatePageHeader(); -// layout.CreateDataSection(base.ReportModel.DetailSection); -// layout.CreatePageFooter(); + layout.CreateReportHeader(); + layout.CreatePageHeader(); + layout.CreateDataSection(base.ReportModel.DetailSection); + layout.CreatePageFooter(); base.WriteToXml(); } } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GeneratorFactory.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GeneratorFactory.cs index 76568785a3..7787a2aa64 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GeneratorFactory.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GeneratorFactory.cs @@ -35,20 +35,19 @@ namespace ICSharpCode.Reports.Addin.ReportWizard public static class GeneratorFactory { - public static IReportGenerator Create (ReportModel model, - Properties customizer) + public static IReportGenerator Create (ReportModel model,ReportStructure reportStructure) + { IReportGenerator reportGenerator = null; switch (model.DataModel) { case GlobalEnums.PushPullModel.PullData: - reportGenerator = new GeneratePullDataReport(model); - + reportGenerator = new GeneratePullDataReport(model,reportStructure); break; case GlobalEnums.PushPullModel.PushData: - reportGenerator = new GeneratePushDataReport(model); + reportGenerator = new GeneratePushDataReport(model,reportStructure); break; case GlobalEnums.PushPullModel.FormSheet: - reportGenerator = new GenerateFormSheetReport (model); + reportGenerator = new GenerateFormSheetReport (model,reportStructure); break; } return reportGenerator; diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/ReportLayout/AbstractLayout.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/ReportLayout/AbstractLayout.cs index c7484a215d..c2d5b17293 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/ReportLayout/AbstractLayout.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/ReportLayout/AbstractLayout.cs @@ -138,7 +138,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard #endregion - protected ReportItemCollection AddItemsToContainer () + protected ReportItemCollection CreateItemsCollection () { int locationX = GlobalValues.ControlMargins.Left; diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/ReportLayout/ListLayout.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/ReportLayout/ListLayout.cs index 1c1d2e1b88..274cb0b3ef 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/ReportLayout/ListLayout.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/ReportLayout/ListLayout.cs @@ -77,7 +77,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard Size CreateDetail() { - var items = base.AddItemsToContainer(); + var items = base.CreateItemsCollection(); Container.Items.AddRange(items); return items[0].Size; } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/ReportStructure.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/ReportStructure.cs index 90256bff66..ce08a4ecb3 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/ReportStructure.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/ReportStructure.cs @@ -66,7 +66,6 @@ namespace ICSharpCode.Reports.Addin.ReportWizard if (!String.IsNullOrEmpty(this.Grouping)) { string s = "=[" + this.Grouping + "]"; - //GroupColumn g = new GroupColumn(this.Grouping,1,System.ComponentModel.ListSortDirection.Ascending); GroupColumn g = new GroupColumn(s,1,System.ComponentModel.ListSortDirection.Ascending); settings.GroupColumnsCollection.Add(g); } @@ -138,12 +137,15 @@ namespace ICSharpCode.Reports.Addin.ReportWizard #endregion + public GlobalEnums.ReportLayout ReportLayout {get;set;} + #region Grouping public string Grouping {get;set;} #endregion + #region IDisposable public void Dispose(){ this.Dispose(true); diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/ReportWizardCommand.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/ReportWizardCommand.cs index 9f64199178..ebf47a6be6 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/ReportWizardCommand.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/ReportWizardCommand.cs @@ -23,7 +23,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard private OpenedFile file; private ReportModel reportModel; private IReportGenerator reportGenerator; - private Properties customizer = new Properties(); +// private Properties customizer = new Properties(); private ReportStructure reportStructure; private bool canceled; @@ -37,15 +37,12 @@ namespace ICSharpCode.Reports.Addin.ReportWizard public override void Run() { reportStructure = new ReportStructure(); -// customizer.Set("Generator", reportStructure); -// customizer.Set("ReportLayout",GlobalEnums.ReportLayout.ListLayout); - if (GlobalValues.IsValidPrinter() == true) { using (WizardDialog wizard = new WizardDialog("Report Wizard", reportStructure, WizardPath)) { if (wizard.ShowDialog() == DialogResult.OK) { reportModel = reportStructure.CreateAndFillReportModel (); - CreateReportFromModel(reportModel); + CreateReportFromModel(reportModel,reportStructure); } else{ this.canceled = true; @@ -57,9 +54,9 @@ namespace ICSharpCode.Reports.Addin.ReportWizard } - private void CreateReportFromModel (ReportModel model) + private void CreateReportFromModel (ReportModel model,ReportStructure reportStructure) { - reportGenerator = GeneratorFactory.Create (model,customizer); + reportGenerator = GeneratorFactory.Create (model,reportStructure); file.MakeDirty(); reportGenerator.GenerateReport(); } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/BaseSettingsPanel.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/BaseSettingsPanel.cs index 8bf4e080be..92d2a39f29 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/BaseSettingsPanel.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/BaseSettingsPanel.cs @@ -42,10 +42,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard{ private RadioButton radioStandardLayout; private RadioButton radioLandscape; - ReportStructure generator; -// Properties customizer; -//ReportStructure ReportStructure customizer; - + ReportStructure reportStructure; bool initDone; public BaseSettingsPanel(){ @@ -158,37 +155,35 @@ namespace ICSharpCode.Reports.Addin.ReportWizard{ private void UpdateGenerator () { -// if (customizer == null) { -// customizer = (ReportStructure)base.CustomizationObject; -// generator = (ReportStructure)customizer.Get("Generator"); - generator = (ReportStructure)base.CustomizationObject; -// } - generator.ReportName = txtReportName.Text; + reportStructure = (ReportStructure)base.CustomizationObject; + + + reportStructure.ReportName = txtReportName.Text; if (!this.txtFileName.Text.EndsWith(GlobalValues.ReportExtension,StringComparison.OrdinalIgnoreCase)){ - generator.FileName = txtFileName.Text + GlobalValues.ReportExtension; + reportStructure.FileName = txtFileName.Text + GlobalValues.ReportExtension; } else { - generator.FileName = txtFileName.Text; + reportStructure.FileName = txtFileName.Text; } - generator.Path = this.txtPath.Text; - generator.GraphicsUnit = (GraphicsUnit)Enum.Parse(typeof(GraphicsUnit), + reportStructure.Path = this.txtPath.Text; + reportStructure.GraphicsUnit = (GraphicsUnit)Enum.Parse(typeof(GraphicsUnit), this.cboGraphicsUnit.Text); if (this.radioPullModell.Checked == true) { base.NextWizardPanelID = "PullModel"; - generator.DataModel = GlobalEnums.PushPullModel.PullData; + reportStructure.DataModel = GlobalEnums.PushPullModel.PullData; GoOn(); } else if (this.radioPushModell.Checked == true){ base.NextWizardPanelID = "PushModel"; - generator.DataModel = GlobalEnums.PushPullModel.PushData; + reportStructure.DataModel = GlobalEnums.PushPullModel.PushData; GoOn(); } else if (this.radioFormSheet.Checked == true){ - generator.DataModel = GlobalEnums.PushPullModel.FormSheet; + reportStructure.DataModel = GlobalEnums.PushPullModel.FormSheet; base.EnableNext = false; base.IsLastPanel = true; } - generator.Landscape = this.radioLandscape.Checked; + reportStructure.Landscape = this.radioLandscape.Checked; } @@ -198,11 +193,11 @@ namespace ICSharpCode.Reports.Addin.ReportWizard{ if (this.radioPullModell.Checked == true) { base.NextWizardPanelID = "PullModel"; - generator.DataModel = GlobalEnums.PushPullModel.PullData; + reportStructure.DataModel = GlobalEnums.PushPullModel.PullData; GoOn(); } else if (this.radioPushModell.Checked == true){ base.NextWizardPanelID = "PushModel"; - generator.DataModel = GlobalEnums.PushPullModel.PushData; + reportStructure.DataModel = GlobalEnums.PushPullModel.PushData; GoOn(); } else if (this.radioFormSheet.Checked == true){ // generator.DataModel = GlobalEnums.PushPullModel.FormSheet; @@ -210,10 +205,10 @@ namespace ICSharpCode.Reports.Addin.ReportWizard{ base.IsLastPanel = true; } else if(this.radioStandardLayout.Checked == true) { - generator.Landscape = false; + reportStructure.Landscape = false; } else if(this.radioLandscape.Checked == true) { - generator.Landscape = true; + reportStructure.Landscape = true; } base.EnableFinish = true; diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/LayoutPanel.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/LayoutPanel.cs index 1a09758f70..d3881d7c2c 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/LayoutPanel.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/LayoutPanel.cs @@ -3,9 +3,6 @@ using System; using System.Drawing; -using ICSharpCode.Core; -using ICSharpCode.Reports.Core; -using ICSharpCode.Reports.Core.Globals; namespace ICSharpCode.Reports.Addin.ReportWizard { @@ -15,7 +12,6 @@ namespace ICSharpCode.Reports.Addin.ReportWizard public class LayoutPanel: AbstractWizardPanel { private LayoutPanelControl layoutControl; -// private Properties customizer; private ReportStructure reportStructure; public LayoutPanel() @@ -43,6 +39,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard else if (message == DialogMessage.Finish) { + reportStructure.ReportLayout = layoutControl.ReportLayout; reportStructure.Grouping = layoutControl.GroupName; } return true; diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Designer/ReportDesignerDisplayBindingTestFixture.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Designer/ReportDesignerDisplayBindingTestFixture.cs index a45f1a923e..2d7d8094d6 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Designer/ReportDesignerDisplayBindingTestFixture.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Designer/ReportDesignerDisplayBindingTestFixture.cs @@ -13,7 +13,9 @@ using NUnit.Framework; namespace ICSharpCode.Reports.Addin.Test.Designer { + [TestFixture] + public class ReportDesignerDisplayBindingTestFixture { ReportDesignerDisplayBinding displayBinding; @@ -49,15 +51,17 @@ namespace ICSharpCode.Reports.Addin.Test.Designer Assert.IsTrue(displayBinding.IsPreferredBindingForFile(filename)); } - /* + [Test] [Ignore] public void CanCreateContentFromFile () { ReportModel model = ReportModel.Create(); - Properties customizer = new Properties(); - customizer.Set("ReportLayout",GlobalEnums.ReportLayout.ListLayout); - IReportGenerator generator = new GeneratePlainReport(model); + ReportStructure reportStructure = new ReportStructure() + { + ReportLayout = GlobalEnums.ReportLayout.ListLayout + }; + IReportGenerator generator = new GeneratePlainReport(model,reportStructure); generator.GenerateReport(); MockOpenedFile mof = new MockOpenedFile(GlobalValues.PlainFileName); OpenedFile file = new MockOpenedFile(GlobalValues.PlainFileName); @@ -66,7 +70,5 @@ namespace ICSharpCode.Reports.Addin.Test.Designer //ICSharpCode.SharpDevelop.Gui.IViewContent v = displayBinding.CreateContentForFile(new MockOpenedFile("test.srd")); //Assert.IsNotNull(v,"View should not be 'null'"); } - */ - } } \ No newline at end of file diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/ICSharpCode.Reports.Addin.Test.csproj b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/ICSharpCode.Reports.Addin.Test.csproj index db640d4f31..5648ad0ad2 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/ICSharpCode.Reports.Addin.Test.csproj +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/ICSharpCode.Reports.Addin.Test.csproj @@ -67,7 +67,6 @@ - diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/GeneratePlainReportFixture_1.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/GeneratePlainReportFixture_1.cs index 747a290df4..a72950f146 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/GeneratePlainReportFixture_1.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/GeneratePlainReportFixture_1.cs @@ -18,16 +18,18 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard [Ignore] public class GeneratePlainReportFixture { - /* + [Test] public void GeneratePlainReport_1() { ReportModel model = ReportModel.Create(); - Properties customizer = new Properties(); - - customizer.Set("ReportLayout",GlobalEnums.ReportLayout.ListLayout); - IReportGenerator generator = new GeneratePlainReport(model); + + ReportStructure reportStructure = new ReportStructure() + { + ReportLayout = GlobalEnums.ReportLayout.ListLayout + }; + IReportGenerator generator = new GeneratePlainReport(model,reportStructure); generator.GenerateReport(); XDocument doc1 = XDocument.Load(new XmlNodeReader (generator.XmlReport)); @@ -47,11 +49,10 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard foreach (XElement a in sq) { Console.WriteLine (a.Name); - } + } } - [Test] public void CheckReportSettings () { @@ -85,18 +86,19 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard } Assert.AreEqual (5,sq1.Count(),"Should be 5 times a 'BaseSection'"); } - */ - /* + private XmlDocument CreateXmlFromModel () { ReportModel model = ReportModel.Create(); - Properties customizer = new Properties(); - - customizer.Set("ReportLayout",GlobalEnums.ReportLayout.ListLayout); - IReportGenerator generator = new GeneratePlainReport(model); + ReportStructure reportStructure = new ReportStructure() + { + ReportLayout = GlobalEnums.ReportLayout.ListLayout + }; + IReportGenerator generator = new GeneratePlainReport(model,reportStructure); generator.GenerateReport(); return generator.XmlReport; } - */ + } + } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenarateListReportFixture.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenarateListReportFixture.cs index ca6cbce072..a08d6ed189 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenarateListReportFixture.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenarateListReportFixture.cs @@ -11,9 +11,10 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard.Generators { /* [TestFixture] - [Ignore] + public class GenerateListReportFixture { + private const string reportName = "ListBasedReport"; ReportModel reportModel; @@ -57,7 +58,7 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard.Generators #region Sort_Group [Test] - public void GroupColumCollection_Grouping_Should_Set() + public void CanAddGroupColumn() { ReportModel m = ReportGenerationHelper.CreateModel(reportName,false); var rs = m.ReportSettings; @@ -70,7 +71,7 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard.Generators [Test] - public void SortColumCollection_Sorting_Should_Set() + public void CanAddSortColumn() { ReportModel m = ReportGenerationHelper.CreateModel(reportName,false); var rs = m.ReportSettings; @@ -132,7 +133,7 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard.Generators [Test] - public void Row_Should_Contain_Dataitems() + public void Row_Should_Contain_Items() { ICSharpCode.Reports.Core.BaseSection s = this.reportModel.DetailSection; ICSharpCode.Reports.Core.BaseRowItem dataRow = (ICSharpCode.Reports.Core.BaseRowItem)s.Items[0]; diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateFormsSheetReport.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateFormsSheetReport.cs index d593ff4eb1..328c2d76ec 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateFormsSheetReport.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateFormsSheetReport.cs @@ -2,7 +2,6 @@ // This code is distributed under the GNU LGPL (for details please see \doc\license.txt) using System; -using ICSharpCode.Core; using ICSharpCode.Reports.Addin.ReportWizard; using ICSharpCode.Reports.Core; using ICSharpCode.Reports.Core.Globals; @@ -15,22 +14,22 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard public class GenerateFormsSheetReportFixture { - ReportModel model ; + ReportModel createdReportModel ; [Test] public void ModelContainFiveSections () { - Assert.AreEqual(5,this.model.SectionCollection.Count); + Assert.AreEqual(5,this.createdReportModel.SectionCollection.Count); } [Test] public void PageHeaderShouldContainOneItem () { - ICSharpCode.Reports.Core.BaseSection s = this.model.ReportHeader; - ReportItemCollection c = s.Items; - Assert.AreEqual(1,s.Items.Count); - ICSharpCode.Reports.Core.BaseReportItem item = s.Items[0]; + ICSharpCode.Reports.Core.BaseSection section = this.createdReportModel.ReportHeader; + ReportItemCollection c = section.Items; + Assert.AreEqual(1,section.Items.Count); + ICSharpCode.Reports.Core.BaseReportItem item = section.Items[0]; Assert.IsNotNull(item); } @@ -38,17 +37,17 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard [Test] public void DetailShouldContainNoItem () { - ICSharpCode.Reports.Core.BaseSection s = this.model.DetailSection; - Assert.AreEqual(0,s.Items.Count); + ICSharpCode.Reports.Core.BaseSection section = this.createdReportModel.DetailSection; + Assert.AreEqual(0,section.Items.Count); } [Test] public void PageFooterShouldContainOneItem () { - ICSharpCode.Reports.Core.BaseSection s = this.model.PageFooter; - Assert.AreEqual(1,s.Items.Count); - ICSharpCode.Reports.Core.BaseTextItem item = (ICSharpCode.Reports.Core.BaseTextItem)s.Items[0]; + ICSharpCode.Reports.Core.BaseSection section = this.createdReportModel.PageFooter; + Assert.AreEqual(1,section.Items.Count); + ICSharpCode.Reports.Core.BaseTextItem item = (ICSharpCode.Reports.Core.BaseTextItem)section.Items[0]; Assert.IsNotNull(item); } @@ -56,8 +55,8 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard [Test] public void PageFooterContainsPageNumberFunction() { - ICSharpCode.Reports.Core.BaseSection s = this.model.PageFooter; - ICSharpCode.Reports.Core.BaseTextItem item = (ICSharpCode.Reports.Core.BaseTextItem)s.Items[0]; + ICSharpCode.Reports.Core.BaseSection section = this.createdReportModel.PageFooter; + ICSharpCode.Reports.Core.BaseTextItem item = (ICSharpCode.Reports.Core.BaseTextItem)section.Items[0]; Assert.AreEqual("=Globals!PageNumber",item.Text); Assert.AreEqual("PageNumber1",item.Name); } @@ -67,21 +66,22 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard private ReportModel CreateModel () { ReportModel m = ReportModel.Create(); - Properties customizer = new Properties(); + + ReportStructure reportStructure = new ReportStructure() + { + ReportLayout = GlobalEnums.ReportLayout.ListLayout + }; - customizer.Set("ReportLayout",GlobalEnums.ReportLayout.ListLayout); - IReportGenerator generator = new GenerateFormSheetReport(m); + IReportGenerator generator = new GenerateFormSheetReport(m,reportStructure); generator.GenerateReport(); - ReportLoader rl = new ReportLoader(); - object root = rl.Load(generator.XmlReport.DocumentElement); + ReportLoader loader = new ReportLoader(); + object root = loader.Load(generator.XmlReport.DocumentElement); + ReportModel model = root as ReportModel; - if (model != null) { - model.ReportSettings.FileName = GlobalValues.PlainFileName; - FilePathConverter.AdjustReportName(model); - } else { - throw new InvalidReportModelException(); - } + + model.ReportSettings.FileName = GlobalValues.PlainFileName; + FilePathConverter.AdjustReportName(model); return model; } @@ -89,8 +89,9 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard [TestFixtureSetUp] public void Init() { - this.model = this.CreateModel(); + this.createdReportModel = this.CreateModel(); } + } */ } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateListWithGroupFixture.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateListWithGroupFixture.cs index d257c0e2cc..368366b3fd 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateListWithGroupFixture.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateListWithGroupFixture.cs @@ -18,7 +18,7 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard.Generators /// Description of GenerateListWithGroupFixture. /// [TestFixture] - [Ignore] +// [Ignore] public class GenerateListWithGroupFixture { @@ -94,6 +94,7 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard.Generators #endregion + } } -*/ \ No newline at end of file +*/ diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateTableReportFixture.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateTableReportFixture.cs index 9bf629c787..24f55d3974 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateTableReportFixture.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateTableReportFixture.cs @@ -16,6 +16,7 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard.Generators [Ignore] public class GenerateTableReportFixture { + /* private const string reportName = "TableBasedReport"; ReportModel reportModel; @@ -135,7 +136,7 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard.Generators } #endregion - + */ } */ } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateTableWithGrouping.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateTableWithGrouping.cs index 55d6961a4b..e376bb0742 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateTableWithGrouping.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateTableWithGrouping.cs @@ -21,9 +21,9 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard.Generators /* [TestFixture] [Ignore] - public class GenertaeTableWithGroupFixture + public class GenerateTableWithGroupFixture { - + /* private const string reportName = "TableBasedReport"; private ReportModel reportModel; @@ -136,7 +136,7 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard.Generators } #endregion - + */ } */ } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/ReportGenerationHelper.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/ReportGenerationHelper.cs index 576f65b312..b330518bf1 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/ReportGenerationHelper.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/ReportGenerationHelper.cs @@ -45,26 +45,23 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard public static ReportModel CreateModel (string reportName,bool createGrouping) { - ReportStructure structure = CreateReportStructure(reportName); + ReportStructure reportStructure = CreateReportStructure(reportName); AvailableFieldsCollection abstractColumns = new AvailableFieldsCollection(); AbstractColumn a1 = new AbstractColumn("Field1",typeof(System.String)); - structure.AvailableFieldsCollection.Add(a1); + reportStructure.AvailableFieldsCollection.Add(a1); ICSharpCode.Reports.Core.BaseDataItem bri = new ICSharpCode.Reports.Core.BaseDataItem(); bri.Name ="Field1"; - structure.ReportItemCollection.Add(bri); + reportStructure.ReportItemCollection.Add(bri); if (createGrouping) { - structure.Grouping = "group"; + reportStructure.Grouping = "group"; } - ReportModel m = structure.CreateAndFillReportModel(); - ICSharpCode.Core.Properties customizer = new ICSharpCode.Core.Properties(); + ReportModel m = reportStructure.CreateAndFillReportModel(); - customizer.Set("Generator", structure); - customizer.Set("ReportLayout",GlobalEnums.ReportLayout.ListLayout); - IReportGenerator generator = new GeneratePushDataReport(m); + IReportGenerator generator = new GeneratePushDataReport(m,reportStructure); generator.GenerateReport(); ReportLoader rl = new ReportLoader(); From acd91125f5c3d264a05b7e1185362ee19a770b63 Mon Sep 17 00:00:00 2001 From: Peter Forstmeier Date: Sat, 30 Mar 2013 18:31:30 +0100 Subject: [PATCH 10/33] Clean Test's --- .../Test/Wizard/GeneratePlainReportFixture_1.cs | 1 - .../Test/Wizard/Generators/GenarateListReportFixture.cs | 4 +--- .../Test/Wizard/Generators/GenerateFormsSheetReport.cs | 4 ++-- .../Test/Wizard/Generators/GenerateTableReportFixture.cs | 3 +-- .../Test/Wizard/Generators/GenerateTableWithGrouping.cs | 3 +-- .../Test/Wizard/Generators/ReportGenerationHelper.cs | 4 ++-- 6 files changed, 7 insertions(+), 12 deletions(-) diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/GeneratePlainReportFixture_1.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/GeneratePlainReportFixture_1.cs index a72950f146..c6bd9e702a 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/GeneratePlainReportFixture_1.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/GeneratePlainReportFixture_1.cs @@ -15,7 +15,6 @@ using NUnit.Framework; namespace ICSharpCode.Reports.Addin.Test.Wizard { [TestFixture] - [Ignore] public class GeneratePlainReportFixture { diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenarateListReportFixture.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenarateListReportFixture.cs index a08d6ed189..094f95143d 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenarateListReportFixture.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenarateListReportFixture.cs @@ -9,9 +9,8 @@ using NUnit.Framework; namespace ICSharpCode.Reports.Addin.Test.Wizard.Generators { - /* + [TestFixture] - public class GenerateListReportFixture { @@ -188,5 +187,4 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard.Generators #endregion } - */ } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateFormsSheetReport.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateFormsSheetReport.cs index 328c2d76ec..4508add467 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateFormsSheetReport.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateFormsSheetReport.cs @@ -9,7 +9,7 @@ using NUnit.Framework; namespace ICSharpCode.Reports.Addin.Test.Wizard { - /* + [TestFixture] public class GenerateFormsSheetReportFixture { @@ -93,5 +93,5 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard } } - */ + } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateTableReportFixture.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateTableReportFixture.cs index 24f55d3974..eef1a2c447 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateTableReportFixture.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateTableReportFixture.cs @@ -11,7 +11,7 @@ using NUnit.Framework; namespace ICSharpCode.Reports.Addin.Test.Wizard.Generators { - /* + [TestFixture] [Ignore] public class GenerateTableReportFixture @@ -138,5 +138,4 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard.Generators #endregion */ } - */ } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateTableWithGrouping.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateTableWithGrouping.cs index e376bb0742..90ae23eef8 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateTableWithGrouping.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/GenerateTableWithGrouping.cs @@ -18,7 +18,7 @@ using NUnit.Framework; namespace ICSharpCode.Reports.Addin.Test.Wizard.Generators { - /* + [TestFixture] [Ignore] public class GenerateTableWithGroupFixture @@ -138,5 +138,4 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard.Generators #endregion */ } - */ } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/ReportGenerationHelper.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/ReportGenerationHelper.cs index b330518bf1..90f3762063 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/ReportGenerationHelper.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Test/Wizard/Generators/ReportGenerationHelper.cs @@ -15,7 +15,7 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard /// Description of ReportGenerationHelper. /// /// - /* + public class ReportGenerationHelper { public static ReportModel FormSheetModel() @@ -86,5 +86,5 @@ namespace ICSharpCode.Reports.Addin.Test.Wizard return structure; } } - */ + } From 608f4ffebf844aa0de7e5171c27a2f88fb73de61 Mon Sep 17 00:00:00 2001 From: Peter Forstmeier Date: Sun, 31 Mar 2013 17:50:57 +0200 Subject: [PATCH 11/33] PullModel Panel - SqlServer 2012 --- .../WizardPanels/PullModelPanel.cs | 11 ++++-- .../ReportWizard/WizardPanels/ResultPanel.cs | 39 ++++++++++++------- 2 files changed, 33 insertions(+), 17 deletions(-) diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/PullModelPanel.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/PullModelPanel.cs index bb794410ad..3b8fd97053 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/PullModelPanel.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/PullModelPanel.cs @@ -3,6 +3,7 @@ using System; using System.Data; +using System.Data.SqlClient; using System.Globalization; using System.Reflection; using System.Windows.Forms; @@ -13,7 +14,6 @@ using ICSharpCode.Data.Core.Interfaces; using ICSharpCode.Data.Core.UI.UserControls; using ICSharpCode.SharpDevelop; - namespace ICSharpCode.Reports.Addin.ReportWizard { /// @@ -239,8 +239,13 @@ namespace ICSharpCode.Reports.Addin.ReportWizard { if (parentDatabase != null) { - this.connectionString = "Provider=" + parentDatabase.Datasource.DatabaseDriver.ODBCProviderName + ";" + parentDatabase.ConnectionString; - this.txtSqlString.Enabled = true; +// this.connectionString = + parentDatabase.ConnectionString; +// this.connectionString = "Driver={SQLServer};" + "Provider=SQLOLEDB;" + parentDatabase.ConnectionString; +//var cs = new SqlConnection(); +//cs. + this.connectionString = "Provider=SQLOLEDB;" + parentDatabase.ConnectionString; +// this.connectionString = parentDatabase.ConnectionString; +this.txtSqlString.Enabled = true; if (this.firstDrag) this.txtSqlString.Text = string.Empty; diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/ResultPanel.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/ResultPanel.cs index de5afd7356..557efced0c 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/ResultPanel.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/ResultPanel.cs @@ -19,6 +19,7 @@ using ICSharpCode.Reports.Core; using ICSharpCode.Reports.Core.DataAccess; using ICSharpCode.Reports.Core.Globals; using ICSharpCode.Reports.Core.Project.BaseClasses; +using ICSharpCode.Reports.Core.Project.Interfaces; using ICSharpCode.SharpDevelop; namespace ICSharpCode.Reports.Addin.ReportWizard @@ -65,15 +66,16 @@ namespace ICSharpCode.Reports.Addin.ReportWizard DataSet dataSet = ResultPanel.CreateDataSet (); this.txtSqlString.Text = model.ReportSettings.CommandText; + + this.connectionObject = CreateConnection (); + var dataAccess = new SqlDataAccessStrategy(model.ReportSettings,connectionObject); switch (model.ReportSettings.CommandType) { case CommandType.Text: - this.connectionObject = CreateConnection (); - var dataAccess = new SqlDataAccessStrategy(model.ReportSettings,connectionObject); - dataSet = dataAccess.ReadData(); - dataSet.Tables[0].TableName = CreateTableName (reportStructure); + dataSet = DatasetFromSqlText(dataAccess); + break; case CommandType.StoredProcedure: - dataSet = DatasetFromStoredProcedure(); + dataSet = DatasetFromStoredProcedure(dataAccess); break; case CommandType.TableDirect: MessageService.ShowError("TableDirect is not suppurted at the moment"); @@ -112,24 +114,27 @@ namespace ICSharpCode.Reports.Addin.ReportWizard } - DataSet DatasetFromStoredProcedure() + private DataSet DatasetFromSqlText(IDataAccessStrategy dataAccess) + { + var dataSet = dataAccess.ReadData(); + dataSet.Tables[0].TableName = CreateTableName (reportStructure); + return dataSet; + } + + + private DataSet DatasetFromStoredProcedure(IDataAccessStrategy dataAccess) { - this.connectionObject = CreateConnection(); DataSet dataSet = ResultPanel.CreateDataSet(); - IProcedure procedure = reportStructure.IDatabaseObjectBase as IProcedure; + IProcedure procedure = reportStructure.IDatabaseObjectBase as IProcedure; var paramCollection = CheckParameters(procedure); - if (paramCollection.Count > 0) { FillParameters(paramCollection); reportStructure.SqlQueryParameters.AddRange(paramCollection); } - - var dataAccess = new SqlDataAccessStrategy(model.ReportSettings,connectionObject); dataSet = dataAccess.ReadData(); dataSet.Tables[0].TableName = procedure.Name; - return dataSet; } @@ -137,7 +142,13 @@ namespace ICSharpCode.Reports.Addin.ReportWizard void FillParameters(ParameterCollection paramCollection) { - model.ReportSettings.ParameterCollection.AddRange(paramCollection); + foreach (var param in paramCollection) { + SqlParameter s = new SqlParameter() + { + ParameterName = param.ParameterName, + }; + model.ReportSettings.SqlParameters.Add(s); + } CollectParametersCommand p = new CollectParametersCommand(model); p.Run(); } @@ -230,7 +241,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard public override bool ReceiveDialogMessage(DialogMessage message) { - + reportStructure = (ReportStructure)base.CustomizationObject; if (message == DialogMessage.Activated) { ShowData(); From 8a08d3ee0dd0be1871e2ffb624d768ea68502dac Mon Sep 17 00:00:00 2001 From: Peter Forstmeier Date: Mon, 1 Apr 2013 17:36:33 +0200 Subject: [PATCH 12/33] PullModel from StoredProcedure --- .../Project/ReportDesignerView.cs | 1 - .../Generators/GeneratePullDataReport.cs | 13 ++- .../Project/ReportWizard/ReportStructure.cs | 27 +++--- .../WizardPanels/PullModelPanel.cs | 88 +++++++++---------- .../ReportWizard/WizardPanels/ResultPanel.cs | 29 ++---- .../ICSharpCode.Reports.Core.csproj | 3 +- .../DataManager/DataAccess/SqlDataAccess.cs | 76 ++++------------ .../Project/DataManager/DataManager.cs | 14 ++- .../Factories/ConnectionObjectFactory.cs | 27 ------ ...anagerFacrory.cs => DataManagerFactory.cs} | 13 +-- .../Project/Factories/SectionFactory.cs | 8 +- .../Project/Interfaces/IDataAccessStrategy.cs | 1 - .../Project/ReportEngine.cs | 1 - 13 files changed, 102 insertions(+), 199 deletions(-) delete mode 100644 src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Factories/ConnectionObjectFactory.cs rename src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Factories/{DataManagerFacrory.cs => DataManagerFactory.cs} (87%) diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportDesignerView.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportDesignerView.cs index 4bfde85c6e..53f83fb0b9 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportDesignerView.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportDesignerView.cs @@ -19,7 +19,6 @@ using ICSharpCode.Reports.Addin.SecondaryViews; using ICSharpCode.Reports.Core; using ICSharpCode.Reports.Core.Exporter; using ICSharpCode.Reports.Core.Exporter.ExportRenderer; -using ICSharpCode.Reports.Core.Factories; using ICSharpCode.Reports.Core.Globals; using ICSharpCode.SharpDevelop; using ICSharpCode.SharpDevelop.Gui; diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GeneratePullDataReport.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GeneratePullDataReport.cs index 6b55be9386..6fe86b8a41 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GeneratePullDataReport.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/GeneratePullDataReport.cs @@ -32,13 +32,12 @@ namespace ICSharpCode.Reports.Addin.ReportWizard base.ReportModel.ReportSettings.ReportType = GlobalEnums.ReportType.DataReport; base.ReportModel.ReportSettings.DataModel = GlobalEnums.PushPullModel.PullData; base.GenerateReport(); - -// GlobalEnums.ReportLayout reportLayout = (GlobalEnums.ReportLayout)base.Properties.Get("ReportLayout"); -// AbstractLayout layout = LayoutFactory.CreateGenerator(reportLayout,base.ReportModel,base.ReportItemCollection); -// layout.CreateReportHeader(); -// layout.CreatePageHeader(); -// layout.CreateDataSection(base.ReportModel.DetailSection); -// layout.CreatePageFooter(); + GlobalEnums.ReportLayout reportLayout = ReportStructure.ReportLayout; + AbstractLayout layout = LayoutFactory.CreateGenerator(reportLayout,base.ReportModel,base.ReportItemCollection); + layout.CreateReportHeader(); + layout.CreatePageHeader(); + layout.CreateDataSection(base.ReportModel.DetailSection); + layout.CreatePageFooter(); base.WriteToXml(); } } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/ReportStructure.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/ReportStructure.cs index ce08a4ecb3..a3ab3187a8 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/ReportStructure.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/ReportStructure.cs @@ -25,11 +25,10 @@ namespace ICSharpCode.Reports.Addin.ReportWizard private ReportItemCollection reportItemCollection; private AvailableFieldsCollection availableFieldsCollection; - private ParameterCollection queryParameters; - public ReportStructure() { + SqlQueryParameters = new SqlParameterCollection(); } public ReportModel CreateAndFillReportModel () @@ -102,15 +101,15 @@ namespace ICSharpCode.Reports.Addin.ReportWizard public IDatabaseObjectBase IDatabaseObjectBase {get;set;} - public ParameterCollection SqlQueryParameters { - get { - if (this.queryParameters == null) { - this.queryParameters = new ParameterCollection(); - } - return queryParameters; - } - } - +// public ParameterCollection SqlQueryParameters { +// get { +// if (this.queryParameters == null) { +// this.queryParameters = new ParameterCollection(); +// } +// return queryParameters; +// } +// } + public SqlParameterCollection SqlQueryParameters {get;set;} #endregion @@ -166,9 +165,9 @@ namespace ICSharpCode.Reports.Addin.ReportWizard this.availableFieldsCollection.Clear(); this.availableFieldsCollection = null; } - if (this.queryParameters != null) { - this.queryParameters.Clear(); - this.queryParameters = null; + if (this.SqlQueryParameters != null) { + this.SqlQueryParameters.Clear(); + this.SqlQueryParameters = null; } } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/PullModelPanel.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/PullModelPanel.cs index 3b8fd97053..4ef3ca0c50 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/PullModelPanel.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/PullModelPanel.cs @@ -207,58 +207,52 @@ namespace ICSharpCode.Reports.Addin.ReportWizard } - private void databasesTree_SelectedItemChanged(object sender, System.Windows.RoutedPropertyChangedEventArgs e) - { - if (e.NewValue is IDatabaseObjectBase) - { - IDatabase parentDatabase = e.NewValue as IDatabase; + private void databasesTree_SelectedItemChanged(object sender, System.Windows.RoutedPropertyChangedEventArgs e) + { + if (e.NewValue is IDatabaseObjectBase) + { + IDatabase parentDatabase = e.NewValue as IDatabase; - if (parentDatabase == null) - { - IDatabaseObjectBase currentDatabaseObject = e.NewValue as IDatabaseObjectBase; - - while (parentDatabase == null) - { - if (currentDatabaseObject.Parent == null) - break; - else if (currentDatabaseObject.Parent is IDatabase) - { - parentDatabase = currentDatabaseObject.Parent as IDatabase; - break; - } - else - currentDatabaseObject = currentDatabaseObject.Parent; - } - } + if (parentDatabase == null) + { + IDatabaseObjectBase currentDatabaseObject = e.NewValue as IDatabaseObjectBase; + while (parentDatabase == null) + { + if (currentDatabaseObject.Parent == null) + break; + else if (currentDatabaseObject.Parent is IDatabase) + { + parentDatabase = currentDatabaseObject.Parent as IDatabase; + break; + } + else + currentDatabaseObject = currentDatabaseObject.Parent; + } + } - if (parentDatabase != null) - this.currentNode = parentDatabase; + if (parentDatabase != null) + this.currentNode = parentDatabase; - if (this.currentNode is IDatabase) - { - if (parentDatabase != null) - { -// this.connectionString = + parentDatabase.ConnectionString; -// this.connectionString = "Driver={SQLServer};" + "Provider=SQLOLEDB;" + parentDatabase.ConnectionString; -//var cs = new SqlConnection(); -//cs. - this.connectionString = "Provider=SQLOLEDB;" + parentDatabase.ConnectionString; -// this.connectionString = parentDatabase.ConnectionString; -this.txtSqlString.Enabled = true; + if (this.currentNode is IDatabase) + { + if (parentDatabase != null) + { + this.connectionString = parentDatabase.ConnectionString; + this.txtSqlString.Enabled = true; - if (this.firstDrag) - this.txtSqlString.Text = string.Empty; - - firstDrag = false; - } - } - else - { - this.EnableNext = false; - } - } - } + if (this.firstDrag) + this.txtSqlString.Text = string.Empty; + + firstDrag = false; + } + } + else + { + this.EnableNext = false; + } + } + } // check witch type of node we dragg private static NodeType CheckCurrentNode (IDatabaseObjectBase node) { diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/ResultPanel.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/ResultPanel.cs index 557efced0c..cdf772d0e9 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/ResultPanel.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/ResultPanel.cs @@ -37,7 +37,6 @@ namespace ICSharpCode.Reports.Addin.ReportWizard private System.Windows.Forms.TextBox txtSqlString; private ReportStructure reportStructure; private ReportModel model; - private ConnectionObject connectionObject; private DataSet resultDataSet; @@ -67,15 +66,14 @@ namespace ICSharpCode.Reports.Addin.ReportWizard this.txtSqlString.Text = model.ReportSettings.CommandText; - this.connectionObject = CreateConnection (); - var dataAccess = new SqlDataAccessStrategy(model.ReportSettings,connectionObject); + var dataAccess = new SqlDataAccessStrategy(model.ReportSettings); + switch (model.ReportSettings.CommandType) { case CommandType.Text: - dataSet = DatasetFromSqlText(dataAccess); - + dataSet = DataSetFromSqlText(dataAccess); break; case CommandType.StoredProcedure: - dataSet = DatasetFromStoredProcedure(dataAccess); + dataSet = DataSetFromStoredProcedure(dataAccess); break; case CommandType.TableDirect: MessageService.ShowError("TableDirect is not suppurted at the moment"); @@ -87,17 +85,6 @@ namespace ICSharpCode.Reports.Addin.ReportWizard } - ConnectionObject CreateConnection() - { - - var conobj = ConnectionObject.CreateInstance(this.model.ReportSettings.ConnectionString, - System.Data.Common.DbProviderFactories.GetFactory("System.Data.OleDb")); - conobj.QueryString = model.ReportSettings.CommandText; - return conobj; - - } - - string CreateTableName(ReportStructure reportStructure) { ITable t = reportStructure.IDatabaseObjectBase as ITable; @@ -114,7 +101,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard } - private DataSet DatasetFromSqlText(IDataAccessStrategy dataAccess) + private DataSet DataSetFromSqlText(IDataAccessStrategy dataAccess) { var dataSet = dataAccess.ReadData(); dataSet.Tables[0].TableName = CreateTableName (reportStructure); @@ -122,7 +109,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard } - private DataSet DatasetFromStoredProcedure(IDataAccessStrategy dataAccess) + private DataSet DataSetFromStoredProcedure(IDataAccessStrategy dataAccess) { DataSet dataSet = ResultPanel.CreateDataSet(); @@ -131,7 +118,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard if (paramCollection.Count > 0) { FillParameters(paramCollection); - reportStructure.SqlQueryParameters.AddRange(paramCollection); + reportStructure.SqlQueryParameters.AddRange(model.ReportSettings.SqlParameters); } dataSet = dataAccess.ReadData(); dataSet.Tables[0].TableName = procedure.Name; @@ -140,7 +127,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard - void FillParameters(ParameterCollection paramCollection) + void FillParameters(ParameterCollection paramCollection) { foreach (var param in paramCollection) { SqlParameter s = new SqlParameter() diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/ICSharpCode.Reports.Core.csproj b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/ICSharpCode.Reports.Core.csproj index 30d1593866..a819aaf373 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/ICSharpCode.Reports.Core.csproj +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/ICSharpCode.Reports.Core.csproj @@ -280,8 +280,7 @@ - - + diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/DataAccess/SqlDataAccess.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/DataAccess/SqlDataAccess.cs index 115135e345..997603bec6 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/DataAccess/SqlDataAccess.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/DataAccess/SqlDataAccess.cs @@ -3,9 +3,9 @@ using System; using System.Data; +using System.Data.SqlClient; using System.Globalization; -using ICSharpCode.Reports.Core.Factories; using ICSharpCode.Reports.Core.Project.Interfaces; namespace ICSharpCode.Reports.Core.DataAccess @@ -17,85 +17,43 @@ namespace ICSharpCode.Reports.Core.DataAccess public class SqlDataAccessStrategy:IDataAccessStrategy { - private ConnectionObject connectionObject; private ReportSettings reportSettings; - public SqlDataAccessStrategy(ReportSettings reportSettings,ConnectionObject connectionObject) + public SqlDataAccessStrategy(ReportSettings reportSettings) { if (reportSettings == null) { throw new ArgumentNullException("reportSettings"); } this.reportSettings = reportSettings; - if (connectionObject == null) { - this.connectionObject = ConnectionObjectFactory.BuildConnectionObject(reportSettings); - } else { - this.connectionObject = connectionObject; - } - } - - - public bool OpenConnection () - { - CheckConnection(); - return true; - } - - - private void CheckConnection() - { - if (this.connectionObject.Connection.State == ConnectionState.Open) { - this.connectionObject.Connection.Close(); - } - this.connectionObject.Connection.Open(); } - public DataSet ReadData() + public DataSet ReadData () { - try { - if (this.connectionObject.Connection.State == ConnectionState.Closed) { - this.connectionObject.Connection.Open(); - } - - IDbCommand command = this.connectionObject.Connection.CreateCommand(); + using (SqlConnection connection = new SqlConnection(this.reportSettings.ConnectionString)){ + connection.Open(); - if (String.IsNullOrEmpty(this.connectionObject.QueryString)) { + using (SqlCommand command = connection.CreateCommand()) { command.CommandText = reportSettings.CommandText; - } else { - command.CommandText = this.connectionObject.QueryString; - } - - command.CommandType = reportSettings.CommandType; - // We have to check if there are parameters for this Query, if so - // add them to the command - - BuildQueryParameters(command,reportSettings.SqlParameters); - IDbDataAdapter adapter = connectionObject.CreateDataAdapter(command); - DataSet ds = new DataSet(); - ds.Locale = CultureInfo.CurrentCulture; - adapter.Fill (ds); - return ds; - - } finally { - if (this.connectionObject.Connection.State == ConnectionState.Open) { - this.connectionObject.Connection.Close(); + command.CommandType = reportSettings.CommandType; + BuildQueryParameters(command,reportSettings.SqlParameters); + using (SqlDataAdapter adapter = new SqlDataAdapter(command)){ + DataSet ds = new DataSet(); + ds.Locale = CultureInfo.CurrentCulture; + adapter.Fill (ds); + return ds; + } } } } - private static void BuildQueryParameters (IDbCommand cmd, - SqlParameterCollection parameterCollection) - { + private static void BuildQueryParameters (IDbCommand cmd,SqlParameterCollection parameterCollection){ + if (parameterCollection != null && parameterCollection.Count > 0) { - - IDbDataParameter cmdPar = null; - foreach (SqlParameter par in parameterCollection) { - cmdPar = cmd.CreateParameter(); + var cmdPar = cmd.CreateParameter(); cmdPar.ParameterName = par.ParameterName; - Console.WriteLine(""); - Console.WriteLine("BuildQueryParameters {0} - {1}",par.ParameterName,par.ParameterValue); if (par.DataType != System.Data.DbType.Binary) { cmdPar.DbType = par.DataType; cmdPar.Value = par.ParameterValue; diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/DataManager.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/DataManager.cs index dd23df00f8..695df4c510 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/DataManager.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/DataManager.cs @@ -34,7 +34,7 @@ namespace ICSharpCode.Reports.Core private string dataMember; private IDataViewStrategy dataViewStrategy; private IDataNavigator dataNavigator; - private IDataAccessStrategy dataAccess; +// private IDataAccessStrategy dataAccess; #region Constructor - DataAccess @@ -55,15 +55,11 @@ namespace ICSharpCode.Reports.Core private DataManager (ReportSettings reportSettings,IDataAccessStrategy dataAccess) { - this.dataAccess = dataAccess; + DataSet dataSet = dataAccess.ReadData(); + this.Init(reportSettings,dataSet.Tables[0]); + this.dataViewStrategy = new TableStrategy((DataTable)this.dataSource, + reportSettings); - if (this.dataAccess.OpenConnection()) { - DataSet t = this.dataAccess.ReadData(); - - this.Init(reportSettings,t.Tables[0]); - this.dataViewStrategy = new TableStrategy((DataTable)this.dataSource, - reportSettings); - } } #endregion diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Factories/ConnectionObjectFactory.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Factories/ConnectionObjectFactory.cs deleted file mode 100644 index 325793115f..0000000000 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Factories/ConnectionObjectFactory.cs +++ /dev/null @@ -1,27 +0,0 @@ -// 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 System.Data.Common; - -namespace ICSharpCode.Reports.Core.Factories -{ - /// - /// This Class is a FactoryClass for - /// - public sealed class ConnectionObjectFactory - { - private ConnectionObjectFactory() - { - } - - public static ConnectionObject BuildConnectionObject (ReportSettings reportSettings) - { - if (reportSettings == null) { - throw new ArgumentNullException("reportSettings"); - } - return ConnectionObject.CreateInstance(reportSettings.ConnectionString, - DbProviderFactories.GetFactory("System.Data.OleDb")); - } - } -} diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Factories/DataManagerFacrory.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Factories/DataManagerFactory.cs similarity index 87% rename from src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Factories/DataManagerFacrory.cs rename to src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Factories/DataManagerFactory.cs index a0bda012cd..de74ed418a 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Factories/DataManagerFacrory.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Factories/DataManagerFactory.cs @@ -30,12 +30,13 @@ namespace ICSharpCode.Reports.Core connectionObject = reportParameters.ConnectionObject; } - if (connectionObject != null) { - accesStrategy = new SqlDataAccessStrategy(reportModel.ReportSettings,connectionObject); - } else { - accesStrategy = new SqlDataAccessStrategy(reportModel.ReportSettings,null); - - } +// if (connectionObject != null) { +// accesStrategy = new SqlDataAccessStrategy(reportModel.ReportSettings,connectionObject); +// } else { +// accesStrategy = new SqlDataAccessStrategy(reportModel.ReportSettings,null); +// +// } + accesStrategy = new SqlDataAccessStrategy(reportModel.ReportSettings); dataManager = DataManager.CreateInstance(reportModel.ReportSettings,accesStrategy); if (dataManager == null) { throw new MissingDataManagerException(); diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Factories/SectionFactory.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Factories/SectionFactory.cs index 32c92e54c5..671a4b8646 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Factories/SectionFactory.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Factories/SectionFactory.cs @@ -19,13 +19,13 @@ namespace ICSharpCode.Reports.Core { } - public static BaseSection Create(string name) { - if (String.IsNullOrEmpty(name)) { + public static BaseSection Create(string sectionName) { + if (String.IsNullOrEmpty(sectionName)) { String str = String.Format(System.Globalization.CultureInfo.CurrentCulture, - "<{0}>",name); + "<{0}>",sectionName); throw new UnknownItemException(str); } - return new BaseSection(name); + return new BaseSection(sectionName); } } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Interfaces/IDataAccessStrategy.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Interfaces/IDataAccessStrategy.cs index 7e5b15df33..cea9cf9800 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Interfaces/IDataAccessStrategy.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Interfaces/IDataAccessStrategy.cs @@ -11,7 +11,6 @@ namespace ICSharpCode.Reports.Core.Project.Interfaces /// public interface IDataAccessStrategy { - bool OpenConnection (); DataSet ReadData(); } } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/ReportEngine.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/ReportEngine.cs index 2410d019d0..dd3ef5b272 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/ReportEngine.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/ReportEngine.cs @@ -10,7 +10,6 @@ using System.Windows.Forms; using System.Xml; using ICSharpCode.Reports.Core.BaseClasses; using ICSharpCode.Reports.Core.Exporter; -using ICSharpCode.Reports.Core.Factories; using ICSharpCode.Reports.Core.Globals; using ICSharpCode.Reports.Core.Interfaces; From 44820a5724f03e070be506d02313d6e449206081 Mon Sep 17 00:00:00 2001 From: Peter Forstmeier Date: Mon, 1 Apr 2013 18:36:13 +0200 Subject: [PATCH 13/33] Update Query Parameter handling --- .../Project/Commands/PreviewCommands.cs | 2 +- .../Project/Commands/ViewCommands.cs | 16 ++++----- .../Project/ReportDesignerView.cs | 2 +- .../ReportManagers/StandartPreviewManager.cs | 2 +- .../Generators/AbstractReportGenerator.cs | 2 +- .../Project/ReportWizard/ReportStructure.cs | 9 +---- .../ReportWizard/WizardPanels/ResultPanel.cs | 33 ++++++++----------- .../SecondaryViews/WPFReportPreview.cs | 2 +- .../Project/BaseClasses/TypeHelpers.cs | 2 ++ 9 files changed, 29 insertions(+), 41 deletions(-) diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Commands/PreviewCommands.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Commands/PreviewCommands.cs index 94af309b46..51e51f8016 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Commands/PreviewCommands.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Commands/PreviewCommands.cs @@ -28,7 +28,7 @@ namespace ICSharpCode.Reports.Addin.Commands public override void Run() { - CollectParametersCommand cmd = new CollectParametersCommand(Model); + CollectParametersCommand cmd = new CollectParametersCommand(Model.ReportSettings); cmd.Run(); } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Commands/ViewCommands.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Commands/ViewCommands.cs index 7c9717c623..a414cfbd47 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Commands/ViewCommands.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Commands/ViewCommands.cs @@ -63,27 +63,27 @@ namespace ICSharpCode.Reports.Addin.Commands public class CollectParametersCommand :AbstractCommand { - ReportModel model; + ReportSettings reportSettings; - public CollectParametersCommand (ReportModel model) + public CollectParametersCommand (ReportSettings reportSettings) { - if (model == null) { - throw new ArgumentNullException("model"); + if (reportSettings == null) { + throw new ArgumentNullException("ReportSettings"); } - this.model = model; + this.reportSettings = reportSettings; } public override void Run() { - if (model.ReportSettings.SqlParameters.Count > 0) { - using (ParameterDialog paramDialog = new ParameterDialog(model.ReportSettings.SqlParameters)) + if (reportSettings.SqlParameters.Count > 0) { + using (ParameterDialog paramDialog = new ParameterDialog(reportSettings.SqlParameters)) { paramDialog.ShowDialog(); if (paramDialog.DialogResult == System.Windows.Forms.DialogResult.OK) { foreach (SqlParameter bp in paramDialog.SqlParameterCollection) { - var p = model.ReportSettings.SqlParameters.Find (bp.ParameterName); + var p = reportSettings.SqlParameters.Find (bp.ParameterName); p.ParameterValue = bp.ParameterValue; } } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportDesignerView.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportDesignerView.cs index 53f83fb0b9..d56c8500f8 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportDesignerView.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportDesignerView.cs @@ -561,7 +561,7 @@ namespace ICSharpCode.Reports.Addin Console.WriteLine(""); ReportModel model = loader.CreateRenderableModel(); IReportCreator reportCreator = null; - var paramCmd = new CollectParametersCommand(model); + var paramCmd = new CollectParametersCommand(model.ReportSettings); paramCmd.Run(); switch (model.DataModel) { case GlobalEnums.PushPullModel.FormSheet : diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportManagers/StandartPreviewManager.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportManagers/StandartPreviewManager.cs index 3f82e9e7eb..f47724b582 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportManagers/StandartPreviewManager.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportManagers/StandartPreviewManager.cs @@ -64,7 +64,7 @@ namespace ICSharpCode.Reports.Addin private AbstractRenderer StandartReportRenderer(ReportModel model) { - ICSharpCode.Reports.Addin.Commands.CollectParametersCommand cmd = new ICSharpCode.Reports.Addin.Commands.CollectParametersCommand(model); + ICSharpCode.Reports.Addin.Commands.CollectParametersCommand cmd = new ICSharpCode.Reports.Addin.Commands.CollectParametersCommand(model.ReportSettings); cmd.Run(); return base.SetupStandardRenderer (model,null); } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/AbstractReportGenerator.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/AbstractReportGenerator.cs index ad7802e22c..ea921b2824 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/AbstractReportGenerator.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/Generators/AbstractReportGenerator.cs @@ -63,7 +63,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard this.GroupColumnCollection.AddRange(ReportModel.ReportSettings.GroupColumnsCollection); } if (ReportStructure.SqlQueryParameters.Count > 0) { - ReportModel.ReportSettings.ParameterCollection.AddRange(ReportStructure.SqlQueryParameters); + ReportModel.ReportSettings.SqlParameters.AddRange(ReportStructure.SqlQueryParameters); } } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/ReportStructure.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/ReportStructure.cs index a3ab3187a8..26fcab164b 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/ReportStructure.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/ReportStructure.cs @@ -101,14 +101,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard public IDatabaseObjectBase IDatabaseObjectBase {get;set;} -// public ParameterCollection SqlQueryParameters { -// get { -// if (this.queryParameters == null) { -// this.queryParameters = new ParameterCollection(); -// } -// return queryParameters; -// } -// } + public SqlParameterCollection SqlQueryParameters {get;set;} #endregion diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/ResultPanel.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/ResultPanel.cs index cdf772d0e9..ae32627c38 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/ResultPanel.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/ResultPanel.cs @@ -114,11 +114,13 @@ namespace ICSharpCode.Reports.Addin.ReportWizard DataSet dataSet = ResultPanel.CreateDataSet(); IProcedure procedure = reportStructure.IDatabaseObjectBase as IProcedure; - var paramCollection = CheckParameters(procedure); + var sqlParamCollection = CreateSqlParameters(procedure); - if (paramCollection.Count > 0) { - FillParameters(paramCollection); - reportStructure.SqlQueryParameters.AddRange(model.ReportSettings.SqlParameters); + if (sqlParamCollection.Count > 0) { + reportStructure.SqlQueryParameters.AddRange(sqlParamCollection); + model.ReportSettings.SqlParameters.AddRange(sqlParamCollection); + CollectParamValues(model.ReportSettings); + } dataSet = dataAccess.ReadData(); dataSet.Tables[0].TableName = procedure.Name; @@ -126,27 +128,18 @@ namespace ICSharpCode.Reports.Addin.ReportWizard } - - void FillParameters(ParameterCollection paramCollection) - { - foreach (var param in paramCollection) { - SqlParameter s = new SqlParameter() - { - ParameterName = param.ParameterName, - }; - model.ReportSettings.SqlParameters.Add(s); - } - CollectParametersCommand p = new CollectParametersCommand(model); + void CollectParamValues(ReportSettings reportSettings){ + + CollectParametersCommand p = new CollectParametersCommand(reportSettings); p.Run(); } - ParameterCollection CheckParameters(IProcedure procedure) + SqlParameterCollection CreateSqlParameters(IProcedure procedure) { - ParameterCollection col = new ParameterCollection(); + SqlParameterCollection col = new SqlParameterCollection(); SqlParameter par = null; foreach (var element in procedure.Items) { - DbType dbType = TypeHelpers.DbTypeFromStringRepresenation(element.DataType); par = new SqlParameter(element.Name,dbType,"",ParameterDirection.Input); @@ -154,9 +147,9 @@ namespace ICSharpCode.Reports.Addin.ReportWizard par.ParameterDirection = ParameterDirection.Input; } else if (element.ParameterMode == ParameterMode. InOut){ - par.ParameterDirection = ParameterDirection.InputOutput; + par.ParameterDirection = ParameterDirection.InputOutput; } - col.Add(par); + col.Add(par); } return col; } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/WPFReportPreview.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/WPFReportPreview.cs index af56f0f73d..74be8e31de 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/WPFReportPreview.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/WPFReportPreview.cs @@ -43,7 +43,7 @@ namespace ICSharpCode.Reports.Addin.SecondaryViews { Pages.Clear(); ReportModel model = designerLoader.CreateRenderableModel(); - var collectCmd = new CollectParametersCommand(model); + var collectCmd = new CollectParametersCommand(model.ReportSettings); collectCmd.Run(); switch (model.DataModel) { diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/TypeHelpers.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/TypeHelpers.cs index 4327a5cd43..4668ff3038 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/TypeHelpers.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/TypeHelpers.cs @@ -22,6 +22,8 @@ namespace ICSharpCode.Reports.Core.Project.BaseClasses { switch (type.ToLower()) { + case "int": + return DbType.Int16; case "int16": return DbType.Int16; case "int32": From 6d7e208f313dae329ead37d02eaff2d8b348b3f4 Mon Sep 17 00:00:00 2001 From: Peter Forstmeier Date: Tue, 2 Apr 2013 20:09:48 +0200 Subject: [PATCH 14/33] Re-Add Reporting + Reporting.Tests --- SharpDevelop.Tests.sln | 22 ++--- .../ICSharpCode.Reporting.csproj | 22 +++-- .../Src}/Configuration/AssemblyInfo.cs | 2 +- .../Src/Globals/GlobalEnums.cs | 0 .../Src/Globals/GlobalValues.cs | 0 .../Src/Interfaces/IReportCreator.cs | 0 .../Src/Interfaces/IReportModel.cs | 0 .../Src/Items/BaseSection.cs | 0 .../Src/Items/ReportModel.cs | 0 .../Src/Items/ReportSettings.cs | 0 .../Src/ReportingFactory.cs | 2 - .../Src/Xml/ModelLoader.cs | 2 +- .../Src/Xml/MycroParser.cs | 2 +- .../ICSharpCode.Reporting.Test.csproj | 81 +++++++++++++++++++ .../src/Properties/AssemblyInfo.cs | 31 +++++++ 15 files changed, 141 insertions(+), 23 deletions(-) rename src/AddIns/Misc/Reporting/{ => ICSharpCode.Reporting}/ICSharpCode.Reporting.csproj (76%) rename src/AddIns/Misc/Reporting/{ => ICSharpCode.Reporting/Src}/Configuration/AssemblyInfo.cs (91%) rename src/AddIns/Misc/Reporting/{ => ICSharpCode.Reporting}/Src/Globals/GlobalEnums.cs (100%) rename src/AddIns/Misc/Reporting/{ => ICSharpCode.Reporting}/Src/Globals/GlobalValues.cs (100%) rename src/AddIns/Misc/Reporting/{ => ICSharpCode.Reporting}/Src/Interfaces/IReportCreator.cs (100%) rename src/AddIns/Misc/Reporting/{ => ICSharpCode.Reporting}/Src/Interfaces/IReportModel.cs (100%) rename src/AddIns/Misc/Reporting/{ => ICSharpCode.Reporting}/Src/Items/BaseSection.cs (100%) rename src/AddIns/Misc/Reporting/{ => ICSharpCode.Reporting}/Src/Items/ReportModel.cs (100%) rename src/AddIns/Misc/Reporting/{ => ICSharpCode.Reporting}/Src/Items/ReportSettings.cs (100%) rename src/AddIns/Misc/Reporting/{ => ICSharpCode.Reporting}/Src/ReportingFactory.cs (94%) rename src/AddIns/Misc/Reporting/{ => ICSharpCode.Reporting}/Src/Xml/ModelLoader.cs (94%) rename src/AddIns/Misc/Reporting/{ => ICSharpCode.Reporting}/Src/Xml/MycroParser.cs (99%) create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/ICSharpCode.Reporting.Test.csproj create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/Properties/AssemblyInfo.cs diff --git a/SharpDevelop.Tests.sln b/SharpDevelop.Tests.sln index b0f3d303b9..961f092f7c 100644 --- a/SharpDevelop.Tests.sln +++ b/SharpDevelop.Tests.sln @@ -147,9 +147,9 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Reports.Addin", EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Reports.Addin.Test", "src\AddIns\Misc\Reports\ICSharpCode.Reports.Addin\Test\ICSharpCode.Reports.Addin.Test.csproj", "{2B232C7E-CFB6-4B73-A1B8-134A8A2ED4F7}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Reporting", "src\AddIns\Misc\Reporting\ICSharpCode.Reporting.csproj", "{40CA84D4-ACFC-4646-9CDD-B87262D34093}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Reporting", "src\AddIns\Misc\Reporting\ICSharpCode.Reporting\ICSharpCode.Reporting.csproj", "{40CA84D4-ACFC-4646-9CDD-B87262D34093}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Reporting.Tests", "src\AddIns\Misc\ICSharpCode.Reporting.Tests\ICSharpCode.Reporting.Tests.csproj", "{D38DE254-A132-4E43-9BF0-21BA45564E9D}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Reporting.Test", "src\AddIns\Misc\Reporting\ICSharpCode.Reporting\Test\ICSharpCode.Reporting.Test\ICSharpCode.Reporting.Test.csproj", "{97CA9CE5-B966-48DF-BB59-F00FFC534B1F}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Display Bindings", "Display Bindings", "{11BF9245-88A3-4A0A-9A8A-EC9D98036B0F}" ProjectSection(SolutionItems) = postProject @@ -899,14 +899,14 @@ Global {40CA84D4-ACFC-4646-9CDD-B87262D34093}.Release|Any CPU.ActiveCfg = Release|Any CPU {40CA84D4-ACFC-4646-9CDD-B87262D34093}.Release|x86.Build.0 = Release|Any CPU {40CA84D4-ACFC-4646-9CDD-B87262D34093}.Release|x86.ActiveCfg = Release|Any CPU - {D38DE254-A132-4E43-9BF0-21BA45564E9D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D38DE254-A132-4E43-9BF0-21BA45564E9D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D38DE254-A132-4E43-9BF0-21BA45564E9D}.Debug|x86.Build.0 = Debug|Any CPU - {D38DE254-A132-4E43-9BF0-21BA45564E9D}.Debug|x86.ActiveCfg = Debug|Any CPU - {D38DE254-A132-4E43-9BF0-21BA45564E9D}.Release|Any CPU.Build.0 = Release|Any CPU - {D38DE254-A132-4E43-9BF0-21BA45564E9D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D38DE254-A132-4E43-9BF0-21BA45564E9D}.Release|x86.Build.0 = Release|Any CPU - {D38DE254-A132-4E43-9BF0-21BA45564E9D}.Release|x86.ActiveCfg = Release|Any CPU + {97CA9CE5-B966-48DF-BB59-F00FFC534B1F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {97CA9CE5-B966-48DF-BB59-F00FFC534B1F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {97CA9CE5-B966-48DF-BB59-F00FFC534B1F}.Debug|x86.Build.0 = Debug|Any CPU + {97CA9CE5-B966-48DF-BB59-F00FFC534B1F}.Debug|x86.ActiveCfg = Debug|Any CPU + {97CA9CE5-B966-48DF-BB59-F00FFC534B1F}.Release|Any CPU.Build.0 = Release|Any CPU + {97CA9CE5-B966-48DF-BB59-F00FFC534B1F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {97CA9CE5-B966-48DF-BB59-F00FFC534B1F}.Release|x86.Build.0 = Release|Any CPU + {97CA9CE5-B966-48DF-BB59-F00FFC534B1F}.Release|x86.ActiveCfg = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -971,7 +971,7 @@ Global {35D002D7-C78B-44FB-92AA-104BEB431678} = {F3662720-9EA2-4591-BBC6-97361DCE50A9} {2B232C7E-CFB6-4B73-A1B8-134A8A2ED4F7} = {F3662720-9EA2-4591-BBC6-97361DCE50A9} {40CA84D4-ACFC-4646-9CDD-B87262D34093} = {F3662720-9EA2-4591-BBC6-97361DCE50A9} - {D38DE254-A132-4E43-9BF0-21BA45564E9D} = {F3662720-9EA2-4591-BBC6-97361DCE50A9} + {97CA9CE5-B966-48DF-BB59-F00FFC534B1F} = {F3662720-9EA2-4591-BBC6-97361DCE50A9} {6B1CFE35-DA17-4DEB-9C6E-227E5E251DA0} = {DEFC8584-BEC3-4921-BD0F-40482E450B7B} {0008FCE9-9EB4-4E2E-979B-553278E5BBA6} = {DEFC8584-BEC3-4921-BD0F-40482E450B7B} {AE4AB0FA-6087-4480-AF37-0FA1452B3DA1} = {485A4CCF-55CF-49F4-BD6D-A22B788C67DA} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.csproj b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj similarity index 76% rename from src/AddIns/Misc/Reporting/ICSharpCode.Reporting.csproj rename to src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj index 4377114374..c19b44e072 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.csproj +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj @@ -11,17 +11,29 @@ Properties + False + False + False + False + obj\$(Configuration)\ + 4 AnyCPU + 4194304 + False + False + Auto + 4096 - bin\Debug\ + ..\..\..\..\..\AddIns\Misc\SharpDevelopReporting\ True Full False - True + False DEBUG;TRACE + obj\ bin\Release\ @@ -32,9 +44,6 @@ TRACE - - $(SharpDevelopBinPath)\Tools\NUnit\NUnit.Framework.dll - 3.5 @@ -46,7 +55,7 @@ - + @@ -59,7 +68,6 @@ - diff --git a/src/AddIns/Misc/Reporting/Configuration/AssemblyInfo.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Configuration/AssemblyInfo.cs similarity index 91% rename from src/AddIns/Misc/Reporting/Configuration/AssemblyInfo.cs rename to src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Configuration/AssemblyInfo.cs index 92c27daa12..46153fcac3 100644 --- a/src/AddIns/Misc/Reporting/Configuration/AssemblyInfo.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Configuration/AssemblyInfo.cs @@ -10,4 +10,4 @@ using System.Security; [assembly: SecurityRules(SecurityRuleSet.Level1)] -[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ICSharpCode.Reporting.Tests")] \ No newline at end of file +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ICSharpCode.Reporting.Test")] \ No newline at end of file diff --git a/src/AddIns/Misc/Reporting/Src/Globals/GlobalEnums.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Globals/GlobalEnums.cs similarity index 100% rename from src/AddIns/Misc/Reporting/Src/Globals/GlobalEnums.cs rename to src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Globals/GlobalEnums.cs diff --git a/src/AddIns/Misc/Reporting/Src/Globals/GlobalValues.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Globals/GlobalValues.cs similarity index 100% rename from src/AddIns/Misc/Reporting/Src/Globals/GlobalValues.cs rename to src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Globals/GlobalValues.cs diff --git a/src/AddIns/Misc/Reporting/Src/Interfaces/IReportCreator.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IReportCreator.cs similarity index 100% rename from src/AddIns/Misc/Reporting/Src/Interfaces/IReportCreator.cs rename to src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IReportCreator.cs diff --git a/src/AddIns/Misc/Reporting/Src/Interfaces/IReportModel.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IReportModel.cs similarity index 100% rename from src/AddIns/Misc/Reporting/Src/Interfaces/IReportModel.cs rename to src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IReportModel.cs diff --git a/src/AddIns/Misc/Reporting/Src/Items/BaseSection.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseSection.cs similarity index 100% rename from src/AddIns/Misc/Reporting/Src/Items/BaseSection.cs rename to src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseSection.cs diff --git a/src/AddIns/Misc/Reporting/Src/Items/ReportModel.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportModel.cs similarity index 100% rename from src/AddIns/Misc/Reporting/Src/Items/ReportModel.cs rename to src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportModel.cs diff --git a/src/AddIns/Misc/Reporting/Src/Items/ReportSettings.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportSettings.cs similarity index 100% rename from src/AddIns/Misc/Reporting/Src/Items/ReportSettings.cs rename to src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportSettings.cs diff --git a/src/AddIns/Misc/Reporting/Src/ReportingFactory.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ReportingFactory.cs similarity index 94% rename from src/AddIns/Misc/Reporting/Src/ReportingFactory.cs rename to src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ReportingFactory.cs index deddcff896..2d2824995b 100644 --- a/src/AddIns/Misc/Reporting/Src/ReportingFactory.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ReportingFactory.cs @@ -49,7 +49,6 @@ namespace ICSharpCode.Reporting internal ReportModel LoadReportModel (Stream stream) { - Console.WriteLine("ReportEngine:LoadReportModel_2"); var doc = new XmlDocument(); doc.Load(stream); var rm = LoadModel(doc); @@ -58,7 +57,6 @@ namespace ICSharpCode.Reporting static ReportModel LoadModel(XmlDocument doc) { - Console.WriteLine("ReportEngine:LoadModel"); var loader = new ModelLoader(); object root = loader.Load(doc.DocumentElement); diff --git a/src/AddIns/Misc/Reporting/Src/Xml/ModelLoader.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Xml/ModelLoader.cs similarity index 94% rename from src/AddIns/Misc/Reporting/Src/Xml/ModelLoader.cs rename to src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Xml/ModelLoader.cs index be14882f74..e737d2be97 100644 --- a/src/AddIns/Misc/Reporting/Src/Xml/ModelLoader.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Xml/ModelLoader.cs @@ -14,7 +14,7 @@ namespace ICSharpCode.Reporting.Xml /// /// Description of ModelLoader. /// - public class ModelLoader: MycroParser + internal class ModelLoader: MycroParser { protected override Type GetTypeByName(string ns, string name) diff --git a/src/AddIns/Misc/Reporting/Src/Xml/MycroParser.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Xml/MycroParser.cs similarity index 99% rename from src/AddIns/Misc/Reporting/Src/Xml/MycroParser.cs rename to src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Xml/MycroParser.cs index 078f64a880..aa469d6db7 100644 --- a/src/AddIns/Misc/Reporting/Src/Xml/MycroParser.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Xml/MycroParser.cs @@ -31,7 +31,7 @@ namespace ICSharpCode.Reporting.Xml /// /// See http://www.codeproject.com/dotnet/MycroXaml.asp /// - public abstract class MycroParser + internal abstract class MycroParser { public object Load(XmlElement element) { diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/ICSharpCode.Reporting.Test.csproj b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/ICSharpCode.Reporting.Test.csproj new file mode 100644 index 0000000000..5975816bf3 --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/ICSharpCode.Reporting.Test.csproj @@ -0,0 +1,81 @@ + + + + {97CA9CE5-B966-48DF-BB59-F00FFC534B1F} + Debug + AnyCPU + Library + ICSharpCode.Reporting.Test + ICSharpCode.Reporting.Test + v4.5 + + + Properties + False + False + False + False + obj\$(Configuration)\ + 4 + + + AnyCPU + 4194304 + False + False + Auto + 4096 + + + ..\..\..\..\..\..\..\bin\UnitTests\ + True + Full + False + True + DEBUG;TRACE + obj\ + + + bin\Release\ + False + None + True + False + TRACE + + + + ..\..\..\..\..\..\Tools\NUnit\nunit.framework.dll + + + + 3.5 + + + + + 3.5 + + + + + + + + + + + + + + + + {40CA84D4-ACFC-4646-9CDD-B87262D34093} + ICSharpCode.Reporting + + + + + + + \ No newline at end of file diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/Properties/AssemblyInfo.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/Properties/AssemblyInfo.cs new file mode 100644 index 0000000000..faf3de5584 --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/Properties/AssemblyInfo.cs @@ -0,0 +1,31 @@ +#region Using directives + +using System; +using System.Reflection; +using System.Runtime.InteropServices; + +#endregion + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("ICSharpCode.Reporting.Test")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("ICSharpCode.Reporting.Test")] +[assembly: AssemblyCopyright("Copyright 2013")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// This sets the default COM visibility of types in the assembly to invisible. +// If you need to expose a type to COM, use [ComVisible(true)] on that type. +[assembly: ComVisible(false)] + +// The assembly version has following format : +// +// Major.Minor.Build.Revision +// +// You can specify all the values or you can use the default the Revision and +// Build Numbers by using the '*' as shown below: +[assembly: AssemblyVersion("1.0.*")] From a0edef754cf18dce8c7a098afdc90f0731b4fd7a Mon Sep 17 00:00:00 2001 From: Peter Forstmeier Date: Thu, 4 Apr 2013 20:49:14 +0200 Subject: [PATCH 15/33] FormPageBuilder.cs including test's --- .../ICSharpCode.Reporting.csproj | 5 ++ .../Src/BaseClasses/Page.cs | 27 ++++++++ .../Src/Interfaces/IReportCreator.cs | 3 + .../Src/Items/ReportModel.cs | 2 +- .../Src/PageBuilder/BasePageBuilder.cs | 55 ++++++++++++++++ .../Src/PageBuilder/FormPageBuilder.cs | 49 ++++++++++++++ .../Src/ReportingFactory.cs | 6 +- .../ICSharpCode.Reporting.Test.csproj | 3 + .../src/PageBuilder/PageBuilderFixture.cs | 65 +++++++++++++++++++ .../src/TestHelper.cs | 29 +++++++++ .../IConnectionDataManagerFixture.cs | 20 +++--- 11 files changed, 251 insertions(+), 13 deletions(-) create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/Page.cs create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/BasePageBuilder.cs create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/FormPageBuilder.cs create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/PageBuilderFixture.cs create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/TestHelper.cs diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj index c19b44e072..581d8e79cd 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj @@ -55,6 +55,7 @@ + @@ -63,6 +64,8 @@ + + @@ -73,6 +76,8 @@ + + diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/Page.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/Page.cs new file mode 100644 index 0000000000..af07340394 --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/Page.cs @@ -0,0 +1,27 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 03.04.2013 + * Time: 20:35 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; + +namespace ICSharpCode.Reporting.BaseClasses +{ + /// + /// Description of Page. + /// + /// + public interface IPage{ + + } + + public class Page:IPage + { + public Page() + { + } + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IReportCreator.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IReportCreator.cs index 822ab46345..cec2a1ee24 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IReportCreator.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IReportCreator.cs @@ -7,6 +7,8 @@ * To change this template use Tools | Options | Coding | Edit Standard Headers. */ using System; +using System.Collections.Generic; +using ICSharpCode.Reporting.BaseClasses; namespace ICSharpCode.Reporting.Interfaces { @@ -16,6 +18,7 @@ namespace ICSharpCode.Reporting.Interfaces public interface IReportCreator { void BuildExportList (); + List Pages {get;} // PagesCollection Pages{get;} // event EventHandler PageCreated; // event EventHandler SectionRendering; diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportModel.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportModel.cs index a04122b842..ab27724d83 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportModel.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportModel.cs @@ -15,7 +15,7 @@ namespace ICSharpCode.Reporting.Items /// /// Description of ReportModel. /// - public class ReportModel :IReportModel + internal class ReportModel :IReportModel { // ReportSectionCollection sectionCollection; diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/BasePageBuilder.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/BasePageBuilder.cs new file mode 100644 index 0000000000..cff877f575 --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/BasePageBuilder.cs @@ -0,0 +1,55 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 03.04.2013 + * Time: 20:32 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using System.Collections.Generic; +using ICSharpCode.Reporting.BaseClasses; +using ICSharpCode.Reporting.Interfaces; + +namespace ICSharpCode.Reporting.PageBuilder +{ + /// + /// Description of BasePageBuilder. + /// + public class BasePageBuilder:IReportCreator + { + private readonly object addLock = new object(); + + public BasePageBuilder(IReportModel reportModel) + { + if (reportModel == null) { + throw new ArgumentNullException("reportModel"); + } + ReportModel = reportModel; + Pages = new List(); + } + + + protected IPage InitNewPage(){ + return new Page(); + } + + + protected virtual void AddPage(IPage page) { + Pages.Add(page); + } + + + public virtual void BuildExportList() + { + this.Pages.Clear(); + } + + protected IReportModel ReportModel {get; private set;} + + public IPage CurrentPage {get; protected set;} + + public List Pages {get; private set;} + + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/FormPageBuilder.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/FormPageBuilder.cs new file mode 100644 index 0000000000..142f0e2358 --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/FormPageBuilder.cs @@ -0,0 +1,49 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 03.04.2013 + * Time: 20:21 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using ICSharpCode.Reporting.BaseClasses; +using ICSharpCode.Reporting.Interfaces; + +namespace ICSharpCode.Reporting.PageBuilder +{ + /// + /// Description of FormPageBuilder. + /// + public class FormPageBuilder:BasePageBuilder + { + + private readonly object addLock = new object(); + + public FormPageBuilder(IReportModel reportModel):base(reportModel) + { + + } + + + public override void BuildExportList() + { + base.BuildExportList(); + WritePages (); + } + + + void WritePages() + { + CurrentPage = base.InitNewPage(); + this.BuildReportHeader(); + base.AddPage(CurrentPage); + } + + void BuildReportHeader() + { + + } + + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ReportingFactory.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ReportingFactory.cs index 2d2824995b..775878976c 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ReportingFactory.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ReportingFactory.cs @@ -15,6 +15,7 @@ using System.Xml; using ICSharpCode.Reporting.Globals; using ICSharpCode.Reporting.Interfaces; using ICSharpCode.Reporting.Items; +using ICSharpCode.Reporting.PageBuilder; using ICSharpCode.Reporting.Xml; namespace ICSharpCode.Reporting @@ -29,12 +30,13 @@ namespace ICSharpCode.Reporting } - public IReportCreator CreatePageBuilder (Stream stream) + public IReportCreator ReportCreator (Stream stream) { IReportModel reportModel = LoadReportModel (stream); IReportCreator builder = null; if (reportModel.ReportSettings.DataModel == GlobalEnums.PushPullModel.FormSheet) { // builder = FormPageBuilder.CreateInstance(reportModel); + builder = new FormPageBuilder(reportModel); Console.WriteLine("aaaaaaaaaaaaaaaaa"); } // else { @@ -43,7 +45,7 @@ namespace ICSharpCode.Reporting // builder = DataPageBuilder.CreateInstance(reportModel, dataMan); // } return builder; - return null; +// return null; } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/ICSharpCode.Reporting.Test.csproj b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/ICSharpCode.Reporting.Test.csproj index 5975816bf3..1af20959b2 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/ICSharpCode.Reporting.Test.csproj +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/ICSharpCode.Reporting.Test.csproj @@ -61,11 +61,14 @@ + + + diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/PageBuilderFixture.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/PageBuilderFixture.cs new file mode 100644 index 0000000000..77603b2970 --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/PageBuilderFixture.cs @@ -0,0 +1,65 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 03.04.2013 + * Time: 20:09 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using System.IO; +using System.Reflection; + +using ICSharpCode.Reporting.BaseClasses; +using ICSharpCode.Reporting.PageBuilder; +using NUnit.Framework; + +namespace ICSharpCode.Reporting.Test.PageBuilder +{ + [TestFixture] + public class PageBuilderFixture + { + private Stream stream; + + [Test] + public void CanCreateFormsPageBuilder() + { + var reportingFactory = new ReportingFactory(); + var reportCreator = reportingFactory.ReportCreator(stream); + Assert.IsNotNull(reportCreator); + } + + + [Test] + public void PagesCountIsZero () { + var reportingFactory = new ReportingFactory(); + var reportCreator = reportingFactory.ReportCreator(stream); + Assert.That(reportCreator.Pages.Count,Is.EqualTo(0)); + } + + + [Test] + public void BuildExportPagesCountIsOne() { + var reportingFactory = new ReportingFactory(); + var reportCreator = reportingFactory.ReportCreator(stream); + reportCreator.BuildExportList(); + Assert.That(reportCreator.Pages.Count,Is.EqualTo(1)); + } + + + [Test] + public void CurrentPageIsSet() { + var reportingFactory = new ReportingFactory(); + var reportCreator = (FormPageBuilder)reportingFactory.ReportCreator(stream); + reportCreator.BuildExportList(); + Assert.That(reportCreator.CurrentPage,Is.Not.Null); + } + + [SetUp] + public void LoadFromStream() + { + System.Reflection.Assembly asm = Assembly.GetExecutingAssembly(); + stream = asm.GetManifestResourceStream(TestHelper.PlainReportFileName); + } + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/TestHelper.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/TestHelper.cs new file mode 100644 index 0000000000..46e4baf68d --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/TestHelper.cs @@ -0,0 +1,29 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 03.04.2013 + * Time: 20:10 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; + +namespace ICSharpCode.Reporting.Test +{ + /// + /// Description of TestHelper. + /// + public class TestHelper + { + private const string nameSpace = "ICSharpCode.Reporting.Test.src.TestReports."; + private const string plainReportName = "PlainModel.srd"; + + public TestHelper() + { + } + + public static string PlainReportFileName{ + get{return nameSpace + plainReportName;} + } + } +} diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/DataManager/IConnectionDataManagerFixture.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/DataManager/IConnectionDataManagerFixture.cs index 60ce35f4f2..647e5e5640 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/DataManager/IConnectionDataManagerFixture.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/DataManager/IConnectionDataManagerFixture.cs @@ -99,16 +99,16 @@ namespace ICSharpCode.Reports.Core.Test.DataManager } - [Test] - [ExpectedException(typeof(ArgumentException))] - public void ConstructorBadConnectionString () - { - - ReportSettings rs = new ReportSettings(); - rs.ConnectionString = "bad"; - IDataAccessStrategy da = new MockDataAccessStrategy (rs); - IDataManager dm = ICSharpCode.Reports.Core.DataManager.CreateInstance(rs,da); - } +// [Test] +// [ExpectedException(typeof(ArgumentException))] +// public void ConstructorBadConnectionString () +// { +// +// ReportSettings rs = new ReportSettings(); +// rs.ConnectionString = "bad"; +// IDataAccessStrategy da = new MockDataAccessStrategy (rs); +// IDataManager dm = ICSharpCode.Reports.Core.DataManager.CreateInstance(rs,da); +// } [Test] public void CheckDataMember() From 4a4ef4bfcbddefdd7939cca6b438ab756cb3374f Mon Sep 17 00:00:00 2001 From: Peter Forstmeier Date: Sat, 6 Apr 2013 20:25:50 +0200 Subject: [PATCH 16/33] Sections in ReportModel.cs --- .../ICSharpCode.Reporting.csproj | 5 ++ .../Src/BaseClasses/Page.cs | 23 +++++++- .../Src/BaseClasses/PageInfo.cs | 59 +++++++++++++++++++ .../Src/Factories/SectionFactory.cs | 30 ++++++++++ .../Src/Globals/GlobalEnums.cs | 14 ++++- .../Src/Globals/GlobalValues.cs | 6 ++ .../Src/Interfaces/IReportCreator.cs | 1 + .../Src/Interfaces/IReportItem.cs | 29 +++++++++ .../Src/Interfaces/IReportModel.cs | 6 +- .../Src/Items/BaseSection.cs | 11 +++- .../Src/Items/ReportItem.cs | 27 +++++++++ .../Src/Items/ReportModel.cs | 43 ++++++-------- .../Src/Items/ReportSettings.cs | 24 +++++++- .../Src/PageBuilder/BasePageBuilder.cs | 16 ++++- .../Src/ReportingFactory.cs | 2 - .../src/PageBuilder/PageBuilderFixture.cs | 49 +++++++++++---- 16 files changed, 299 insertions(+), 46 deletions(-) create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/PageInfo.cs create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Factories/SectionFactory.cs create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IReportItem.cs create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportItem.cs diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj index 581d8e79cd..de04539749 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj @@ -56,12 +56,16 @@ + + + + @@ -77,6 +81,7 @@ + diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/Page.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/Page.cs index af07340394..7fb4437ead 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/Page.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/Page.cs @@ -14,14 +14,33 @@ namespace ICSharpCode.Reporting.BaseClasses /// Description of Page. /// /// + + + + + public interface IPage{ - + bool IsFirstPage {get;set;} + IPageInfo PageInfo {get;} } + + + public class Page:IPage { - public Page() + public Page(IPageInfo pageInfo) { + if (pageInfo == null) { + throw new ArgumentNullException("pageInfo"); + } + PageInfo = pageInfo; } + + public bool IsFirstPage {get;set;} + + + public IPageInfo PageInfo {get;private set;} + } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/PageInfo.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/PageInfo.cs new file mode 100644 index 0000000000..26fcb16930 --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/PageInfo.cs @@ -0,0 +1,59 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 05.04.2013 + * Time: 19:50 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; + +namespace ICSharpCode.Reporting.BaseClasses +{ + /// + /// Description of PageInfo. + /// + /// + public interface IPageInfo + { + int PageNumber {get;set;} + int TotalPages {get;set;} + string ReportName {get;set;} + string ReportFileName {get;set;} + string ReportFolder {get;} + DateTime ExecutionTime {get;set;} +// System.Collections.Hashtable ParameterHash {get;set;} +// IDataNavigator IDataNavigator {get;set;} + } + + + public class PageInfo:IPageInfo + { + public PageInfo() + { + } + + public int PageNumber {get;set;} + + + + public int TotalPages {get;set;} + + + + public string ReportName {get;set;} + + + public string ReportFileName {get;set;} + + + public string ReportFolder { + get{ + return System.IO.Path.GetDirectoryName(this.ReportFileName); + } + } + + public DateTime ExecutionTime {get;set;} + + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Factories/SectionFactory.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Factories/SectionFactory.cs new file mode 100644 index 0000000000..84efdadced --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Factories/SectionFactory.cs @@ -0,0 +1,30 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 06.04.2013 + * Time: 20:08 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using ICSharpCode.Reporting.Items; + +namespace ICSharpCode.Reporting.Factories +{ + /// + /// Description of SectionFactory. + /// + internal sealed class SectionFactory + { + private SectionFactory () + { + + } + public static BaseSection Create(string sectionName) { + if (String.IsNullOrEmpty(sectionName)) { + throw new ArgumentException("sectionName"); + } + return new BaseSection(sectionName); + } + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Globals/GlobalEnums.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Globals/GlobalEnums.cs index 02928d6523..1df929de30 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Globals/GlobalEnums.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Globals/GlobalEnums.cs @@ -15,7 +15,7 @@ namespace ICSharpCode.Reporting.Globals /// public class GlobalEnums { - internal enum ReportSection { + public enum ReportSection { ReportHeader, ReportPageHeader, ReportDetail, @@ -34,5 +34,17 @@ namespace ICSharpCode.Reporting.Globals PullData, FormSheet } + + + /// + /// FormSheet means a blank form with Labels, Lines and Checkboxes + /// DataReport handles all Reports with Data + /// + public enum ReportType { + FormSheet, + DataReport, + } + + } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Globals/GlobalValues.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Globals/GlobalValues.cs index 3c045783c7..4b708593af 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Globals/GlobalValues.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Globals/GlobalValues.cs @@ -21,5 +21,11 @@ namespace ICSharpCode.Reporting.Globals public static Size DefaultPageSize {get {return new Size(827,1169);}} + public static string PlainFileName + { + get { + return DefaultReportName + ReportExtension; + } + } } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IReportCreator.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IReportCreator.cs index cec2a1ee24..b3e3e7b935 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IReportCreator.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IReportCreator.cs @@ -19,6 +19,7 @@ namespace ICSharpCode.Reporting.Interfaces { void BuildExportList (); List Pages {get;} + // PagesCollection Pages{get;} // event EventHandler PageCreated; // event EventHandler SectionRendering; diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IReportItem.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IReportItem.cs new file mode 100644 index 0000000000..e88f10a3ae --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IReportItem.cs @@ -0,0 +1,29 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 06.04.2013 + * Time: 19:55 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; + +namespace ICSharpCode.Reporting.Interfaces +{ + /// + /// Description of IPrintObject. + /// + public interface IReportItem + { + string Name{get;set;} +// Size Size {get;set;} +// Point Location {get;set;} +// Font Font {get;set;} +//// bool VisibleInReport {get;set;} +// Color BackColor {get;set;} +// Color FrameColor {get;set;} +// int SectionOffset {get;set;} +// bool CanGrow {get;set;} +// bool CanShrink {get;set;} + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IReportModel.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IReportModel.cs index b6093d0e5e..fea77db5c1 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IReportModel.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IReportModel.cs @@ -7,6 +7,7 @@ * To change this template use Tools | Options | Coding | Edit Standard Headers. */ using System; +using System.Collections.Generic; using ICSharpCode.Reporting.Items; namespace ICSharpCode.Reporting.Interfaces @@ -17,15 +18,16 @@ namespace ICSharpCode.Reporting.Interfaces public interface IReportModel { ReportSettings ReportSettings {get;set;} + List SectionCollection {get;} /* BaseSection ReportHeader {get;} BaseSection PageHeader {get;} - BaseSection DetailSection {get;} + BasistSection DetailSection {get;} BaseSection PageFooter {get;} BaseSection ReportFooter {get;} GlobalEnums.PushPullModel DataModel {get;} - ReportSectionCollection SectionCollection {get;} + */ } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseSection.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseSection.cs index 6e33f5fee0..5df31f701f 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseSection.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseSection.cs @@ -7,16 +7,25 @@ * To change this template use Tools | Options | Coding | Edit Standard Headers. */ using System; +using ICSharpCode.Reporting.Interfaces; namespace ICSharpCode.Reporting.Items { /// /// Description of BaseSection. /// - public class BaseSection + public class BaseSection:ReportItem { + #region Constructors + public BaseSection() + {} + + public BaseSection (string sectionName) { + base.Name = sectionName; } + + #endregion } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportItem.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportItem.cs new file mode 100644 index 0000000000..755ff0b4f9 --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportItem.cs @@ -0,0 +1,27 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 06.04.2013 + * Time: 20:15 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using ICSharpCode.Reporting.Interfaces; + +namespace ICSharpCode.Reporting.Items +{ + /// + /// Description of ReportItem. + /// + public class ReportItem:IReportItem + { + public ReportItem() + { + } + + + public string Name {get;set;} + + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportModel.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportModel.cs index ab27724d83..30ffb8c5f5 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportModel.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportModel.cs @@ -7,6 +7,8 @@ * To change this template use Tools | Options | Coding | Edit Standard Headers. */ using System; +using System.Collections.Generic; +using ICSharpCode.Reporting.Factories; using ICSharpCode.Reporting.Globals; using ICSharpCode.Reporting.Interfaces; @@ -18,33 +20,20 @@ namespace ICSharpCode.Reporting.Items internal class ReportModel :IReportModel { -// ReportSectionCollection sectionCollection; - - - public static ReportModel Create() - { - var model = new ReportModel(); -// foreach (GlobalEnums.ReportSection sec in Enum.GetValues(typeof(GlobalEnums.ReportSection))) { -// m.SectionCollection.Add (SectionFactory.Create(sec.ToString())); -// } - return model; - } - - /* - public static ReportModel Create(GraphicsUnit graphicsUnit) - { - ReportModel m = Create(); - m.ReportSettings.GraphicsUnit = graphicsUnit; - return m; + public ReportModel() { + SectionCollection = new List(); + foreach (GlobalEnums.ReportSection sec in Enum.GetValues(typeof(GlobalEnums.ReportSection))) { + SectionCollection.Add (SectionFactory.Create(sec.ToString())); + } } - - + + #region Sections public BaseSection ReportHeader { get { - return (BaseSection)sectionCollection[0]; + return (BaseSection)SectionCollection[0]; } } @@ -52,7 +41,7 @@ namespace ICSharpCode.Reporting.Items public BaseSection PageHeader { get { - return (BaseSection)sectionCollection[1]; + return (BaseSection)SectionCollection[1]; } } @@ -60,7 +49,7 @@ namespace ICSharpCode.Reporting.Items public BaseSection DetailSection { get { - return (BaseSection)sectionCollection[2]; + return (BaseSection)SectionCollection[2]; } } @@ -68,19 +57,19 @@ namespace ICSharpCode.Reporting.Items public BaseSection PageFooter { get { - return (BaseSection)sectionCollection[3]; + return (BaseSection)SectionCollection[3]; } } public BaseSection ReportFooter { get { - return (BaseSection)sectionCollection[4]; + return (BaseSection)SectionCollection[4]; } } #endregion - */ + ReportSettings reportSettings ; @@ -96,5 +85,7 @@ namespace ICSharpCode.Reporting.Items reportSettings = value; } } + + public List SectionCollection {get; private set;} } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportSettings.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportSettings.cs index e540087f46..3b6a194ce8 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportSettings.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportSettings.cs @@ -8,6 +8,8 @@ */ using System; using System.Drawing; +using System.IO; + using ICSharpCode.Reporting.Globals; namespace ICSharpCode.Reporting.Items @@ -33,7 +35,7 @@ namespace ICSharpCode.Reporting.Items // this.GraphicsUnit = GraphicsUnit.Pixel; // this.Padding = new Padding(5); // this.DefaultFont = GlobalValues.DefaultFont; -// this.ReportType = GlobalEnums.ReportType.FormSheet; + this.ReportType = GlobalEnums.ReportType.FormSheet; // this.DataModel = GlobalEnums.PushPullModel.FormSheet; // @@ -74,6 +76,22 @@ namespace ICSharpCode.Reporting.Items } } + private string fileName; +// [Category("Base Settings")] +// [XmlIgnoreAttribute] + public string FileName + { + get { + if (String.IsNullOrEmpty(fileName)) { + fileName = GlobalValues.PlainFileName; + } + return Path.GetFullPath(fileName); + } + set { + fileName = value; + } + } + private Size pageSize; public Size PageSize { @@ -95,5 +113,9 @@ namespace ICSharpCode.Reporting.Items // [Category("Data")] public GlobalEnums.PushPullModel DataModel {get;set;} + + +// [Browsable(true), Category("Base Settings")] + public GlobalEnums.ReportType ReportType {get;set;} } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/BasePageBuilder.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/BasePageBuilder.cs index cff877f575..9cff6a13b4 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/BasePageBuilder.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/BasePageBuilder.cs @@ -31,11 +31,25 @@ namespace ICSharpCode.Reporting.PageBuilder protected IPage InitNewPage(){ - return new Page(); + var pi = CreatePageInfo(); + return new Page(pi); + } + + IPageInfo CreatePageInfo() + { + var pi = new PageInfo(); + pi.PageNumber = Pages.Count +1; + pi.ReportName = ReportModel.ReportSettings.ReportName; + pi.ReportFileName = ReportModel.ReportSettings.FileName; +// pi.ReportName = ReportModel.ReportSettings.ReportName; + return pi; } protected virtual void AddPage(IPage page) { + if (Pages.Count == 0) { + page.IsFirstPage = true; + } Pages.Add(page); } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ReportingFactory.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ReportingFactory.cs index 775878976c..15fa6a1aac 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ReportingFactory.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ReportingFactory.cs @@ -35,9 +35,7 @@ namespace ICSharpCode.Reporting IReportModel reportModel = LoadReportModel (stream); IReportCreator builder = null; if (reportModel.ReportSettings.DataModel == GlobalEnums.PushPullModel.FormSheet) { -// builder = FormPageBuilder.CreateInstance(reportModel); builder = new FormPageBuilder(reportModel); - Console.WriteLine("aaaaaaaaaaaaaaaaa"); } // else { // CheckForParameters(reportModel,reportParameters); diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/PageBuilderFixture.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/PageBuilderFixture.cs index 77603b2970..90b80ccf50 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/PageBuilderFixture.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/PageBuilderFixture.cs @@ -10,7 +10,7 @@ using System; using System.IO; using System.Reflection; -using ICSharpCode.Reporting.BaseClasses; +using ICSharpCode.Reporting.Interfaces; using ICSharpCode.Reporting.PageBuilder; using NUnit.Framework; @@ -19,47 +19,76 @@ namespace ICSharpCode.Reporting.Test.PageBuilder [TestFixture] public class PageBuilderFixture { - private Stream stream; + + private IReportCreator reportCreator; [Test] public void CanCreateFormsPageBuilder() { - var reportingFactory = new ReportingFactory(); - var reportCreator = reportingFactory.ReportCreator(stream); Assert.IsNotNull(reportCreator); } [Test] public void PagesCountIsZero () { - var reportingFactory = new ReportingFactory(); - var reportCreator = reportingFactory.ReportCreator(stream); Assert.That(reportCreator.Pages.Count,Is.EqualTo(0)); } [Test] public void BuildExportPagesCountIsOne() { - var reportingFactory = new ReportingFactory(); - var reportCreator = reportingFactory.ReportCreator(stream); reportCreator.BuildExportList(); Assert.That(reportCreator.Pages.Count,Is.EqualTo(1)); } - + [Test] public void CurrentPageIsSet() { + System.Reflection.Assembly asm = Assembly.GetExecutingAssembly(); + var stream = asm.GetManifestResourceStream(TestHelper.PlainReportFileName); var reportingFactory = new ReportingFactory(); var reportCreator = (FormPageBuilder)reportingFactory.ReportCreator(stream); reportCreator.BuildExportList(); Assert.That(reportCreator.CurrentPage,Is.Not.Null); } + + [Test] + public void CurrentPageIsFirstPage() { + System.Reflection.Assembly asm = Assembly.GetExecutingAssembly(); + var stream = asm.GetManifestResourceStream(TestHelper.PlainReportFileName); + var reportingFactory = new ReportingFactory(); + var reportCreator = (FormPageBuilder)reportingFactory.ReportCreator(stream); + reportCreator.BuildExportList(); + Assert.That(reportCreator.CurrentPage.IsFirstPage,Is.True); + Assert.That(reportCreator.Pages[0].IsFirstPage,Is.True); + } + + + [Test] + public void PageInfoPageNumberIsOne() { + reportCreator.BuildExportList(); + var pi = reportCreator.Pages[0].PageInfo; + Assert.That(pi.PageNumber,Is.EqualTo(1)); + } + + + + [Test] + public void PageInfoReportName() { + reportCreator.BuildExportList(); + var pi = reportCreator.Pages[0].PageInfo; + Assert.That(pi.ReportName,Is.EqualTo("Report1")); + } + + [SetUp] public void LoadFromStream() { System.Reflection.Assembly asm = Assembly.GetExecutingAssembly(); - stream = asm.GetManifestResourceStream(TestHelper.PlainReportFileName); + var stream = asm.GetManifestResourceStream(TestHelper.PlainReportFileName); + var reportingFactory = new ReportingFactory(); + reportCreator = reportingFactory.ReportCreator(stream); } } } From f6d06785312fcf9a3413fb70dfab4c28e2c8fee3 Mon Sep 17 00:00:00 2001 From: Peter Forstmeier Date: Wed, 10 Apr 2013 20:57:50 +0200 Subject: [PATCH 17/33] TextItem, Exporter's --- .../ICSharpCode.Reporting.csproj | 9 ++ .../Src/BaseClasses/Page.cs | 5 + .../Src/Factories/ExportColumnFactory.cs | 29 ++++ .../Src/Interfaces/IExportColumn.cs | 20 +++ .../Src/Interfaces/IReportItem.cs | 6 +- .../Src/Interfaces/IReportModel.cs | 14 +- .../Src/Interfaces/ISection.cs | 22 +++ .../Src/Items/BaseSection.cs | 9 +- .../Src/Items/BaseTextItem.cs | 36 +++++ .../Src/Items/ReportItem.cs | 8 + .../Src/Items/ReportModel.cs | 16 +- .../Src/PageBuilder/BasePageBuilder.cs | 6 +- .../PageBuilder/Converter/SectionConverter.cs | 47 ++++++ .../ExportColumns/BaseExportColumn.cs | 21 +++ .../PageBuilder/ExportColumns/ExportText.cs | 22 +++ .../Src/PageBuilder/FormPageBuilder.cs | 23 ++- .../Src/ReportingFactory.cs | 7 +- .../ICSharpCode.Reporting.Test.csproj | 5 + .../src/Model/Report_TwoItemsFixture.cs | 76 +++++++++ .../src/PageBuilder/BaseConvertFixture.cs | 49 ++++++ .../src/PageBuilder/PageBuilderFixture.cs | 24 +-- .../src/TestHelper.cs | 5 + .../src/TestReports/ReportWithTwoItems.srd | 144 ++++++++++++++++++ 23 files changed, 558 insertions(+), 45 deletions(-) create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Factories/ExportColumnFactory.cs create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IExportColumn.cs create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/ISection.cs create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseTextItem.cs create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/Converter/SectionConverter.cs create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/BaseExportColumn.cs create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportText.cs create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/Model/Report_TwoItemsFixture.cs create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/BaseConvertFixture.cs create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/TestReports/ReportWithTwoItems.srd diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj index de04539749..51ab7b81d2 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj @@ -58,17 +58,24 @@ + + + + + + + @@ -83,6 +90,8 @@ + + diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/Page.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/Page.cs index 7fb4437ead..338140109c 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/Page.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/Page.cs @@ -7,6 +7,8 @@ * To change this template use Tools | Options | Coding | Edit Standard Headers. */ using System; +using System.Collections.Generic; +using ICSharpCode.Reporting.Interfaces; namespace ICSharpCode.Reporting.BaseClasses { @@ -22,6 +24,7 @@ namespace ICSharpCode.Reporting.BaseClasses public interface IPage{ bool IsFirstPage {get;set;} IPageInfo PageInfo {get;} + List Items {get; set;} } @@ -35,6 +38,7 @@ namespace ICSharpCode.Reporting.BaseClasses throw new ArgumentNullException("pageInfo"); } PageInfo = pageInfo; + Items = new List(); } public bool IsFirstPage {get;set;} @@ -42,5 +46,6 @@ namespace ICSharpCode.Reporting.BaseClasses public IPageInfo PageInfo {get;private set;} + public List Items {get; set;} } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Factories/ExportColumnFactory.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Factories/ExportColumnFactory.cs new file mode 100644 index 0000000000..f5dbfffdda --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Factories/ExportColumnFactory.cs @@ -0,0 +1,29 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 09.04.2013 + * Time: 19:51 + * + * 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.Factories +{ + /// + /// Description of ExportColumnFactory. + /// + public class ExportColumnFactory + { + public ExportColumnFactory() + { + } + + public IExportColumn CreateItem (IReportItem item) { + return item.CreateExportColumn(); + } + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IExportColumn.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IExportColumn.cs new file mode 100644 index 0000000000..5b9d213c5b --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IExportColumn.cs @@ -0,0 +1,20 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 08.04.2013 + * Time: 20:10 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; + +namespace ICSharpCode.Reporting.Interfaces +{ + /// + /// Description of IExportColumn. + /// + public interface IExportColumn + { + + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IReportItem.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IReportItem.cs index e88f10a3ae..861d15616b 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IReportItem.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IReportItem.cs @@ -7,6 +7,7 @@ * To change this template use Tools | Options | Coding | Edit Standard Headers. */ using System; +using System.Drawing; namespace ICSharpCode.Reporting.Interfaces { @@ -16,8 +17,8 @@ namespace ICSharpCode.Reporting.Interfaces public interface IReportItem { string Name{get;set;} -// Size Size {get;set;} -// Point Location {get;set;} + Size Size {get;set;} + Point Location {get;set;} // Font Font {get;set;} //// bool VisibleInReport {get;set;} // Color BackColor {get;set;} @@ -25,5 +26,6 @@ namespace ICSharpCode.Reporting.Interfaces // int SectionOffset {get;set;} // bool CanGrow {get;set;} // bool CanShrink {get;set;} +IExportColumn CreateExportColumn(); } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IReportModel.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IReportModel.cs index fea77db5c1..1d813dd2dd 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IReportModel.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IReportModel.cs @@ -19,15 +19,15 @@ namespace ICSharpCode.Reporting.Interfaces { ReportSettings ReportSettings {get;set;} List SectionCollection {get;} - /* - BaseSection ReportHeader {get;} - BaseSection PageHeader {get;} - BasistSection DetailSection {get;} - BaseSection PageFooter {get;} - BaseSection ReportFooter {get;} + ISection ReportHeader {get;} + ISection PageHeader {get;} + ISection DetailSection {get;} + ISection PageFooter {get;} + ISection ReportFooter {get;} + /* GlobalEnums.PushPullModel DataModel {get;} - */ + } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/ISection.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/ISection.cs new file mode 100644 index 0000000000..3c81b7fd42 --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/ISection.cs @@ -0,0 +1,22 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 08.04.2013 + * Time: 19:50 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using System.Collections.Generic; +using ICSharpCode.Reporting.Items; + +namespace ICSharpCode.Reporting.Interfaces +{ + /// + /// Description of ISection. + /// + public interface ISection:IReportItem + { + List Items {get;} + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseSection.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseSection.cs index 5df31f701f..97ace09839 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseSection.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseSection.cs @@ -7,6 +7,7 @@ * To change this template use Tools | Options | Coding | Edit Standard Headers. */ using System; +using System.Collections.Generic; using ICSharpCode.Reporting.Interfaces; namespace ICSharpCode.Reporting.Items @@ -14,18 +15,22 @@ namespace ICSharpCode.Reporting.Items /// /// Description of BaseSection. /// - public class BaseSection:ReportItem + public class BaseSection:ReportItem,ISection { #region Constructors public BaseSection() - {} + { + Console.WriteLine("---------- baseSection -------"); + Items = new List(); + } public BaseSection (string sectionName) { base.Name = sectionName; } + public List Items {get;private set;} #endregion } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseTextItem.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseTextItem.cs new file mode 100644 index 0000000000..3aea1edaf2 --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseTextItem.cs @@ -0,0 +1,36 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 07.04.2013 + * Time: 18:23 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using System.Drawing; +using ICSharpCode.Reporting.Interfaces; +using ICSharpCode.Reporting.PageBuilder.ExportColumns; + +namespace ICSharpCode.Reporting.Items +{ + /// + /// Description of BaseTextItem. + /// + public interface ITextItem:IReportItem + { + Font Font {get;set;} + } + + public class BaseTextItem:ReportItem,ITextItem + { + public BaseTextItem(){ + } + + public Font Font {get;set;} + + public override IExportColumn CreateExportColumn() + { + return new ExportText(); + } + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportItem.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportItem.cs index 755ff0b4f9..a82d8a10ed 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportItem.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportItem.cs @@ -7,6 +7,7 @@ * To change this template use Tools | Options | Coding | Edit Standard Headers. */ using System; +using System.Drawing; using ICSharpCode.Reporting.Interfaces; namespace ICSharpCode.Reporting.Items @@ -23,5 +24,12 @@ namespace ICSharpCode.Reporting.Items public string Name {get;set;} + public Point Location {get;set;} + + public Size Size {get;set;} + + public virtual IExportColumn CreateExportColumn() { + return null; + } } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportModel.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportModel.cs index 30ffb8c5f5..7deca52706 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportModel.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportModel.cs @@ -22,15 +22,15 @@ namespace ICSharpCode.Reporting.Items public ReportModel() { SectionCollection = new List(); - foreach (GlobalEnums.ReportSection sec in Enum.GetValues(typeof(GlobalEnums.ReportSection))) { - SectionCollection.Add (SectionFactory.Create(sec.ToString())); - } +// foreach (GlobalEnums.ReportSection sec in Enum.GetValues(typeof(GlobalEnums.ReportSection))) { +// SectionCollection.Add (SectionFactory.Create(sec.ToString())); +// } } #region Sections - public BaseSection ReportHeader + public ISection ReportHeader { get { return (BaseSection)SectionCollection[0]; @@ -38,7 +38,7 @@ namespace ICSharpCode.Reporting.Items } - public BaseSection PageHeader + public ISection PageHeader { get { return (BaseSection)SectionCollection[1]; @@ -46,7 +46,7 @@ namespace ICSharpCode.Reporting.Items } - public BaseSection DetailSection + public ISection DetailSection { get { return (BaseSection)SectionCollection[2]; @@ -54,14 +54,14 @@ namespace ICSharpCode.Reporting.Items } - public BaseSection PageFooter + public ISection PageFooter { get { return (BaseSection)SectionCollection[3]; } } - public BaseSection ReportFooter + public ISection ReportFooter { get { return (BaseSection)SectionCollection[4]; diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/BasePageBuilder.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/BasePageBuilder.cs index 9cff6a13b4..8631ceb0b3 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/BasePageBuilder.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/BasePageBuilder.cs @@ -8,6 +8,8 @@ */ using System; using System.Collections.Generic; +using System.Drawing; + using ICSharpCode.Reporting.BaseClasses; using ICSharpCode.Reporting.Interfaces; @@ -40,7 +42,7 @@ namespace ICSharpCode.Reporting.PageBuilder var pi = new PageInfo(); pi.PageNumber = Pages.Count +1; pi.ReportName = ReportModel.ReportSettings.ReportName; - pi.ReportFileName = ReportModel.ReportSettings.FileName; + pi.ReportFileName = ReportModel.ReportSettings.FileName; // pi.ReportName = ReportModel.ReportSettings.ReportName; return pi; } @@ -61,6 +63,8 @@ namespace ICSharpCode.Reporting.PageBuilder protected IReportModel ReportModel {get; private set;} + protected Point CurrentLocation {get; set;} + public IPage CurrentPage {get; protected set;} public List Pages {get; private set;} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/Converter/SectionConverter.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/Converter/SectionConverter.cs new file mode 100644 index 0000000000..3a4f864145 --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/Converter/SectionConverter.cs @@ -0,0 +1,47 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 08.04.2013 + * Time: 19:49 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using System.Collections.Generic; +using System.Drawing; + +using ICSharpCode.Reporting.Factories; +using ICSharpCode.Reporting.Interfaces; +using ICSharpCode.Reporting.PageBuilder.ExportColumns; + +namespace ICSharpCode.Reporting.PageBuilder.Converter +{ + /// + /// Description of SectionConverter. + /// + internal class SectionConverter + { + private Point currentPoint; + private ExportColumnFactory factory; + + public SectionConverter(ISection section,Point currentPoint ) + { + Section = section; + this.currentPoint = currentPoint; + factory = new ExportColumnFactory(); + } + + public List Convert(){ + var l = new List(); + foreach (var element in Section.Items) { + + var item = factory.CreateItem(element); + l.Add(item); + } + + return l; + } + + public ISection Section {get; private set;} + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/BaseExportColumn.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/BaseExportColumn.cs new file mode 100644 index 0000000000..d0c384ddad --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/BaseExportColumn.cs @@ -0,0 +1,21 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 08.04.2013 + * Time: 20:09 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using ICSharpCode.Reporting.Interfaces; + +namespace ICSharpCode.Reporting.PageBuilder.ExportColumns +{ + /// + /// Description of BaseExportColumn. + /// + public class BaseExportColumn:IExportColumn + { + + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportText.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportText.cs new file mode 100644 index 0000000000..e2a542198f --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportText.cs @@ -0,0 +1,22 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 10.04.2013 + * Time: 20:00 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; + +namespace ICSharpCode.Reporting.PageBuilder.ExportColumns +{ + /// + /// Description of ExportText. + /// + public class ExportText:BaseExportColumn + { + public ExportText() + { + } + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/FormPageBuilder.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/FormPageBuilder.cs index 142f0e2358..f61fbe9ddc 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/FormPageBuilder.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/FormPageBuilder.cs @@ -7,8 +7,10 @@ * To change this template use Tools | Options | Coding | Edit Standard Headers. */ using System; +using System.Drawing; using ICSharpCode.Reporting.BaseClasses; using ICSharpCode.Reporting.Interfaces; +using ICSharpCode.Reporting.PageBuilder.Converter; namespace ICSharpCode.Reporting.PageBuilder { @@ -22,7 +24,6 @@ namespace ICSharpCode.Reporting.PageBuilder public FormPageBuilder(IReportModel reportModel):base(reportModel) { - } @@ -30,6 +31,19 @@ namespace ICSharpCode.Reporting.PageBuilder { base.BuildExportList(); WritePages (); + BuildReportHeader(); + } + + + void BuildReportHeader() + { + if (Pages.Count == 0) { + + CurrentLocation = new Point(10,10); + var sc = new SectionConverter(ReportModel.ReportHeader,base.CurrentLocation); + var itemsList = sc.Convert(); + CurrentPage.Items.AddRange(itemsList); + } } @@ -38,12 +52,7 @@ namespace ICSharpCode.Reporting.PageBuilder CurrentPage = base.InitNewPage(); this.BuildReportHeader(); base.AddPage(CurrentPage); + var x = ReportModel; } - - void BuildReportHeader() - { - - } - } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ReportingFactory.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ReportingFactory.cs index 15fa6a1aac..6a884669df 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ReportingFactory.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ReportingFactory.cs @@ -37,13 +37,8 @@ namespace ICSharpCode.Reporting if (reportModel.ReportSettings.DataModel == GlobalEnums.PushPullModel.FormSheet) { builder = new FormPageBuilder(reportModel); } -// else { -// CheckForParameters(reportModel,reportParameters); -// IDataManager dataMan = DataManagerFactory.CreateDataManager(reportModel,reportParameters); -// builder = DataPageBuilder.CreateInstance(reportModel, dataMan); -// } return builder; -// return null; + } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/ICSharpCode.Reporting.Test.csproj b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/ICSharpCode.Reporting.Test.csproj index 1af20959b2..1fa451579b 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/ICSharpCode.Reporting.Test.csproj +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/ICSharpCode.Reporting.Test.csproj @@ -61,6 +61,8 @@ + + @@ -80,5 +82,8 @@ + + + \ No newline at end of file diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/Model/Report_TwoItemsFixture.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/Model/Report_TwoItemsFixture.cs new file mode 100644 index 0000000000..947171239a --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/Model/Report_TwoItemsFixture.cs @@ -0,0 +1,76 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 07.04.2013 + * Time: 18:01 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using System.Drawing; +using System.IO; +using System.Reflection; + +using ICSharpCode.Reporting.Items; +using NUnit.Framework; + +namespace ICSharpCode.Reporting.Test.Model +{ + [TestFixture] + public class Report_TwoItemsFixture + { + Stream stream; + + [Test] + public void LoadModelWithItems() + { + var rf = new ReportingFactory(); + var model = rf.LoadReportModel(stream); + Assert.That(model,Is.Not.Null); + } + + + [Test] + public void ReportHeaderOneItem () { + var rf = new ReportingFactory(); + var model = rf.LoadReportModel(stream); + var section = model.ReportHeader; + Assert.That(section.Items.Count,Is.EqualTo(1)); + } + + + [Test] + public void PageHeaderOneItem () { + var rf = new ReportingFactory(); + var model = rf.LoadReportModel(stream); + var section = model.ReportHeader; + Assert.That(section.Items.Count,Is.EqualTo(1)); + } + + + [Test] + public void ItemIsTextItem() { + var rf = new ReportingFactory(); + var model = rf.LoadReportModel(stream); + var item = model.ReportHeader.Items[0]; + Assert.That(item,Is.AssignableFrom(typeof(BaseTextItem))); + } + + + [Test] + public void IsLocationSet() { + var rf = new ReportingFactory(); + var model = rf.LoadReportModel(stream); + var item = model.ReportHeader.Items[0]; + Assert.That(item.Location,Is.Not.EqualTo(Point.Empty)); + } + + + [SetUp] + public void LoadFromStream() + { + System.Reflection.Assembly asm = Assembly.GetExecutingAssembly(); + stream = asm.GetManifestResourceStream(TestHelper.RepWithTwoItems); + } + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/BaseConvertFixture.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/BaseConvertFixture.cs new file mode 100644 index 0000000000..213c669031 --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/BaseConvertFixture.cs @@ -0,0 +1,49 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 08.04.2013 + * Time: 20:20 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using System.Reflection; +using ICSharpCode.Reporting.Interfaces; +using ICSharpCode.Reporting.PageBuilder; +using ICSharpCode.Reporting.PageBuilder.ExportColumns; +using NUnit.Framework; + +namespace ICSharpCode.Reporting.Test.PageBuilder +{ + [TestFixture] + public class BaseConvertFixture + { + private IReportCreator reportCreator; + + + [Test] + public void CurrentPageContainOneItem() { + reportCreator.BuildExportList(); + var page = reportCreator.Pages[0]; + Assert.That(page.Items.Count, Is.EqualTo(1)); + } + + + [Test] + public void PageItemIsBaseExportColumn() { + reportCreator.BuildExportList(); + var page = reportCreator.Pages[0]; + Assert.That(page.Items[0],Is.InstanceOf(typeof(ExportText))); + } + + + [SetUp] + public void LoadFromStream() + { + System.Reflection.Assembly asm = Assembly.GetExecutingAssembly(); + var stream = asm.GetManifestResourceStream(TestHelper.RepWithTwoItems); + var reportingFactory = new ReportingFactory(); + reportCreator = reportingFactory.ReportCreator(stream); + } + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/PageBuilderFixture.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/PageBuilderFixture.cs index 90b80ccf50..a3e4450b62 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/PageBuilderFixture.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/PageBuilderFixture.cs @@ -22,6 +22,7 @@ namespace ICSharpCode.Reporting.Test.PageBuilder private IReportCreator reportCreator; + [Test] public void CanCreateFormsPageBuilder() { @@ -29,6 +30,9 @@ namespace ICSharpCode.Reporting.Test.PageBuilder } + + #region Pages + [Test] public void PagesCountIsZero () { Assert.That(reportCreator.Pages.Count,Is.EqualTo(0)); @@ -44,26 +48,22 @@ namespace ICSharpCode.Reporting.Test.PageBuilder [Test] public void CurrentPageIsSet() { - System.Reflection.Assembly asm = Assembly.GetExecutingAssembly(); - var stream = asm.GetManifestResourceStream(TestHelper.PlainReportFileName); - var reportingFactory = new ReportingFactory(); - var reportCreator = (FormPageBuilder)reportingFactory.ReportCreator(stream); + reportCreator.BuildExportList(); - Assert.That(reportCreator.CurrentPage,Is.Not.Null); + Assert.That(reportCreator.Pages[0],Is.Not.Null); } [Test] public void CurrentPageIsFirstPage() { - System.Reflection.Assembly asm = Assembly.GetExecutingAssembly(); - var stream = asm.GetManifestResourceStream(TestHelper.PlainReportFileName); - var reportingFactory = new ReportingFactory(); - var reportCreator = (FormPageBuilder)reportingFactory.ReportCreator(stream); reportCreator.BuildExportList(); - Assert.That(reportCreator.CurrentPage.IsFirstPage,Is.True); + Assert.That(reportCreator.Pages[0].IsFirstPage,Is.True); Assert.That(reportCreator.Pages[0].IsFirstPage,Is.True); } + #endregion + + #region PageInfo [Test] public void PageInfoPageNumberIsOne() { @@ -73,7 +73,6 @@ namespace ICSharpCode.Reporting.Test.PageBuilder } - [Test] public void PageInfoReportName() { reportCreator.BuildExportList(); @@ -81,12 +80,13 @@ namespace ICSharpCode.Reporting.Test.PageBuilder Assert.That(pi.ReportName,Is.EqualTo("Report1")); } + #endregion [SetUp] public void LoadFromStream() { System.Reflection.Assembly asm = Assembly.GetExecutingAssembly(); - var stream = asm.GetManifestResourceStream(TestHelper.PlainReportFileName); + var stream = asm.GetManifestResourceStream(TestHelper.RepWithTwoItems); var reportingFactory = new ReportingFactory(); reportCreator = reportingFactory.ReportCreator(stream); } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/TestHelper.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/TestHelper.cs index 46e4baf68d..dee6e25142 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/TestHelper.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/TestHelper.cs @@ -17,6 +17,7 @@ namespace ICSharpCode.Reporting.Test { private const string nameSpace = "ICSharpCode.Reporting.Test.src.TestReports."; private const string plainReportName = "PlainModel.srd"; + private const string rr = "ReportWithTwoItems.srd"; public TestHelper() { @@ -25,5 +26,9 @@ namespace ICSharpCode.Reporting.Test public static string PlainReportFileName{ get{return nameSpace + plainReportName;} } + + public static string RepWithTwoItems { + get {return nameSpace + rr;} + } } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/TestReports/ReportWithTwoItems.srd b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/TestReports/ReportWithTwoItems.srd new file mode 100644 index 0000000000..d121d6de85 --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/TestReports/ReportWithTwoItems.srd @@ -0,0 +1,144 @@ + + + + + Report1 + FormSheet + 50 + 50 + 50 + 50 + 827, 1169 + False + Millimeter + 5, 5, 5, 5 + + + + + + + + Text + FormSheet + No Data for this Report + Microsoft Sans Serif, 10pt + True + + + + + 50, 50 + 727, 60 + White + 0 + 0 + False + False + + + 313, 5 + 100, 20 + White + Microsoft Sans Serif, 10pt + None + TopLeft + False + False + System.String + No + Report1 + False + Black + Black + Report1 + + + Black + ReportHeader + + + 50, 125 + 727, 60 + White + 0 + 0 + False + False + + + 26, 22 + 100, 20 + White + Microsoft Sans Serif, 10pt + None + TopLeft + False + False + No + BaseTextItem2147483646 + False + Black + Black + BaseTextItem2147483646 + + + Black + ReportPageHeader + + + 50, 200 + 727, 60 + White + 0 + 0 + False + False + + Black + ReportDetail + + + 50, 275 + 727, 60 + White + 0 + 0 + False + False + + + 622, 5 + 100, 20 + White + Microsoft Sans Serif, 10pt + None + TopLeft + False + False + System.String + No + =Globals!PageNumber + False + Black + Black + PageNumber1 + + + Black + ReportPageFooter + + + 50, 350 + 727, 60 + White + 0 + 0 + False + False + + Black + ReportFooter + + + \ No newline at end of file From 7568743d2ab510189aceaa6ed3798077f920af74 Mon Sep 17 00:00:00 2001 From: Peter Forstmeier Date: Wed, 17 Apr 2013 20:38:47 +0200 Subject: [PATCH 18/33] Rework Interfaces, test's for ContainerConverter --- .../ICSharpCode.Reporting.csproj | 17 +++-- .../Src/BaseClasses/Page.cs | 43 ++++++----- .../Src/BaseClasses/PageInfo.cs | 13 +--- .../Src/Factories/ExportColumnFactory.cs | 7 +- .../Interfaces/{ => Export}/IExportColumn.cs | 6 +- .../Src/Interfaces/Export/IExportContainer.cs | 23 ++++++ .../Src/Interfaces/Export/IPage.cs | 22 ++++++ .../Src/Interfaces/Export/IPageInfo.cs | 24 ++++++ .../{IReportItem.cs => IPrintableObject.cs} | 17 ++--- .../{ISection.cs => IReportContainer.cs} | 12 +-- .../Src/Interfaces/IReportCreator.cs | 1 + .../Src/Interfaces/IReportModel.cs | 10 ++- .../Src/Items/BaseSection.cs | 15 ++-- .../Src/Items/BaseTextItem.cs | 11 ++- .../Src/Items/PrintableItem.cs | 23 ++++++ .../Src/Items/ReportContainer.cs | 40 ++++++++++ .../Src/Items/ReportItem.cs | 27 ++++--- .../Src/Items/ReportModel.cs | 13 ++-- .../Src/Items/ReportSettings.cs | 18 +++++ .../Src/PageBuilder/BasePageBuilder.cs | 4 +- .../Converter/ContainerConverter.cs | 53 +++++++++++++ .../PageBuilder/Converter/SectionConverter.cs | 47 ------------ .../{BaseExportColumn.cs => ExportColumn.cs} | 11 ++- .../ExportColumns/ExportContainer.cs | 28 +++++++ .../PageBuilder/ExportColumns/ExportText.cs | 3 +- .../Src/PageBuilder/FormPageBuilder.cs | 64 ++++++++++++++-- .../ICSharpCode.Reporting.Test.csproj | 1 + .../src/PageBuilder/BaseConvertFixture.cs | 14 +++- .../PageBuilder/ContainerConverterFixture.cs | 74 +++++++++++++++++++ .../src/PageBuilder/PageBuilderFixture.cs | 27 ++++++- 30 files changed, 519 insertions(+), 149 deletions(-) rename src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/{ => Export}/IExportColumn.cs (66%) create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/Export/IExportContainer.cs create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/Export/IPage.cs create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/Export/IPageInfo.cs rename src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/{IReportItem.cs => IPrintableObject.cs} (59%) rename src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/{ISection.cs => IReportContainer.cs} (55%) create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/PrintableItem.cs create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportContainer.cs create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/Converter/ContainerConverter.cs delete mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/Converter/SectionConverter.cs rename src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/{BaseExportColumn.cs => ExportColumn.cs} (59%) create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportContainer.cs create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/ContainerConverterFixture.cs diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj index 51ab7b81d2..7b0ea97bfb 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj @@ -60,21 +60,27 @@ - - + + + + + + - + + - - + + + @@ -86,6 +92,7 @@ + diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/Page.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/Page.cs index 338140109c..ff18084857 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/Page.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/Page.cs @@ -8,37 +8,30 @@ */ using System; using System.Collections.Generic; +using System.Drawing; + using ICSharpCode.Reporting.Interfaces; +using ICSharpCode.Reporting.Interfaces.Export; namespace ICSharpCode.Reporting.BaseClasses { /// /// Description of Page. /// - /// - - - - - - public interface IPage{ - bool IsFirstPage {get;set;} - IPageInfo PageInfo {get;} - List Items {get; set;} - } - - - + /// + public class Page:IPage { - public Page(IPageInfo pageInfo) + public Page(IPageInfo pageInfo,Size pageSize) { if (pageInfo == null) { throw new ArgumentNullException("pageInfo"); } PageInfo = pageInfo; - Items = new List(); + Name = "Page"; + Size = pageSize; + ExportedItems = new List(); } public bool IsFirstPage {get;set;} @@ -46,6 +39,22 @@ namespace ICSharpCode.Reporting.BaseClasses public IPageInfo PageInfo {get;private set;} - public List Items {get; set;} + + public string Name {get;set;} + + + public System.Drawing.Size Size {get;set;} + + + public System.Drawing.Point Location {get;set;} + + + public List ExportedItems {get;set;} + + + public IExportContainer CreateExportColumn() + { + throw new NotImplementedException(); + } } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/PageInfo.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/PageInfo.cs index 26fcb16930..ecaf63ecbe 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/PageInfo.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/PageInfo.cs @@ -7,6 +7,7 @@ * To change this template use Tools | Options | Coding | Edit Standard Headers. */ using System; +using ICSharpCode.Reporting.Interfaces.Export; namespace ICSharpCode.Reporting.BaseClasses { @@ -14,17 +15,7 @@ namespace ICSharpCode.Reporting.BaseClasses /// Description of PageInfo. /// /// - public interface IPageInfo - { - int PageNumber {get;set;} - int TotalPages {get;set;} - string ReportName {get;set;} - string ReportFileName {get;set;} - string ReportFolder {get;} - DateTime ExecutionTime {get;set;} -// System.Collections.Hashtable ParameterHash {get;set;} -// IDataNavigator IDataNavigator {get;set;} - } + public class PageInfo:IPageInfo diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Factories/ExportColumnFactory.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Factories/ExportColumnFactory.cs index f5dbfffdda..9fe670841a 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Factories/ExportColumnFactory.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Factories/ExportColumnFactory.cs @@ -7,7 +7,9 @@ * To change this template use Tools | Options | Coding | Edit Standard Headers. */ using System; +using ICSharpCode.Reporting.BaseClasses; using ICSharpCode.Reporting.Interfaces; +using ICSharpCode.Reporting.Interfaces.Export; using ICSharpCode.Reporting.Items; using ICSharpCode.Reporting.PageBuilder.ExportColumns; @@ -22,8 +24,9 @@ namespace ICSharpCode.Reporting.Factories { } - public IExportColumn CreateItem (IReportItem item) { - return item.CreateExportColumn(); + public IExportColumn CreateItem (IPrintableObject item) { + var export = item.CreateExportColumn(); + return export; } } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IExportColumn.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/Export/IExportColumn.cs similarity index 66% rename from src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IExportColumn.cs rename to src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/Export/IExportColumn.cs index 5b9d213c5b..46b20c97f0 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IExportColumn.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/Export/IExportColumn.cs @@ -7,14 +7,14 @@ * To change this template use Tools | Options | Coding | Edit Standard Headers. */ using System; +using ICSharpCode.Reporting.BaseClasses; -namespace ICSharpCode.Reporting.Interfaces +namespace ICSharpCode.Reporting.Interfaces.Export { /// /// Description of IExportColumn. /// - public interface IExportColumn + public interface IExportColumn:IReportObject { - } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/Export/IExportContainer.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/Export/IExportContainer.cs new file mode 100644 index 0000000000..1e78e7ef57 --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/Export/IExportContainer.cs @@ -0,0 +1,23 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 12.04.2013 + * Time: 20:28 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using System.Collections.Generic; +using ICSharpCode.Reporting.PageBuilder.ExportColumns; + +namespace ICSharpCode.Reporting.Interfaces.Export +{ + /// + /// Description of IExportContainer. + /// + public interface IExportContainer:IExportColumn + { + List ExportedItems {get;set;} + + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/Export/IPage.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/Export/IPage.cs new file mode 100644 index 0000000000..dbda99b25b --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/Export/IPage.cs @@ -0,0 +1,22 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 11.04.2013 + * Time: 19:58 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using System.Collections.Generic; + +namespace ICSharpCode.Reporting.Interfaces.Export +{ + /// + /// Description of IPage. + /// + public interface IPage:IExportContainer + { + bool IsFirstPage {get;set;} + IPageInfo PageInfo {get;} + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/Export/IPageInfo.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/Export/IPageInfo.cs new file mode 100644 index 0000000000..35d39a3fc6 --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/Export/IPageInfo.cs @@ -0,0 +1,24 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 11.04.2013 + * Time: 19:59 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; + +namespace ICSharpCode.Reporting.Interfaces.Export +{ + /// + /// Description of IPageInfo. + /// + public interface IPageInfo + { + int PageNumber {get;set;} + int TotalPages {get;set;} + string ReportName {get;set;} + string ReportFileName {get;set;} + string ReportFolder {get;} + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IReportItem.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IPrintableObject.cs similarity index 59% rename from src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IReportItem.cs rename to src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IPrintableObject.cs index 861d15616b..84b34835ef 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IReportItem.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IPrintableObject.cs @@ -8,24 +8,23 @@ */ using System; using System.Drawing; +using ICSharpCode.Reporting.Interfaces.Export; namespace ICSharpCode.Reporting.Interfaces { /// /// Description of IPrintObject. /// - public interface IReportItem + public interface IReportObject { string Name{get;set;} Size Size {get;set;} Point Location {get;set;} -// Font Font {get;set;} -//// bool VisibleInReport {get;set;} -// Color BackColor {get;set;} -// Color FrameColor {get;set;} -// int SectionOffset {get;set;} -// bool CanGrow {get;set;} -// bool CanShrink {get;set;} -IExportColumn CreateExportColumn(); } + + + public interface IPrintableObject:IReportObject { + IExportColumn CreateExportColumn(); + } + } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/ISection.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IReportContainer.cs similarity index 55% rename from src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/ISection.cs rename to src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IReportContainer.cs index 3c81b7fd42..cb36b06e63 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/ISection.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IReportContainer.cs @@ -1,22 +1,24 @@ /* * Created by SharpDevelop. * User: Peter Forstmeier - * Date: 08.04.2013 - * Time: 19:50 + * Date: 16.04.2013 + * Time: 19:53 * * To change this template use Tools | Options | Coding | Edit Standard Headers. */ using System; using System.Collections.Generic; +using ICSharpCode.Reporting.Interfaces.Export; using ICSharpCode.Reporting.Items; namespace ICSharpCode.Reporting.Interfaces { /// - /// Description of ISection. + /// Description of IReportContainer. /// - public interface ISection:IReportItem + public interface IReportContainer :IReportObject { - List Items {get;} + List Items {get;set;} + IExportContainer CreateExportColumn(); } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IReportCreator.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IReportCreator.cs index b3e3e7b935..76a774bae8 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IReportCreator.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IReportCreator.cs @@ -9,6 +9,7 @@ using System; using System.Collections.Generic; using ICSharpCode.Reporting.BaseClasses; +using ICSharpCode.Reporting.Interfaces.Export; namespace ICSharpCode.Reporting.Interfaces { diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IReportModel.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IReportModel.cs index 1d813dd2dd..98bdb9b927 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IReportModel.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IReportModel.cs @@ -19,15 +19,19 @@ namespace ICSharpCode.Reporting.Interfaces { ReportSettings ReportSettings {get;set;} List SectionCollection {get;} - + /* ISection ReportHeader {get;} ISection PageHeader {get;} ISection DetailSection {get;} ISection PageFooter {get;} ISection ReportFooter {get;} - /* + GlobalEnums.PushPullModel DataModel {get;} */ - + IReportContainer ReportHeader {get;} + IReportContainer PageHeader {get;} + IReportContainer DetailSection {get;} + IReportContainer PageFooter {get;} + IReportContainer ReportFooter {get;} } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseSection.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseSection.cs index 97ace09839..5a462315be 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseSection.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseSection.cs @@ -9,28 +9,27 @@ using System; using System.Collections.Generic; using ICSharpCode.Reporting.Interfaces; +using ICSharpCode.Reporting.Interfaces.Export; +using ICSharpCode.Reporting.PageBuilder.ExportColumns; namespace ICSharpCode.Reporting.Items { /// /// Description of BaseSection. /// - public class BaseSection:ReportItem,ISection + public class BaseSection:ReportContainer,IReportContainer { #region Constructors public BaseSection() { - Console.WriteLine("---------- baseSection -------"); - Items = new List(); + Items = new List(); } - public BaseSection (string sectionName) - { - base.Name = sectionName; + public BaseSection (string name) { + Name = name; } - - public List Items {get;private set;} + #endregion } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseTextItem.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseTextItem.cs index 3aea1edaf2..002882f7ea 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseTextItem.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseTextItem.cs @@ -9,6 +9,7 @@ using System; using System.Drawing; using ICSharpCode.Reporting.Interfaces; +using ICSharpCode.Reporting.Interfaces.Export; using ICSharpCode.Reporting.PageBuilder.ExportColumns; namespace ICSharpCode.Reporting.Items @@ -16,12 +17,12 @@ namespace ICSharpCode.Reporting.Items /// /// Description of BaseTextItem. /// - public interface ITextItem:IReportItem + public interface ITextItem:IPrintableObject { Font Font {get;set;} } - public class BaseTextItem:ReportItem,ITextItem + public class BaseTextItem:PrintableItem,ITextItem { public BaseTextItem(){ } @@ -30,7 +31,11 @@ namespace ICSharpCode.Reporting.Items public override IExportColumn CreateExportColumn() { - return new ExportText(); + var ex = new ExportText(); + ex.Name = Name; + ex.Location = Location; + ex.Size = Size; + return ex; } } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/PrintableItem.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/PrintableItem.cs new file mode 100644 index 0000000000..d9533d64cd --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/PrintableItem.cs @@ -0,0 +1,23 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 06.04.2013 + * Time: 20:15 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using System.Drawing; +using ICSharpCode.Reporting.Interfaces; +using ICSharpCode.Reporting.Interfaces.Export; + +namespace ICSharpCode.Reporting.Items +{ + public class PrintableItem : ReportItem,IPrintableObject + { + public virtual IExportColumn CreateExportColumn() + { + return null; + } + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportContainer.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportContainer.cs new file mode 100644 index 0000000000..d50f2e9a16 --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportContainer.cs @@ -0,0 +1,40 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 16.04.2013 + * Time: 19:51 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using System.Collections.Generic; +using ICSharpCode.Reporting.Interfaces; +using ICSharpCode.Reporting.Interfaces.Export; +using ICSharpCode.Reporting.PageBuilder.ExportColumns; + +namespace ICSharpCode.Reporting.Items +{ + /// + /// Description of ReportContainer. + /// + public class ReportContainer:ReportItem,IReportContainer + { + public ReportContainer() + { + } + + + public List Items {get;set;} + + + + public IExportContainer CreateExportColumn() + { + return new ExportContainer(){ + Name = this.Name, + Size = this.Size, + Location = this.Location + }; + } + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportItem.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportItem.cs index a82d8a10ed..4d5fa0007b 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportItem.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportItem.cs @@ -9,27 +9,32 @@ using System; using System.Drawing; using ICSharpCode.Reporting.Interfaces; +using ICSharpCode.Reporting.Interfaces.Export; namespace ICSharpCode.Reporting.Items { /// /// Description of ReportItem. /// - public class ReportItem:IReportItem + + + + public class ReportItem : IReportObject { public ReportItem() { } + + + public string Name { get; set; } + + public Point Location { get; set; } + + public Size Size { get; set; } + - - public string Name {get;set;} - - public Point Location {get;set;} - - public Size Size {get;set;} - - public virtual IExportColumn CreateExportColumn() { - return null; - } } + + + } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportModel.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportModel.cs index 7deca52706..fd075d565c 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportModel.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportModel.cs @@ -22,15 +22,12 @@ namespace ICSharpCode.Reporting.Items public ReportModel() { SectionCollection = new List(); -// foreach (GlobalEnums.ReportSection sec in Enum.GetValues(typeof(GlobalEnums.ReportSection))) { -// SectionCollection.Add (SectionFactory.Create(sec.ToString())); -// } } #region Sections - public ISection ReportHeader + public IReportContainer ReportHeader { get { return (BaseSection)SectionCollection[0]; @@ -38,7 +35,7 @@ namespace ICSharpCode.Reporting.Items } - public ISection PageHeader + public IReportContainer PageHeader { get { return (BaseSection)SectionCollection[1]; @@ -46,7 +43,7 @@ namespace ICSharpCode.Reporting.Items } - public ISection DetailSection + public IReportContainer DetailSection { get { return (BaseSection)SectionCollection[2]; @@ -54,14 +51,14 @@ namespace ICSharpCode.Reporting.Items } - public ISection PageFooter + public IReportContainer PageFooter { get { return (BaseSection)SectionCollection[3]; } } - public ISection ReportFooter + public IReportContainer ReportFooter { get { return (BaseSection)SectionCollection[4]; diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportSettings.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportSettings.cs index 3b6a194ce8..90fe57248b 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportSettings.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportSettings.cs @@ -92,6 +92,24 @@ namespace ICSharpCode.Reporting.Items } } + +// [Category("Page Settings")] + public int BottomMargin {get;set;} + + +// [Category("Page Settings")] + public int TopMargin {get;set;} + + + +// [Category("Page Settings")] + public int LeftMargin {get;set;} + + + +// [Category("Page Settings")] + public int RightMargin {get;set;} + private Size pageSize; public Size PageSize { diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/BasePageBuilder.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/BasePageBuilder.cs index 8631ceb0b3..646f1fa821 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/BasePageBuilder.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/BasePageBuilder.cs @@ -12,6 +12,7 @@ using System.Drawing; using ICSharpCode.Reporting.BaseClasses; using ICSharpCode.Reporting.Interfaces; +using ICSharpCode.Reporting.Interfaces.Export; namespace ICSharpCode.Reporting.PageBuilder { @@ -34,7 +35,7 @@ namespace ICSharpCode.Reporting.PageBuilder protected IPage InitNewPage(){ var pi = CreatePageInfo(); - return new Page(pi); + return new Page(pi,ReportModel.ReportSettings.PageSize); } IPageInfo CreatePageInfo() @@ -43,7 +44,6 @@ namespace ICSharpCode.Reporting.PageBuilder pi.PageNumber = Pages.Count +1; pi.ReportName = ReportModel.ReportSettings.ReportName; pi.ReportFileName = ReportModel.ReportSettings.FileName; -// pi.ReportName = ReportModel.ReportSettings.ReportName; return pi; } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/Converter/ContainerConverter.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/Converter/ContainerConverter.cs new file mode 100644 index 0000000000..d03a5adbda --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/Converter/ContainerConverter.cs @@ -0,0 +1,53 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 08.04.2013 + * Time: 19:49 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using System.Collections.Generic; +using System.Drawing; + +using ICSharpCode.Reporting.Factories; +using ICSharpCode.Reporting.Interfaces; +using ICSharpCode.Reporting.Interfaces.Export; +using ICSharpCode.Reporting.Items; +using ICSharpCode.Reporting.PageBuilder.ExportColumns; + +namespace ICSharpCode.Reporting.PageBuilder.Converter +{ + /// + /// Description of SectionConverter. + /// + internal class ContainerConverter + { + private ExportColumnFactory factory; + + public ContainerConverter(IReportContainer container,Point currentLocation ) + { + Container = container; + CurrentLocation = currentLocation; + factory = new ExportColumnFactory(); + } + + + public IExportContainer Convert() { + Console.WriteLine("Convert section for location {0}",CurrentLocation); + var exportContainer = (ExportContainer)Container.CreateExportColumn(); + exportContainer.Location = CurrentLocation; + var itemsList = new List(); + foreach (var element in Container.Items) { + var item = factory.CreateItem(element); + itemsList.Add(item); + } + exportContainer.ExportedItems.AddRange(itemsList); + return exportContainer; + } + + internal IReportContainer Container {get; private set;} + + internal Point CurrentLocation {get; private set;} + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/Converter/SectionConverter.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/Converter/SectionConverter.cs deleted file mode 100644 index 3a4f864145..0000000000 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/Converter/SectionConverter.cs +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Created by SharpDevelop. - * User: Peter Forstmeier - * Date: 08.04.2013 - * Time: 19:49 - * - * To change this template use Tools | Options | Coding | Edit Standard Headers. - */ -using System; -using System.Collections.Generic; -using System.Drawing; - -using ICSharpCode.Reporting.Factories; -using ICSharpCode.Reporting.Interfaces; -using ICSharpCode.Reporting.PageBuilder.ExportColumns; - -namespace ICSharpCode.Reporting.PageBuilder.Converter -{ - /// - /// Description of SectionConverter. - /// - internal class SectionConverter - { - private Point currentPoint; - private ExportColumnFactory factory; - - public SectionConverter(ISection section,Point currentPoint ) - { - Section = section; - this.currentPoint = currentPoint; - factory = new ExportColumnFactory(); - } - - public List Convert(){ - var l = new List(); - foreach (var element in Section.Items) { - - var item = factory.CreateItem(element); - l.Add(item); - } - - return l; - } - - public ISection Section {get; private set;} - } -} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/BaseExportColumn.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportColumn.cs similarity index 59% rename from src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/BaseExportColumn.cs rename to src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportColumn.cs index d0c384ddad..5188a6594b 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/BaseExportColumn.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportColumn.cs @@ -7,15 +7,24 @@ * To change this template use Tools | Options | Coding | Edit Standard Headers. */ using System; +using System.Drawing; +using ICSharpCode.Reporting.BaseClasses; using ICSharpCode.Reporting.Interfaces; +using ICSharpCode.Reporting.Interfaces.Export; namespace ICSharpCode.Reporting.PageBuilder.ExportColumns { /// /// Description of BaseExportColumn. /// - public class BaseExportColumn:IExportColumn + public class ExportColumn:IExportColumn { + public string Name {get;set;} + + public Size Size {get;set;} + + public Point Location {get;set;} + } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportContainer.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportContainer.cs new file mode 100644 index 0000000000..561acc680f --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportContainer.cs @@ -0,0 +1,28 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 12.04.2013 + * Time: 20:27 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using System.Collections.Generic; +using ICSharpCode.Reporting.Interfaces.Export; + +namespace ICSharpCode.Reporting.PageBuilder.ExportColumns +{ + /// + /// Description of BaseExportContainer. + /// + public class ExportContainer:ExportColumn,IExportContainer + { + public ExportContainer() + { + ExportedItems = new List(); + } + + public List ExportedItems {get;set;} + + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportText.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportText.cs index e2a542198f..54f865b707 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportText.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportText.cs @@ -13,10 +13,11 @@ namespace ICSharpCode.Reporting.PageBuilder.ExportColumns /// /// Description of ExportText. /// - public class ExportText:BaseExportColumn + public class ExportText:ExportColumn { public ExportText() { } + } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/FormPageBuilder.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/FormPageBuilder.cs index f61fbe9ddc..d542cfbe62 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/FormPageBuilder.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/FormPageBuilder.cs @@ -10,7 +10,9 @@ using System; using System.Drawing; using ICSharpCode.Reporting.BaseClasses; using ICSharpCode.Reporting.Interfaces; +using ICSharpCode.Reporting.Interfaces.Export; using ICSharpCode.Reporting.PageBuilder.Converter; +using ICSharpCode.Reporting.PageBuilder.ExportColumns; namespace ICSharpCode.Reporting.PageBuilder { @@ -38,21 +40,71 @@ namespace ICSharpCode.Reporting.PageBuilder void BuildReportHeader() { if (Pages.Count == 0) { - - CurrentLocation = new Point(10,10); - var sc = new SectionConverter(ReportModel.ReportHeader,base.CurrentLocation); - var itemsList = sc.Convert(); - CurrentPage.Items.AddRange(itemsList); + var sc = new ContainerConverter(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); + CurrentLocation = new Point (ReportModel.ReportSettings.LeftMargin,r.Bottom + 10); } } + void BuildPageHeader() + { + var sc = new ContainerConverter(ReportModel.PageHeader,CurrentLocation); + var header =sc.Convert(); + CurrentPage.ExportedItems.Add(header); + } + + void BuilDetail() + { + Console.WriteLine("Build DetailSection {0} - {1} - {2}",ReportModel.ReportSettings.PageSize.Width,ReportModel.ReportSettings.LeftMargin,ReportModel.ReportSettings.RightMargin); + } + + + void BuildPageFooter() + { + Console.WriteLine("Build PageFooter {0} - {1}",ReportModel.ReportSettings.PageSize.Height,ReportModel.ReportSettings.BottomMargin); + 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 header =sc.Convert(); + CurrentPage.ExportedItems.Add(header); + } void WritePages() { CurrentPage = base.InitNewPage(); + CurrentLocation = new Point(ReportModel.ReportSettings.LeftMargin,ReportModel.ReportSettings.TopMargin); this.BuildReportHeader(); + BuildPageHeader(); + BuilDetail(); + BuildPageFooter(); base.AddPage(CurrentPage); - var x = ReportModel; + + Console.WriteLine("<{0}> Pages created",Pages.Count); + + foreach (var page in Pages) { + ShowPage(page); + } + + } + + + + + + void ShowPage( IExportContainer container) + { + foreach (var item in container.ExportedItems) { + + if (item is IExportContainer) { + Console.WriteLine("Container: {0}- {1} - {2}",item.Name,item.Location,item.Size); + ShowPage(item as IExportContainer); + } else { + Console.WriteLine("\tItem {0} -relativ location <{1}> - {2}",item.Name,item.Location,item.Size); + } + } } } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/ICSharpCode.Reporting.Test.csproj b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/ICSharpCode.Reporting.Test.csproj index 1fa451579b..eeada9a834 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/ICSharpCode.Reporting.Test.csproj +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/ICSharpCode.Reporting.Test.csproj @@ -63,6 +63,7 @@ + diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/BaseConvertFixture.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/BaseConvertFixture.cs index 213c669031..9e0679ebbe 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/BaseConvertFixture.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/BaseConvertFixture.cs @@ -25,18 +25,26 @@ namespace ICSharpCode.Reporting.Test.PageBuilder public void CurrentPageContainOneItem() { reportCreator.BuildExportList(); var page = reportCreator.Pages[0]; - Assert.That(page.Items.Count, Is.EqualTo(1)); + Assert.That(page.ExportedItems.Count, Is.EqualTo(3)); } [Test] - public void PageItemIsBaseExportColumn() { + public void PageItemIsBaseExportContainer() { reportCreator.BuildExportList(); var page = reportCreator.Pages[0]; - Assert.That(page.Items[0],Is.InstanceOf(typeof(ExportText))); + Assert.That(page.ExportedItems[0],Is.InstanceOf(typeof(ExportContainer))); } + [Test] + public void ExportContainerContainsExportText() { + reportCreator.BuildExportList(); + var page = reportCreator.Pages[0]; + var firstItem = (ExportContainer)page.ExportedItems[0]; + var result = firstItem.ExportedItems[0]; + Assert.That(result,Is.InstanceOf(typeof(ExportText))); + } [SetUp] public void LoadFromStream() { diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/ContainerConverterFixture.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/ContainerConverterFixture.cs new file mode 100644 index 0000000000..13460e0adb --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/ContainerConverterFixture.cs @@ -0,0 +1,74 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 17.04.2013 + * Time: 20:14 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using System.Drawing; +using ICSharpCode.Reporting.Interfaces; +using ICSharpCode.Reporting.Interfaces.Export; +using ICSharpCode.Reporting.Items; +using ICSharpCode.Reporting.PageBuilder.Converter; +using ICSharpCode.Reporting.PageBuilder.ExportColumns; +using NUnit.Framework; + +namespace ICSharpCode.Reporting.Test.PageBuilder +{ + [TestFixture] + public class ContainerConverterFixture + { + private IReportContainer container; + + + [Test] + public void ConverterReturnExportContainer() { + var converter = new ContainerConverter(container,new Point(30,30)); + var result = converter.Convert(); + Assert.That(result,Is.InstanceOf(typeof(IExportContainer))); + } + + + [Test] + public void ConverterReturnExportContainerwithTwoItems() + { + var converter = new ContainerConverter(container,new Point(30,30)); + var result = converter.Convert(); + Assert.That(result.ExportedItems.Count,Is.EqualTo(2)); + } + + + [Test] + public void LocationIsAdjusted() { + var pp = new Point(30,30); + var converter = new ContainerConverter(container,pp); + var result = converter.Convert(); + Assert.That(result.Location,Is.EqualTo(pp)); + } + [TestFixtureSetUp] + public void Init() + { + container = new BaseSection(){ + Size = new Size (720,60), + Location = new Point(50,50), + Name ="Section" + }; + + var item1 = new BaseTextItem(){ + Name = "Item1", + Location = new Point(10,10), + Size = new Size (60,20) + }; + + var item2 = new BaseTextItem(){ + Name = "Item2", + Location = new Point(80,10), + Size = new Size (60,20) + }; + container.Items.Add(item1); + container.Items.Add(item2); + } + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/PageBuilderFixture.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/PageBuilderFixture.cs index a3e4450b62..2408207dc7 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/PageBuilderFixture.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/PageBuilderFixture.cs @@ -11,6 +11,7 @@ using System.IO; using System.Reflection; using ICSharpCode.Reporting.Interfaces; +using ICSharpCode.Reporting.Interfaces.Export; using ICSharpCode.Reporting.PageBuilder; using NUnit.Framework; @@ -30,7 +31,6 @@ namespace ICSharpCode.Reporting.Test.PageBuilder } - #region Pages [Test] @@ -58,7 +58,6 @@ namespace ICSharpCode.Reporting.Test.PageBuilder public void CurrentPageIsFirstPage() { reportCreator.BuildExportList(); Assert.That(reportCreator.Pages[0].IsFirstPage,Is.True); - Assert.That(reportCreator.Pages[0].IsFirstPage,Is.True); } #endregion @@ -68,8 +67,8 @@ namespace ICSharpCode.Reporting.Test.PageBuilder [Test] public void PageInfoPageNumberIsOne() { reportCreator.BuildExportList(); - var pi = reportCreator.Pages[0].PageInfo; - Assert.That(pi.PageNumber,Is.EqualTo(1)); + var pageInfo = reportCreator.Pages[0].PageInfo; + Assert.That(pageInfo.PageNumber,Is.EqualTo(1)); } @@ -78,6 +77,26 @@ namespace ICSharpCode.Reporting.Test.PageBuilder reportCreator.BuildExportList(); var pi = reportCreator.Pages[0].PageInfo; Assert.That(pi.ReportName,Is.EqualTo("Report1")); + Console.WriteLine("----------------"); + foreach (var page in reportCreator.Pages) { + ShowPage(page); + } + } + + + void ShowPage( IExportContainer container) + { + foreach (var item in container.ExportedItems) { + + if (item is IExportContainer) { + Console.WriteLine("DoContainer {0} - {1} - {2}",item.Name,item.Location,item.Size); + ShowPage(item as IExportContainer); + } else { + Console.WriteLine("\tItem {0} - {1} - {2}",item.Name,item.Location,item.Size); + } + + + } } #endregion From 23d38d0864db310568fd14b0caf5d712dc864a11 Mon Sep 17 00:00:00 2001 From: Peter Forstmeier Date: Tue, 23 Apr 2013 20:35:42 +0200 Subject: [PATCH 19/33] Cleanup Interfaces and BaseClasses --- .../ICSharpCode.Reporting.csproj | 9 +- .../Src/Arrange/ArrangeStrategy.cs | 36 ++++++++ .../Src/Exporter/DebugExporter.cs | 84 +++++++++++++++++++ .../Src/Exporter/IAcceptor.cs | 20 +++++ .../Src/Exporter/IVisitor.cs | 21 +++++ .../Src/Exporter/Visitor.cs | 53 ++++++++++++ .../Src/Factories/ExportColumnFactory.cs | 2 +- .../Src/Interfaces/Export/IExportColumn.cs | 1 + .../Src/Interfaces/Export/IExportContainer.cs | 2 +- .../Src/Interfaces/IPrintableObject.cs | 5 +- .../Src/Interfaces/IReportContainer.cs | 7 +- .../Src/Interfaces/IReportCreator.cs | 4 +- .../Src/Items/BaseSection.cs | 2 + .../Src/Items/PrintableItem.cs | 9 +- .../Src/Items/ReportContainer.cs | 18 +++- .../Items/{ReportItem.cs => ReportObject.cs} | 8 +- .../Src/PageBuilder/BasePageBuilder.cs | 7 +- .../Converter/ContainerConverter.cs | 13 +-- .../PageBuilder/ExportColumns/ExportColumn.cs | 2 +- .../ExportColumns/ExportContainer.cs | 9 +- .../PageBuilder/ExportColumns/ExportText.cs | 7 +- .../Src/PageBuilder/FormPageBuilder.cs | 47 +++++------ .../ICSharpCode.Reporting.Test.csproj | 1 + .../src/Model/Report_TwoItemsFixture.cs | 2 +- .../src/PageBuilder/BaseConvertFixture.cs | 2 +- .../PageBuilder/ContainerConverterFixture.cs | 8 +- .../src/PageBuilder/PageBuilderFixture.cs | 33 +++++--- .../src/PageBuilder/PageLayoutFixture.cs | 70 ++++++++++++++++ .../src/TestHelper.cs | 52 +++++++++++- 29 files changed, 457 insertions(+), 77 deletions(-) create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Arrange/ArrangeStrategy.cs create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/DebugExporter.cs create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/IAcceptor.cs create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/IVisitor.cs create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitor.cs rename src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/{ReportItem.cs => ReportObject.cs} (87%) create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/PageLayoutFixture.cs diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj index 7b0ea97bfb..bf877d1855 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj @@ -55,9 +55,14 @@ + + + + + @@ -74,7 +79,7 @@ - + @@ -96,6 +101,8 @@ + + diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Arrange/ArrangeStrategy.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Arrange/ArrangeStrategy.cs new file mode 100644 index 0000000000..f842acfed4 --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Arrange/ArrangeStrategy.cs @@ -0,0 +1,36 @@ +/* + * 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 +{ + /// + /// Description of ArrangeStrategy. + /// + public interface IArrangeStrategy + { + void Arrange(IPrintableObject reportItem); + } + + + public class ContainerArrangeStrategy:IArrangeStrategy + { + public ContainerArrangeStrategy() + { + } + + public void Arrange(IPrintableObject reportItem) + { + Console.WriteLine("Arrange {0}",reportItem.Name); + } + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/DebugExporter.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/DebugExporter.cs new file mode 100644 index 0000000000..af27b9557d --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/DebugExporter.cs @@ -0,0 +1,84 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 18.04.2013 + * Time: 20:06 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; + +using ICSharpCode.Reporting.Interfaces.Export; + +namespace ICSharpCode.Reporting.Exporter +{ + /// + /// Description of DebugExporter. + /// + public class DebugExporter + { + + public DebugExporter(Collection pages) + { + if (pages == null) { + throw new ArgumentException("pages"); + } + + Pages = pages; + } + + + public void Run () { + foreach (var page in Pages) { + ShowDebug(page); + } + } + + 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); + + } + } + } + } + + /* + 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); + + } + } + } + } + */ + public Collection Pages {get; private set;} + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/IAcceptor.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/IAcceptor.cs new file mode 100644 index 0000000000..2c519b93aa --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/IAcceptor.cs @@ -0,0 +1,20 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 20.04.2013 + * Time: 18:30 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; + +namespace ICSharpCode.Reporting.Exporter +{ + /// + /// Description of IAcceptor. + /// + public interface IAcceptor + { + void Accept(IVisitor visitor); + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/IVisitor.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/IVisitor.cs new file mode 100644 index 0000000000..cfd08d4297 --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/IVisitor.cs @@ -0,0 +1,21 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 18.04.2013 + * Time: 20:09 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using System.Collections.Generic; +using ICSharpCode.Reporting.PageBuilder.ExportColumns; + +namespace ICSharpCode.Reporting.Exporter +{ + public interface IVisitor + { + void Visit(ExportColumn exportColumn); + void Visit(ExportContainer exportColumn); + void Visit(ExportText exportColumn); + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitor.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitor.cs new file mode 100644 index 0000000000..1f6c95140c --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitor.cs @@ -0,0 +1,53 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 18.04.2013 + * Time: 20:09 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using System.Collections.Generic; +using ICSharpCode.Reporting.PageBuilder.ExportColumns; + +namespace ICSharpCode.Reporting.Exporter +{ + /// + /// Description of Visitor. + /// + /// + + public abstract class Visitor : IVisitor + { + public abstract void Visit(ExportColumn exportColumn); + public abstract void Visit(ExportContainer exportColumn); + public abstract void Visit(ExportText exportColumn); + } + + +// http://www.remondo.net/visitor-pattern-example-csharp/ +// http://www.codeproject.com/Articles/42240/Visitor-Design-Pattern +// http://www.remondo.net/strategy-pattern-example-csharp/ + + + public class DebugVisitor : Visitor + { + public override void Visit(ExportColumn exportColumn) + { + Console.WriteLine("Visit ExportColumn {0} - {1} - {2}", exportColumn.Name,exportColumn.Size,exportColumn.Location); + } + + + + public override void Visit(ExportContainer exportColumn) + { + Console.WriteLine("Visit ExportContainer {0} - {1} - {2}", exportColumn.Name,exportColumn.Size,exportColumn.Location); + } + + public override void Visit(ExportText exportColumn) + { + Console.WriteLine("Visit ExportText {0} - {1} - {2}", exportColumn.Name,exportColumn.Size,exportColumn.Location); + } + } + +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Factories/ExportColumnFactory.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Factories/ExportColumnFactory.cs index 9fe670841a..e95848b1b8 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Factories/ExportColumnFactory.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Factories/ExportColumnFactory.cs @@ -24,7 +24,7 @@ namespace ICSharpCode.Reporting.Factories { } - public IExportColumn CreateItem (IPrintableObject item) { + public static IExportColumn CreateItem (IPrintableObject item) { var export = item.CreateExportColumn(); return export; } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/Export/IExportColumn.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/Export/IExportColumn.cs index 46b20c97f0..5c29de276a 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/Export/IExportColumn.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/Export/IExportColumn.cs @@ -8,6 +8,7 @@ */ using System; using ICSharpCode.Reporting.BaseClasses; +using ICSharpCode.Reporting.Exporter; namespace ICSharpCode.Reporting.Interfaces.Export { diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/Export/IExportContainer.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/Export/IExportContainer.cs index 1e78e7ef57..ba7732a5b2 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/Export/IExportContainer.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/Export/IExportContainer.cs @@ -17,7 +17,7 @@ namespace ICSharpCode.Reporting.Interfaces.Export /// public interface IExportContainer:IExportColumn { - List ExportedItems {get;set;} + List ExportedItems {get;} } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IPrintableObject.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IPrintableObject.cs index 84b34835ef..82430100d0 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IPrintableObject.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IPrintableObject.cs @@ -23,7 +23,10 @@ namespace ICSharpCode.Reporting.Interfaces } - public interface IPrintableObject:IReportObject { + public interface IPrintableObject { + string Name{get;set;} + Size Size {get;set;} + Point Location {get;set;} IExportColumn CreateExportColumn(); } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IReportContainer.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IReportContainer.cs index cb36b06e63..f76ca04ea1 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IReportContainer.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IReportContainer.cs @@ -16,9 +16,10 @@ namespace ICSharpCode.Reporting.Interfaces /// /// Description of IReportContainer. /// - public interface IReportContainer :IReportObject + public interface IReportContainer :IPrintableObject { - List Items {get;set;} - IExportContainer CreateExportColumn(); + List Items {get;} +// IExportContainer CreateExportColumn(); +// IExportColumn CreateExportColumn(); } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IReportCreator.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IReportCreator.cs index 76a774bae8..ab49ffe72e 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IReportCreator.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IReportCreator.cs @@ -8,6 +8,8 @@ */ using System; using System.Collections.Generic; +using System.Collections.ObjectModel; + using ICSharpCode.Reporting.BaseClasses; using ICSharpCode.Reporting.Interfaces.Export; @@ -19,7 +21,7 @@ namespace ICSharpCode.Reporting.Interfaces public interface IReportCreator { void BuildExportList (); - List Pages {get;} + Collection Pages {get;} // PagesCollection Pages{get;} // event EventHandler PageCreated; diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseSection.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseSection.cs index 5a462315be..13e13aa924 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseSection.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseSection.cs @@ -31,5 +31,7 @@ namespace ICSharpCode.Reporting.Items } #endregion + + } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/PrintableItem.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/PrintableItem.cs index d9533d64cd..911a3a8b11 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/PrintableItem.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/PrintableItem.cs @@ -13,8 +13,15 @@ using ICSharpCode.Reporting.Interfaces.Export; namespace ICSharpCode.Reporting.Items { - public class PrintableItem : ReportItem,IPrintableObject + public class PrintableItem : IPrintableObject { + public string Name { get; set; } + + public Point Location { get; set; } + + public Size Size { get; set; } + + public virtual IExportColumn CreateExportColumn() { return null; diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportContainer.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportContainer.cs index d50f2e9a16..c85e9de301 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportContainer.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportContainer.cs @@ -8,6 +8,8 @@ */ using System; using System.Collections.Generic; +using ICSharpCode.Reporting.Arrange; +using ICSharpCode.Reporting.Exporter; using ICSharpCode.Reporting.Interfaces; using ICSharpCode.Reporting.Interfaces.Export; using ICSharpCode.Reporting.PageBuilder.ExportColumns; @@ -17,7 +19,7 @@ namespace ICSharpCode.Reporting.Items /// /// Description of ReportContainer. /// - public class ReportContainer:ReportItem,IReportContainer + public class ReportContainer:PrintableItem,IReportContainer { public ReportContainer() { @@ -26,9 +28,7 @@ namespace ICSharpCode.Reporting.Items public List Items {get;set;} - - - public IExportContainer CreateExportColumn() + public override IExportColumn CreateExportColumn() { return new ExportContainer(){ Name = this.Name, @@ -36,5 +36,15 @@ namespace ICSharpCode.Reporting.Items Location = this.Location }; } + + IArrangeStrategy arrangeStrategy; + + public IArrangeStrategy ArrangeStrategy { + get {if (arrangeStrategy == null) { + arrangeStrategy = new ContainerArrangeStrategy(); + } + return arrangeStrategy; } + set { arrangeStrategy = value; } + } } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportItem.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportObject.cs similarity index 87% rename from src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportItem.cs rename to src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportObject.cs index 4d5fa0007b..a47e20f9b2 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportItem.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportObject.cs @@ -18,10 +18,10 @@ namespace ICSharpCode.Reporting.Items /// - - public class ReportItem : IReportObject + /* + public class ReportObject : IReportObject { - public ReportItem() + public ReportObject() { } @@ -34,7 +34,7 @@ namespace ICSharpCode.Reporting.Items } - + */ } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/BasePageBuilder.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/BasePageBuilder.cs index 646f1fa821..1e36646739 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/BasePageBuilder.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/BasePageBuilder.cs @@ -8,6 +8,7 @@ */ using System; using System.Collections.Generic; +using System.Collections.ObjectModel; using System.Drawing; using ICSharpCode.Reporting.BaseClasses; @@ -21,7 +22,7 @@ namespace ICSharpCode.Reporting.PageBuilder /// public class BasePageBuilder:IReportCreator { - private readonly object addLock = new object(); +// private readonly object addLock = new object(); public BasePageBuilder(IReportModel reportModel) { @@ -29,7 +30,7 @@ namespace ICSharpCode.Reporting.PageBuilder throw new ArgumentNullException("reportModel"); } ReportModel = reportModel; - Pages = new List(); + Pages = new Collection(); } @@ -67,7 +68,7 @@ namespace ICSharpCode.Reporting.PageBuilder public IPage CurrentPage {get; protected set;} - public List Pages {get; private set;} + public Collection Pages {get; private set;} } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/Converter/ContainerConverter.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/Converter/ContainerConverter.cs index d03a5adbda..7e2e710cc7 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/Converter/ContainerConverter.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/Converter/ContainerConverter.cs @@ -23,23 +23,26 @@ namespace ICSharpCode.Reporting.PageBuilder.Converter /// internal class ContainerConverter { - private ExportColumnFactory factory; +// private ExportColumnFactory factory; - public ContainerConverter(IReportContainer container,Point currentLocation ) + public ContainerConverter(IReportContainer reportContainer,Point currentLocation ) { - Container = container; + Container = reportContainer; CurrentLocation = currentLocation; - factory = new ExportColumnFactory(); +// factory = new ExportColumnFactory(); } public IExportContainer Convert() { Console.WriteLine("Convert section for location {0}",CurrentLocation); + var strat = ((ReportContainer)Container).ArrangeStrategy; + strat.Arrange(Container); + var exportContainer = (ExportContainer)Container.CreateExportColumn(); exportContainer.Location = CurrentLocation; var itemsList = new List(); foreach (var element in Container.Items) { - var item = factory.CreateItem(element); + var item = ExportColumnFactory.CreateItem(element); itemsList.Add(item); } exportContainer.ExportedItems.AddRange(itemsList); diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportColumn.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportColumn.cs index 5188a6594b..14fb745ff1 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportColumn.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportColumn.cs @@ -9,6 +9,7 @@ using System; using System.Drawing; using ICSharpCode.Reporting.BaseClasses; +using ICSharpCode.Reporting.Exporter; using ICSharpCode.Reporting.Interfaces; using ICSharpCode.Reporting.Interfaces.Export; @@ -25,6 +26,5 @@ namespace ICSharpCode.Reporting.PageBuilder.ExportColumns public Size Size {get;set;} public Point Location {get;set;} - } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportContainer.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportContainer.cs index 561acc680f..6c8ebb678f 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportContainer.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportContainer.cs @@ -8,6 +8,7 @@ */ using System; using System.Collections.Generic; +using ICSharpCode.Reporting.Exporter; using ICSharpCode.Reporting.Interfaces.Export; namespace ICSharpCode.Reporting.PageBuilder.ExportColumns @@ -15,7 +16,7 @@ namespace ICSharpCode.Reporting.PageBuilder.ExportColumns /// /// Description of BaseExportContainer. /// - public class ExportContainer:ExportColumn,IExportContainer + public class ExportContainer:ExportColumn,IExportContainer,IAcceptor { public ExportContainer() { @@ -24,5 +25,11 @@ namespace ICSharpCode.Reporting.PageBuilder.ExportColumns public List ExportedItems {get;set;} + + + public void Accept(IVisitor visitor) + { + visitor.Visit(this); + } } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportText.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportText.cs index 54f865b707..bd8186dbef 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportText.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportText.cs @@ -7,17 +7,22 @@ * To change this template use Tools | Options | Coding | Edit Standard Headers. */ using System; +using ICSharpCode.Reporting.Exporter; namespace ICSharpCode.Reporting.PageBuilder.ExportColumns { /// /// Description of ExportText. /// - public class ExportText:ExportColumn + public class ExportText:ExportColumn,IAcceptor { public ExportText() { } + public void Accept(IVisitor visitor) + { + visitor.Visit(this); + } } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/FormPageBuilder.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/FormPageBuilder.cs index d542cfbe62..5970a48738 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/FormPageBuilder.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/FormPageBuilder.cs @@ -9,6 +9,7 @@ using System; using System.Drawing; using ICSharpCode.Reporting.BaseClasses; +using ICSharpCode.Reporting.Exporter; using ICSharpCode.Reporting.Interfaces; using ICSharpCode.Reporting.Interfaces.Export; using ICSharpCode.Reporting.PageBuilder.Converter; @@ -22,7 +23,7 @@ namespace ICSharpCode.Reporting.PageBuilder public class FormPageBuilder:BasePageBuilder { - private readonly object addLock = new object(); +// private readonly object addLock = new object(); public FormPageBuilder(IReportModel reportModel):base(reportModel) { @@ -44,7 +45,7 @@ namespace ICSharpCode.Reporting.PageBuilder var header =sc.Convert(); CurrentPage.ExportedItems.Add(header); var r = new Rectangle(header.Location.X,header.Location.Y,header.Size.Width,header.Size.Height); - CurrentLocation = new Point (ReportModel.ReportSettings.LeftMargin,r.Bottom + 10); + CurrentLocation = new Point (ReportModel.ReportSettings.LeftMargin,r.Bottom + 5); } } @@ -57,13 +58,13 @@ namespace ICSharpCode.Reporting.PageBuilder void BuilDetail() { - Console.WriteLine("Build DetailSection {0} - {1} - {2}",ReportModel.ReportSettings.PageSize.Width,ReportModel.ReportSettings.LeftMargin,ReportModel.ReportSettings.RightMargin); + Console.WriteLine("FormPageBuilder - Build DetailSection {0} - {1} - {2}",ReportModel.ReportSettings.PageSize.Width,ReportModel.ReportSettings.LeftMargin,ReportModel.ReportSettings.RightMargin); } void BuildPageFooter() { - Console.WriteLine("Build PageFooter {0} - {1}",ReportModel.ReportSettings.PageSize.Height,ReportModel.ReportSettings.BottomMargin); + Console.WriteLine("FormPageBuilder - Build PageFooter {0} - {1}",ReportModel.ReportSettings.PageSize.Height,ReportModel.ReportSettings.BottomMargin); CurrentLocation = new Point(ReportModel.ReportSettings.LeftMargin, ReportModel.ReportSettings.PageSize.Height - ReportModel.ReportSettings.BottomMargin - ReportModel.PageFooter.Size.Height); @@ -72,6 +73,19 @@ namespace ICSharpCode.Reporting.PageBuilder CurrentPage.ExportedItems.Add(header); } + + void BuildReportFooter() + { + Console.WriteLine("FormPageBuilder - Build ReportFooter {0} - {1}",ReportModel.ReportSettings.PageSize.Height,ReportModel.ReportSettings.BottomMargin); + 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 header =sc.Convert(); + CurrentPage.ExportedItems.Add(header); + } + + void WritePages() { CurrentPage = base.InitNewPage(); @@ -80,31 +94,10 @@ namespace ICSharpCode.Reporting.PageBuilder BuildPageHeader(); BuilDetail(); BuildPageFooter(); +// BuildReportFooter(); base.AddPage(CurrentPage); - - Console.WriteLine("<{0}> Pages created",Pages.Count); - - foreach (var page in Pages) { - ShowPage(page); - } - } - - - - - void ShowPage( IExportContainer container) - { - foreach (var item in container.ExportedItems) { - - if (item is IExportContainer) { - Console.WriteLine("Container: {0}- {1} - {2}",item.Name,item.Location,item.Size); - ShowPage(item as IExportContainer); - } else { - Console.WriteLine("\tItem {0} -relativ location <{1}> - {2}",item.Name,item.Location,item.Size); - } - } - } + } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/ICSharpCode.Reporting.Test.csproj b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/ICSharpCode.Reporting.Test.csproj index eeada9a834..37b7b7ee18 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/ICSharpCode.Reporting.Test.csproj +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/ICSharpCode.Reporting.Test.csproj @@ -65,6 +65,7 @@ + diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/Model/Report_TwoItemsFixture.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/Model/Report_TwoItemsFixture.cs index 947171239a..6d580ac0ce 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/Model/Report_TwoItemsFixture.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/Model/Report_TwoItemsFixture.cs @@ -17,7 +17,7 @@ using NUnit.Framework; namespace ICSharpCode.Reporting.Test.Model { [TestFixture] - public class Report_TwoItemsFixture + public class ReportTwoItemsFixture { Stream stream; diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/BaseConvertFixture.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/BaseConvertFixture.cs index 9e0679ebbe..f8994db4ed 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/BaseConvertFixture.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/BaseConvertFixture.cs @@ -22,7 +22,7 @@ namespace ICSharpCode.Reporting.Test.PageBuilder [Test] - public void CurrentPageContainOneItem() { + public void CurrentPageContainFiveItems() { reportCreator.BuildExportList(); var page = reportCreator.Pages[0]; Assert.That(page.ExportedItems.Count, Is.EqualTo(3)); diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/ContainerConverterFixture.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/ContainerConverterFixture.cs index 13460e0adb..6c9d8f9b76 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/ContainerConverterFixture.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/ContainerConverterFixture.cs @@ -42,11 +42,13 @@ namespace ICSharpCode.Reporting.Test.PageBuilder [Test] public void LocationIsAdjusted() { - var pp = new Point(30,30); - var converter = new ContainerConverter(container,pp); + var location = new Point(30,30); + var converter = new ContainerConverter(container,location); var result = converter.Convert(); - Assert.That(result.Location,Is.EqualTo(pp)); + Assert.That(result.Location,Is.EqualTo(location)); } + + [TestFixtureSetUp] public void Init() { diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/PageBuilderFixture.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/PageBuilderFixture.cs index 2408207dc7..7fac7a11db 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/PageBuilderFixture.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/PageBuilderFixture.cs @@ -10,6 +10,7 @@ using System; using System.IO; using System.Reflection; +using ICSharpCode.Reporting.Exporter; using ICSharpCode.Reporting.Interfaces; using ICSharpCode.Reporting.Interfaces.Export; using ICSharpCode.Reporting.PageBuilder; @@ -23,7 +24,6 @@ namespace ICSharpCode.Reporting.Test.PageBuilder private IReportCreator reportCreator; - [Test] public void CanCreateFormsPageBuilder() { @@ -77,27 +77,34 @@ namespace ICSharpCode.Reporting.Test.PageBuilder reportCreator.BuildExportList(); var pi = reportCreator.Pages[0].PageInfo; Assert.That(pi.ReportName,Is.EqualTo("Report1")); - Console.WriteLine("----------------"); - foreach (var page in reportCreator.Pages) { - ShowPage(page); - } +// Console.WriteLine("----------------"); +// foreach (var page in reportCreator.Pages) { +// TestHelper.ShowDebug(page); +// } } - - void ShowPage( IExportContainer container) + /* + void ShowDebug(IExportContainer container) { + var visitor = new DebugVisitor(); foreach (var item in container.ExportedItems) { - if (item is IExportContainer) { - Console.WriteLine("DoContainer {0} - {1} - {2}",item.Name,item.Location,item.Size); - ShowPage(item as IExportContainer); + var a = item as IAcceptor; + if (a != null) { + Console.WriteLine("----"); + a.Accept(visitor); + } + ShowDebug(item as IExportContainer); } else { - Console.WriteLine("\tItem {0} - {1} - {2}",item.Name,item.Location,item.Size); + var b = item as IAcceptor; + if (b != null) { + b.Accept(visitor); + + } } - - } } + */ #endregion diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/PageLayoutFixture.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/PageLayoutFixture.cs new file mode 100644 index 0000000000..8d2088fbde --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/PageLayoutFixture.cs @@ -0,0 +1,70 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 21.04.2013 + * Time: 18:18 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using System.Drawing; +using System.Linq; +using System.Reflection; + +using ICSharpCode.Reporting.Exporter; +using ICSharpCode.Reporting.Interfaces; +using ICSharpCode.Reporting.Interfaces.Export; +using ICSharpCode.Reporting.PageBuilder.ExportColumns; +using NUnit.Framework; + +namespace ICSharpCode.Reporting.Test.PageBuilder +{ + [TestFixture] + public class PageLayoutFixture + { + private IReportCreator reportCreator; + + [Test] + public void PageContainsFourExportContainer() + { + reportCreator.BuildExportList(); + var x = reportCreator.Pages[0].ExportedItems; + var y = from s in x + where s.GetType() == typeof(ExportContainer) + select s; + Assert.That(y.ToList().Count,Is.EqualTo(3)); + Console.WriteLine("-------ShowDebug---------"); + var ex = new DebugExporter(reportCreator.Pages); + ex.Run(); + } + + [Test] + public void SectionsInpageDoNotOverlap() + { + Point p = Point.Empty; + reportCreator.BuildExportList(); + foreach (IPage element in reportCreator.Pages) { + var first = true; + foreach (var item in element.ExportedItems) { + if (! first) { + var p2 = new Point(item.Location.X,item.Location.Y); + Assert.That(p2.Y,Is.GreaterThan(p.Y)); + } else { + first = false; + } + p = new Point(item.Location.X,item.Location.Y + item.Size.Height); + } + } + } + + + [SetUp] + public void LoadFromStream() + { + System.Reflection.Assembly asm = Assembly.GetExecutingAssembly(); + var stream = asm.GetManifestResourceStream(TestHelper.RepWithTwoItems); + var reportingFactory = new ReportingFactory(); + reportCreator = reportingFactory.ReportCreator(stream); + } + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/TestHelper.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/TestHelper.cs index dee6e25142..5b2073dd80 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/TestHelper.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/TestHelper.cs @@ -7,21 +7,20 @@ * To change this template use Tools | Options | Coding | Edit Standard Headers. */ using System; +using ICSharpCode.Reporting.Exporter; +using ICSharpCode.Reporting.Interfaces.Export; namespace ICSharpCode.Reporting.Test { /// /// Description of TestHelper. /// - public class TestHelper + public static class TestHelper { private const string nameSpace = "ICSharpCode.Reporting.Test.src.TestReports."; private const string plainReportName = "PlainModel.srd"; private const string rr = "ReportWithTwoItems.srd"; - public TestHelper() - { - } public static string PlainReportFileName{ get{return nameSpace + plainReportName;} @@ -30,5 +29,50 @@ namespace ICSharpCode.Reporting.Test public static string RepWithTwoItems { get {return nameSpace + rr;} } + + + public static void ShowDebug(IExportContainer exportContainer) + { + var visitor = new DebugVisitor(); + foreach (var item in exportContainer.ExportedItems) { + var container = item as IExportContainer; + var acceptor = item as IAcceptor; + if (container != null) { + if (acceptor != null) { + Console.WriteLine("----"); + acceptor.Accept(visitor); + } + ShowDebug(container); + } else { +// var b = item as IAcceptor; + if (acceptor != null) { + acceptor.Accept(visitor); + + } + } + } + } + /* + 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); + + } + } + } + } + */ } } From 39957473aa51cbaf2d93cb27c4f461361aa8063a Mon Sep 17 00:00:00 2001 From: Peter Forstmeier Date: Tue, 23 Apr 2013 20:37:44 +0200 Subject: [PATCH 20/33] Cleanup --- .../ICSharpCode.Reporting.csproj | 1 - .../Src/Interfaces/IPrintableObject.cs | 8 +--- .../Src/Interfaces/IReportContainer.cs | 2 - .../Src/Items/ReportObject.cs | 40 ------------------- 4 files changed, 2 insertions(+), 49 deletions(-) delete mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportObject.cs diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj index bf877d1855..5ac10351ce 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj @@ -79,7 +79,6 @@ - diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IPrintableObject.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IPrintableObject.cs index 82430100d0..933fd34889 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IPrintableObject.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IPrintableObject.cs @@ -15,18 +15,14 @@ namespace ICSharpCode.Reporting.Interfaces /// /// Description of IPrintObject. /// - public interface IReportObject - { + public interface IReportObject { string Name{get;set;} Size Size {get;set;} Point Location {get;set;} } - public interface IPrintableObject { - string Name{get;set;} - Size Size {get;set;} - Point Location {get;set;} + public interface IPrintableObject:IReportObject { IExportColumn CreateExportColumn(); } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IReportContainer.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IReportContainer.cs index f76ca04ea1..210eddd9f1 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IReportContainer.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IReportContainer.cs @@ -19,7 +19,5 @@ namespace ICSharpCode.Reporting.Interfaces public interface IReportContainer :IPrintableObject { List Items {get;} -// IExportContainer CreateExportColumn(); -// IExportColumn CreateExportColumn(); } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportObject.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportObject.cs deleted file mode 100644 index a47e20f9b2..0000000000 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportObject.cs +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Created by SharpDevelop. - * User: Peter Forstmeier - * Date: 06.04.2013 - * Time: 20:15 - * - * To change this template use Tools | Options | Coding | Edit Standard Headers. - */ -using System; -using System.Drawing; -using ICSharpCode.Reporting.Interfaces; -using ICSharpCode.Reporting.Interfaces.Export; - -namespace ICSharpCode.Reporting.Items -{ - /// - /// Description of ReportItem. - /// - - - /* - public class ReportObject : IReportObject - { - public ReportObject() - { - } - - - public string Name { get; set; } - - public Point Location { get; set; } - - public Size Size { get; set; } - - - } - */ - - -} From 43bec543900617405b3109455d5e34c95fea42e7 Mon Sep 17 00:00:00 2001 From: Peter Forstmeier Date: Sun, 28 Apr 2013 19:56:50 +0200 Subject: [PATCH 21/33] PrintExporter --- .../ICSharpCode.Reporting.csproj | 11 ++- .../Src/BaseClasses/Page.cs | 9 ++- .../Src/Exporter/BaseExporter.cs | 36 +++++++++ .../Src/Exporter/DebugExporter.cs | 62 +++++---------- .../Src/Exporter/PrintExporter.cs | 57 ++++++++++++++ .../Src/Exporter/Visitors/AbstractVisitor.cs | 24 ++++++ .../{Visitor.cs => Visitors/DebugVisitor.cs} | 16 +--- .../Src/Exporter/{ => Visitors}/IAcceptor.cs | 2 +- .../Src/Exporter/{ => Visitors}/IVisitor.cs | 2 +- .../Src/Globals/CreateGraphics.cs | 28 +++++++ .../Src/Globals/GlobalValues.cs | 11 +++ .../Src/Items/BaseSection.cs | 2 +- .../Src/Items/BaseTextItem.cs | 8 +- .../Src/Items/ReportContainer.cs | 8 +- .../Converter/ContainerConverter.cs | 2 - .../ExportColumns/ExportContainer.cs | 9 ++- .../PageBuilder/ExportColumns/ExportText.cs | 15 +++- .../ICSharpCode.Reporting.Test.csproj | 3 + .../src/PageBuilder/PageBuilderFixture.cs | 44 ----------- .../src/PageBuilder/PageFixture.cs | 78 +++++++++++++++++++ .../src/ReportItems/TextItemFixture.cs | 53 +++++++++++++ .../src/TestHelper.cs | 1 + 22 files changed, 363 insertions(+), 118 deletions(-) create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/BaseExporter.cs create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/PrintExporter.cs create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/AbstractVisitor.cs rename src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/{Visitor.cs => Visitors/DebugVisitor.cs} (74%) rename src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/{ => Visitors}/IAcceptor.cs (86%) rename src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/{ => Visitors}/IVisitor.cs (89%) create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Globals/CreateGraphics.cs create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/PageFixture.cs create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/ReportItems/TextItemFixture.cs diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj index 5ac10351ce..37c8bcc3c8 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj @@ -59,12 +59,16 @@ + - - - + + + + + + @@ -92,6 +96,7 @@ + diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/Page.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/Page.cs index ff18084857..87cac420b2 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/Page.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/Page.cs @@ -20,7 +20,6 @@ namespace ICSharpCode.Reporting.BaseClasses /// /// - public class Page:IPage { public Page(IPageInfo pageInfo,Size pageSize) @@ -31,7 +30,7 @@ namespace ICSharpCode.Reporting.BaseClasses PageInfo = pageInfo; Name = "Page"; Size = pageSize; - ExportedItems = new List(); + exportedItems = new List(); } public bool IsFirstPage {get;set;} @@ -49,7 +48,11 @@ namespace ICSharpCode.Reporting.BaseClasses public System.Drawing.Point Location {get;set;} - public List ExportedItems {get;set;} + public List exportedItems; + + public List ExportedItems { + get { return exportedItems; } + } public IExportContainer CreateExportColumn() diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/BaseExporter.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/BaseExporter.cs new file mode 100644 index 0000000000..448fa6627c --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/BaseExporter.cs @@ -0,0 +1,36 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 28.04.2013 + * Time: 18:59 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using System.Collections.ObjectModel; +using ICSharpCode.Reporting.Interfaces.Export; + +namespace ICSharpCode.Reporting.Exporter +{ + /// + /// Description of Baseexport. + /// + public class BaseExporter + { + public BaseExporter(Collection pages) + { + if (pages == null) { + throw new ArgumentException("pages"); + } + + Pages = pages; + } + + public virtual void Run () { + + } + + + public Collection Pages {get; private set;} + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/DebugExporter.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/DebugExporter.cs index af27b9557d..9916b4f6e7 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/DebugExporter.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/DebugExporter.cs @@ -10,6 +10,7 @@ using System; using System.Collections.Generic; using System.Collections.ObjectModel; +using ICSharpCode.Reporting.Exporter.Visitors; using ICSharpCode.Reporting.Interfaces.Export; namespace ICSharpCode.Reporting.Exporter @@ -17,68 +18,43 @@ namespace ICSharpCode.Reporting.Exporter /// /// Description of DebugExporter. /// - public class DebugExporter + public class DebugExporter:BaseExporter { + private DebugVisitor visitor; - public DebugExporter(Collection pages) + public DebugExporter(Collection pages):base(pages) { - if (pages == null) { - throw new ArgumentException("pages"); - } - - Pages = pages; + visitor = new DebugVisitor(); } - - public void Run () { + + public override void Run () { foreach (var page in Pages) { ShowDebug(page); } } - 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); - - } - } - } - } - /* - static void ShowDebug(IExportContainer container) + void ShowDebug(IExportContainer container) { - var visitor = new DebugVisitor(); +// 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); + var exportContainer = item as IExportContainer; + var acceptor = item as IAcceptor; + if (exportContainer != null) { + if (acceptor != null) { + Console.WriteLine("--container--"); + acceptor.Accept(visitor); } ShowDebug(item as IExportContainer); } else { - var b = item as IAcceptor; - if (b != null) { - b.Accept(visitor); - + if (acceptor != null) { + Console.WriteLine("..Item..."); + acceptor.Accept(visitor); } } } } - */ - public Collection Pages {get; private set;} + } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/PrintExporter.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/PrintExporter.cs new file mode 100644 index 0000000000..e689d1204b --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/PrintExporter.cs @@ -0,0 +1,57 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 28.04.2013 + * Time: 18:01 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using System.Collections.ObjectModel; +using ICSharpCode.Reporting.Exporter.Visitors; +using ICSharpCode.Reporting.Interfaces.Export; + +namespace ICSharpCode.Reporting.Exporter +{ + /// + /// Description of PrintExporter. + /// + public class PrintExporter:BaseExporter + { + private DebugVisitor visitor; + + public PrintExporter(Collection pages):base(pages) + { + visitor = new DebugVisitor(); + } + + + public override void Run () { + foreach (var page in Pages) { + ShowDebug(page); + } + } + + + void ShowDebug(IExportContainer container) + { + var visitor = new DebugVisitor(); + foreach (var item in container.ExportedItems) { + var exportContainer = item as IExportContainer; + var acceptor = item as IAcceptor; + if (exportContainer != null) { + if (acceptor != null) { + Console.WriteLine("--container--"); + acceptor.Accept(visitor); + } + ShowDebug(item as IExportContainer); + } else { + if (acceptor != null) { + Console.WriteLine("..Item..."); + acceptor.Accept(visitor); + } + } + } + } + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/AbstractVisitor.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/AbstractVisitor.cs new file mode 100644 index 0000000000..6be4ce0ada --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/AbstractVisitor.cs @@ -0,0 +1,24 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 28.04.2013 + * Time: 19:49 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using System.Collections.Generic; +using ICSharpCode.Reporting.PageBuilder.ExportColumns; + +namespace ICSharpCode.Reporting.Exporter.Visitors +{ + /// + /// Description of AbstractVisitor. + /// + public abstract class AbstractVisitor : IVisitor + { + public abstract void Visit(ExportColumn exportColumn); + public abstract void Visit(ExportContainer exportColumn); + public abstract void Visit(ExportText exportColumn); + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitor.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/DebugVisitor.cs similarity index 74% rename from src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitor.cs rename to src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/DebugVisitor.cs index 1f6c95140c..34af5a218d 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitor.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/DebugVisitor.cs @@ -10,27 +10,15 @@ using System; using System.Collections.Generic; using ICSharpCode.Reporting.PageBuilder.ExportColumns; -namespace ICSharpCode.Reporting.Exporter +namespace ICSharpCode.Reporting.Exporter.Visitors { - /// - /// Description of Visitor. - /// - /// - - public abstract class Visitor : IVisitor - { - public abstract void Visit(ExportColumn exportColumn); - public abstract void Visit(ExportContainer exportColumn); - public abstract void Visit(ExportText exportColumn); - } - // http://www.remondo.net/visitor-pattern-example-csharp/ // http://www.codeproject.com/Articles/42240/Visitor-Design-Pattern // http://www.remondo.net/strategy-pattern-example-csharp/ - public class DebugVisitor : Visitor + public class DebugVisitor : AbstractVisitor { public override void Visit(ExportColumn exportColumn) { diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/IAcceptor.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/IAcceptor.cs similarity index 86% rename from src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/IAcceptor.cs rename to src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/IAcceptor.cs index 2c519b93aa..03f227975f 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/IAcceptor.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/IAcceptor.cs @@ -8,7 +8,7 @@ */ using System; -namespace ICSharpCode.Reporting.Exporter +namespace ICSharpCode.Reporting.Exporter.Visitors { /// /// Description of IAcceptor. diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/IVisitor.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/IVisitor.cs similarity index 89% rename from src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/IVisitor.cs rename to src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/IVisitor.cs index cfd08d4297..d0c775add7 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/IVisitor.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/IVisitor.cs @@ -10,7 +10,7 @@ using System; using System.Collections.Generic; using ICSharpCode.Reporting.PageBuilder.ExportColumns; -namespace ICSharpCode.Reporting.Exporter +namespace ICSharpCode.Reporting.Exporter.Visitors { public interface IVisitor { diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Globals/CreateGraphics.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Globals/CreateGraphics.cs new file mode 100644 index 0000000000..e6885fa247 --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Globals/CreateGraphics.cs @@ -0,0 +1,28 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 24.04.2013 + * Time: 19:53 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using System.Drawing; + +namespace ICSharpCode.Reporting.Globals +{ + /// + /// Description of CreateGraphics. + /// + public class CreateGraphics + { + public static Graphics FromSize (Size size){ + if (size == null) { + throw new ArgumentNullException("size"); + } + Bitmap bitmap = new Bitmap(size.Width,size.Height); + var graphics = Graphics.FromImage(bitmap); + return graphics; + } + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Globals/GlobalValues.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Globals/GlobalValues.cs index 4b708593af..11b5a7bfdb 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Globals/GlobalValues.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Globals/GlobalValues.cs @@ -27,5 +27,16 @@ namespace ICSharpCode.Reporting.Globals return DefaultReportName + ReportExtension; } } + + + public static Font DefaultFont + { + get { + return new Font("Microsoft Sans Serif", + 10, + FontStyle.Regular, + GraphicsUnit.Point); + } + } } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseSection.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseSection.cs index 13e13aa924..8d565e8dd7 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseSection.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseSection.cs @@ -23,7 +23,7 @@ namespace ICSharpCode.Reporting.Items public BaseSection() { - Items = new List(); +// Items = new List(); } public BaseSection (string name) { diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseTextItem.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseTextItem.cs index 002882f7ea..b1aaacbced 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseTextItem.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseTextItem.cs @@ -8,6 +8,7 @@ */ using System; using System.Drawing; +using ICSharpCode.Reporting.Globals; using ICSharpCode.Reporting.Interfaces; using ICSharpCode.Reporting.Interfaces.Export; using ICSharpCode.Reporting.PageBuilder.ExportColumns; @@ -25,16 +26,21 @@ namespace ICSharpCode.Reporting.Items public class BaseTextItem:PrintableItem,ITextItem { public BaseTextItem(){ + Name = "BaseTextItem"; + Font = GlobalValues.DefaultFont; } + public Font Font {get;set;} - public override IExportColumn CreateExportColumn() + + public override IExportColumn CreateExportColumn() { var ex = new ExportText(); ex.Name = Name; ex.Location = Location; ex.Size = Size; + ex.Font = Font; return ex; } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportContainer.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportContainer.cs index c85e9de301..5186c3870e 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportContainer.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportContainer.cs @@ -21,12 +21,18 @@ namespace ICSharpCode.Reporting.Items /// public class ReportContainer:PrintableItem,IReportContainer { + public ReportContainer() { + items = new List(); } + private List items; - public List Items {get;set;} + public List Items { + get { return items; } + } + public override IExportColumn CreateExportColumn() { diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/Converter/ContainerConverter.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/Converter/ContainerConverter.cs index 7e2e710cc7..f501458827 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/Converter/ContainerConverter.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/Converter/ContainerConverter.cs @@ -23,13 +23,11 @@ namespace ICSharpCode.Reporting.PageBuilder.Converter /// internal class ContainerConverter { -// private ExportColumnFactory factory; public ContainerConverter(IReportContainer reportContainer,Point currentLocation ) { Container = reportContainer; CurrentLocation = currentLocation; -// factory = new ExportColumnFactory(); } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportContainer.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportContainer.cs index 6c8ebb678f..0f53a920b3 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportContainer.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportContainer.cs @@ -9,6 +9,7 @@ using System; using System.Collections.Generic; using ICSharpCode.Reporting.Exporter; +using ICSharpCode.Reporting.Exporter.Visitors; using ICSharpCode.Reporting.Interfaces.Export; namespace ICSharpCode.Reporting.PageBuilder.ExportColumns @@ -20,12 +21,14 @@ namespace ICSharpCode.Reporting.PageBuilder.ExportColumns { public ExportContainer() { - ExportedItems = new List(); + exportedItems = new List(); } - public List ExportedItems {get;set;} - + List exportedItems; + public List ExportedItems { + get { return exportedItems; } + } public void Accept(IVisitor visitor) { diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportText.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportText.cs index bd8186dbef..95e583efe0 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportText.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportText.cs @@ -7,14 +7,24 @@ * To change this template use Tools | Options | Coding | Edit Standard Headers. */ using System; +using System.Drawing; using ICSharpCode.Reporting.Exporter; +using ICSharpCode.Reporting.Exporter.Visitors; +using ICSharpCode.Reporting.Interfaces.Export; namespace ICSharpCode.Reporting.PageBuilder.ExportColumns { /// /// Description of ExportText. /// - public class ExportText:ExportColumn,IAcceptor + /// + public interface IExportText : IExportColumn + { + Font Font {get;set;} + } + + + public class ExportText:ExportColumn,IExportText,IAcceptor { public ExportText() { @@ -24,5 +34,8 @@ namespace ICSharpCode.Reporting.PageBuilder.ExportColumns { visitor.Visit(this); } + + public Font Font {get;set;} + } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/ICSharpCode.Reporting.Test.csproj b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/ICSharpCode.Reporting.Test.csproj index 37b7b7ee18..f4d8956ae6 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/ICSharpCode.Reporting.Test.csproj +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/ICSharpCode.Reporting.Test.csproj @@ -65,13 +65,16 @@ + + + diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/PageBuilderFixture.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/PageBuilderFixture.cs index 7fac7a11db..bd57c50c0c 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/PageBuilderFixture.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/PageBuilderFixture.cs @@ -62,51 +62,7 @@ namespace ICSharpCode.Reporting.Test.PageBuilder #endregion - #region PageInfo - [Test] - public void PageInfoPageNumberIsOne() { - reportCreator.BuildExportList(); - var pageInfo = reportCreator.Pages[0].PageInfo; - Assert.That(pageInfo.PageNumber,Is.EqualTo(1)); - } - - - [Test] - public void PageInfoReportName() { - reportCreator.BuildExportList(); - var pi = reportCreator.Pages[0].PageInfo; - Assert.That(pi.ReportName,Is.EqualTo("Report1")); -// Console.WriteLine("----------------"); -// foreach (var page in reportCreator.Pages) { -// TestHelper.ShowDebug(page); -// } - } - - /* - 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); - - } - } - } - } - */ - - #endregion [SetUp] public void LoadFromStream() diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/PageFixture.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/PageFixture.cs new file mode 100644 index 0000000000..b427fc2dd7 --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/PageFixture.cs @@ -0,0 +1,78 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 24.04.2013 + * Time: 19:55 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using System.IO; +using System.Reflection; +using System.Drawing; +using ICSharpCode.Reporting.Exporter; +using ICSharpCode.Reporting.Globals; +using ICSharpCode.Reporting.Interfaces; +using ICSharpCode.Reporting.Interfaces.Export; +using ICSharpCode.Reporting.PageBuilder; +using NUnit.Framework; + +namespace ICSharpCode.Reporting.Test.PageBuilder +{ + [TestFixture] + public class PageFixture + { + + private IReportCreator reportCreator; + + [Test] + public void CreateGraphicsFromPageSize () { + reportCreator.BuildExportList(); + var page = reportCreator.Pages[0]; + Graphics g = CreateGraphics.FromSize(page.Size); + Assert.That(g,Is.Not.Null); + } +// http://www.dev102.com/2008/10/09/measure-string-size-in-pixels-c/ + //http://www.codeproject.com/Articles/2118/Bypass-Graphics-MeasureString-limitations + //http://codebetter.com/patricksmacchia/2009/08/31/reveal-hidden-api-usage-tricks-from-any-net-application/ + + + [Test] + public void GraphicsIsSameSizeAsPage() { + reportCreator.BuildExportList(); + var page = reportCreator.Pages[0]; + var graphics = CreateGraphics.FromSize(page.Size); + Assert.That(graphics.VisibleClipBounds.Width,Is.EqualTo(page.Size.Width)); + Assert.That(graphics.VisibleClipBounds.Height,Is.EqualTo(page.Size.Height)); + } + + #region PageInfo + + [Test] + public void PageInfoPageNumberIsOne() { + reportCreator.BuildExportList(); + var pageInfo = reportCreator.Pages[0].PageInfo; + Assert.That(pageInfo.PageNumber,Is.EqualTo(1)); + } + + + [Test] + public void PageInfoReportName() { + reportCreator.BuildExportList(); + var pi = reportCreator.Pages[0].PageInfo; + Assert.That(pi.ReportName,Is.EqualTo("Report1")); + } + + + #endregion + + [SetUp] + public void LoadFromStream() + { + System.Reflection.Assembly asm = Assembly.GetExecutingAssembly(); + var stream = asm.GetManifestResourceStream(TestHelper.RepWithTwoItems); + var reportingFactory = new ReportingFactory(); + reportCreator = reportingFactory.ReportCreator(stream); + } + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/ReportItems/TextItemFixture.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/ReportItems/TextItemFixture.cs new file mode 100644 index 0000000000..404e790edf --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/ReportItems/TextItemFixture.cs @@ -0,0 +1,53 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 25.04.2013 + * Time: 19:45 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using ICSharpCode.Reporting.Globals; +using ICSharpCode.Reporting.Items; +using ICSharpCode.Reporting.PageBuilder.ExportColumns; +using NUnit.Framework; + +namespace ICSharpCode.Reporting.Test.ReportItems +{ + [TestFixture] + public class TextItemFixture + { + [Test] + public void IsNameSetOnInitialize() { + var ti = new BaseTextItem(); + Assert.That (ti.Name,Is.EqualTo("BaseTextItem")); + } + + + [Test] + public void ChangeName() { + var newName = "changed"; + var ti = new BaseTextItem(); + ti.Name = newName; + Assert.That(ti.Name,Is.EqualTo(newName)); + } + + + [Test] + public void DefaultFontOnInitialize() { + var ti = new BaseTextItem(); + Assert.That(ti.Font,Is.EqualTo(GlobalValues.DefaultFont)); + } + + [Test] + public void CreateExportText() { + var ti = new BaseTextItem(); + var exportText = (ExportText)ti.CreateExportColumn(); + Assert.That(exportText.Name,Is.EqualTo(ti.Name)); + Assert.That(exportText.Location,Is.EqualTo(ti.Location)); + Assert.That(exportText.Size,Is.EqualTo(ti.Size)); + Assert.That(exportText.Font , Is.EqualTo(GlobalValues.DefaultFont)); + } + + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/TestHelper.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/TestHelper.cs index 5b2073dd80..d616732761 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/TestHelper.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/TestHelper.cs @@ -8,6 +8,7 @@ */ using System; using ICSharpCode.Reporting.Exporter; +using ICSharpCode.Reporting.Exporter.Visitors; using ICSharpCode.Reporting.Interfaces.Export; namespace ICSharpCode.Reporting.Test From dd58109d39f5fd9d1c7b58c680bd745b140bc097 Mon Sep 17 00:00:00 2001 From: Peter Forstmeier Date: Wed, 1 May 2013 20:16:23 +0200 Subject: [PATCH 22/33] TestView for .Reporting MeasurementService and MeasureStrategy --- .../ICSharpCode.Reporting.csproj | 3 +- .../Src/Arrange/ArrangeStrategy.cs | 36 -------- .../Src/Arrange/ContainerArrangeStrategy.cs | 48 ++++++++++ .../Src/Exporter/DebugExporter.cs | 1 - .../Src/Factories/ExportColumnFactory.cs | 2 +- .../Src/Globals/MeasurementService.cs | 40 +++++++++ .../Src/Interfaces/IPrintableObject.cs | 2 + .../Src/Items/BaseTextItem.cs | 11 +++ .../Src/Items/PrintableItem.cs | 6 ++ .../Src/Items/ReportContainer.cs | 21 +++-- .../Src/PageBuilder/BasePageBuilder.cs | 2 +- .../Converter/ContainerConverter.cs | 21 ++++- .../Src/PageBuilder/FormPageBuilder.cs | 13 +-- .../Src/ReportingFactory.cs | 1 - .../PageBuilder/ContainerConverterFixture.cs | 11 ++- .../src/TestHelper.cs | 22 ----- .../src/TestReports/ReportWithTwoItems.srd | 2 +- .../ICSharpCode.Reports.Addin.csproj | 6 +- .../Project/Commands/FormsCommand.cs | 3 +- .../Project/ReportDesignerView.cs | 30 ++++--- .../TestView/TestSecondaryView.cs | 87 +++++++++++++++++++ 21 files changed, 269 insertions(+), 99 deletions(-) delete mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Arrange/ArrangeStrategy.cs create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Arrange/ContainerArrangeStrategy.cs create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Globals/MeasurementService.cs create mode 100644 src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/TestView/TestSecondaryView.cs diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj index 37c8bcc3c8..218049b945 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj @@ -55,7 +55,7 @@ - + @@ -69,6 +69,7 @@ + diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Arrange/ArrangeStrategy.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Arrange/ArrangeStrategy.cs deleted file mode 100644 index f842acfed4..0000000000 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Arrange/ArrangeStrategy.cs +++ /dev/null @@ -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 -{ - /// - /// Description of ArrangeStrategy. - /// - public interface IArrangeStrategy - { - void Arrange(IPrintableObject reportItem); - } - - - public class ContainerArrangeStrategy:IArrangeStrategy - { - public ContainerArrangeStrategy() - { - } - - public void Arrange(IPrintableObject reportItem) - { - Console.WriteLine("Arrange {0}",reportItem.Name); - } - } -} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Arrange/ContainerArrangeStrategy.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Arrange/ContainerArrangeStrategy.cs new file mode 100644 index 0000000000..aff19fcf1f --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Arrange/ContainerArrangeStrategy.cs @@ -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 +{ + /// + /// Description of ArrangeStrategy. + /// + 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); + } + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/DebugExporter.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/DebugExporter.cs index 9916b4f6e7..a1b59f5e1b 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/DebugExporter.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/DebugExporter.cs @@ -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; diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Factories/ExportColumnFactory.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Factories/ExportColumnFactory.cs index e95848b1b8..ac36ba42fa 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Factories/ExportColumnFactory.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Factories/ExportColumnFactory.cs @@ -18,7 +18,7 @@ namespace ICSharpCode.Reporting.Factories /// /// Description of ExportColumnFactory. /// - public class ExportColumnFactory + internal class ExportColumnFactory { public ExportColumnFactory() { diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Globals/MeasurementService.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Globals/MeasurementService.cs new file mode 100644 index 0000000000..b837684a2a --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Globals/MeasurementService.cs @@ -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 +{ + /// + /// Description of MeasurementService. + /// + 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; + } + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IPrintableObject.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IPrintableObject.cs index 933fd34889..910153d976 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IPrintableObject.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IPrintableObject.cs @@ -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 public interface IPrintableObject:IReportObject { IExportColumn CreateExportColumn(); + IArrangeStrategy GetArrangeStrategy (); } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseTextItem.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseTextItem.cs index b1aaacbced..64600c2ceb 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseTextItem.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseTextItem.cs @@ -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 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 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 ex.Font = Font; return ex; } + + public override ICSharpCode.Reporting.Arrange.IArrangeStrategy GetArrangeStrategy() + { + return new TextBasedArrangeStrategy(); + } + + } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/PrintableItem.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/PrintableItem.cs index 911a3a8b11..1fd73b9e3a 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/PrintableItem.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/PrintableItem.cs @@ -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 { return null; } + + public virtual IArrangeStrategy GetArrangeStrategy () + { + return null; + } } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportContainer.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportContainer.cs index 5186c3870e..916045d17e 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportContainer.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportContainer.cs @@ -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(); } } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/BasePageBuilder.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/BasePageBuilder.cs index 1e36646739..9f7f3dafd7 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/BasePageBuilder.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/BasePageBuilder.cs @@ -22,7 +22,7 @@ namespace ICSharpCode.Reporting.PageBuilder /// public class BasePageBuilder:IReportCreator { -// private readonly object addLock = new object(); + public BasePageBuilder(IReportModel reportModel) { diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/Converter/ContainerConverter.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/Converter/ContainerConverter.cs index f501458827..8e71bbbf3e 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/Converter/ContainerConverter.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/Converter/ContainerConverter.cs @@ -23,9 +23,17 @@ namespace ICSharpCode.Reporting.PageBuilder.Converter /// 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 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(); foreach (var element in Container.Items) { + var textArrange = element.GetArrangeStrategy(); + textArrange.Arrange(element,graphics); var item = ExportColumnFactory.CreateItem(element); itemsList.Add(item); } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/FormPageBuilder.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/FormPageBuilder.cs index 5970a48738..a9b399e1f5 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/FormPageBuilder.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/FormPageBuilder.cs @@ -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 /// 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 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 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 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 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); } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ReportingFactory.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ReportingFactory.cs index 6a884669df..f7aeffb37c 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ReportingFactory.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ReportingFactory.cs @@ -38,7 +38,6 @@ namespace ICSharpCode.Reporting builder = new FormPageBuilder(reportModel); } return builder; - } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/ContainerConverterFixture.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/ContainerConverterFixture.cs index 6c9d8f9b76..642b1567d5 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/ContainerConverterFixture.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/ContainerConverterFixture.cs @@ -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 [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 [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 }; container.Items.Add(item1); container.Items.Add(item2); + + Bitmap bitmap = new Bitmap(700,1000); + graphics = Graphics.FromImage(bitmap); } } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/TestHelper.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/TestHelper.cs index d616732761..0c52147c23 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/TestHelper.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/TestHelper.cs @@ -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); - - } - } - } - } - */ } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/TestReports/ReportWithTwoItems.srd b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/TestReports/ReportWithTwoItems.srd index d121d6de85..47d8a3ea35 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/TestReports/ReportWithTwoItems.srd +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/TestReports/ReportWithTwoItems.srd @@ -76,7 +76,7 @@ False False No - BaseTextItem2147483646 + TestText for Item in PageHeader False Black Black diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/ICSharpCode.Reports.Addin.csproj b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/ICSharpCode.Reports.Addin.csproj index 957401eaa1..ed81fea97c 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/ICSharpCode.Reports.Addin.csproj +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/ICSharpCode.Reports.Addin.csproj @@ -255,8 +255,11 @@ Form - + + ReportViewerSecondaryView.cs + + @@ -361,6 +364,7 @@ + \ No newline at end of file diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Commands/FormsCommand.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Commands/FormsCommand.cs index 0effc00c82..aa977a3561 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Commands/FormsCommand.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Commands/FormsCommand.cs @@ -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; } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportDesignerView.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportDesignerView.cs index d56c8500f8..5acdf5ee44 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportDesignerView.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportDesignerView.cs @@ -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 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 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 { 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 { 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 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 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(); diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/TestView/TestSecondaryView.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/TestView/TestSecondaryView.cs new file mode 100644 index 0000000000..b83ab5ac76 --- /dev/null +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/TestView/TestSecondaryView.cs @@ -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 +{ + /// + /// Description of ReportViewerSecondaryView. + /// + 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; + } + } + + } +} From 5f1c1b8b46a032294de795e5bc4e7468b3846954 Mon Sep 17 00:00:00 2001 From: Peter Forstmeier Date: Sat, 4 May 2013 20:23:52 +0200 Subject: [PATCH 23/33] WpfTestView --- .../ICSharpCode.Reporting.csproj | 24 ++++ .../Src/Configuration/AssemblyInfo.cs | 3 +- .../ExportRenderer/FixedDocumentRenderer.cs | 59 +++++++++ .../Src/Exporter/PrintExporter.cs | 1 + .../Src/Items/ReportModel.cs | 2 +- .../Src/ReportingFactory.cs | 9 ++ .../Src/Wpf/PreviewViewModel.cs | 61 +++++++++ .../WpfReportViewer/WpfReportViewer.xaml.cs | 45 +++++++ .../ICSharpCode.Reports.Addin.csproj | 6 +- .../DesignerBinding/ReportDesignerLoader.cs | 10 ++ .../Project/ReportDesignerView.cs | 6 +- .../TestView/TestSecondaryView.cs | 87 ------------- .../TestView/TestWPFReportPreview.cs | 121 ++++++++++++++++++ .../SecondaryViews/WPFReportPreview.cs | 6 + 14 files changed, 347 insertions(+), 93 deletions(-) create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ExportRenderer/FixedDocumentRenderer.cs create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Wpf/PreviewViewModel.cs create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Wpf/WpfReportViewer/WpfReportViewer.xaml.cs delete mode 100644 src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/TestView/TestSecondaryView.cs create mode 100644 src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/TestView/TestWPFReportPreview.cs diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj index 218049b945..117d6d5353 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj @@ -44,15 +44,27 @@ TRACE + + 3.0 + + + 3.0 + 3.5 + + 4.0 + 3.5 + + 3.0 + @@ -66,6 +78,7 @@ + @@ -93,6 +106,11 @@ + + + WpfReportViewer.xaml + Code + @@ -108,10 +126,16 @@ + + + + + + \ No newline at end of file diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Configuration/AssemblyInfo.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Configuration/AssemblyInfo.cs index 46153fcac3..e8c10361d9 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Configuration/AssemblyInfo.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Configuration/AssemblyInfo.cs @@ -10,4 +10,5 @@ using System.Security; [assembly: SecurityRules(SecurityRuleSet.Level1)] -[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ICSharpCode.Reporting.Test")] \ No newline at end of file +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ICSharpCode.Reporting.Test")] +[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("ICSharpCode.Reports.Addin")] \ No newline at end of file diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ExportRenderer/FixedDocumentRenderer.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ExportRenderer/FixedDocumentRenderer.cs new file mode 100644 index 0000000000..007b5976af --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ExportRenderer/FixedDocumentRenderer.cs @@ -0,0 +1,59 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 05/04/2013 + * Time: 19:57 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using System.Collections.ObjectModel; +using System.Windows.Documents; + +using ICSharpCode.Reporting.BaseClasses; +using ICSharpCode.Reporting.Interfaces.Export; +using ICSharpCode.Reporting.Items; + +namespace ICSharpCode.Reporting.ExportRenderer +{ + /// + /// Description of FixedDocumentRenderer. + /// + public class FixedDocumentRenderer + { + ReportSettings reportSettings; + private FixedDocument document ; +// private FixedDocumentCreator docCreator; + + public FixedDocumentRenderer(ReportSettings reportSettings,Collection pages) + { + if (pages == null) + throw new ArgumentNullException("pages"); + if (reportSettings == null) + throw new ArgumentNullException("reportSettings"); + this.reportSettings = reportSettings; + Pages = pages; + Console.WriteLine("FixedDocumentRenderer with {0} pages ",Pages.Count); + } + + + public void Start() + { + Console.WriteLine("FixedDocumentrenderer - Start"); + document = new FixedDocument(); +// docCreator.PageSize = new System.Windows.Size(reportSettings.PageSize.Width,reportSettings.PageSize.Height); +// document.DocumentPaginator.PageSize = docCreator.PageSize; + } + + public void RenderOutput(){ + Console.WriteLine("FixedDocumentrenderer - RenderOutput"); + } + + public void End() + { + Console.WriteLine("FixedDocumentrenderer - End"); + } + + public Collection Pages {get;private set;} + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/PrintExporter.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/PrintExporter.cs index e689d1204b..96503827ec 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/PrintExporter.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/PrintExporter.cs @@ -27,6 +27,7 @@ namespace ICSharpCode.Reporting.Exporter public override void Run () { + Console.WriteLine("PrintExporter Run"); foreach (var page in Pages) { ShowDebug(page); } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportModel.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportModel.cs index fd075d565c..9a6d05cc3d 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportModel.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportModel.cs @@ -17,7 +17,7 @@ namespace ICSharpCode.Reporting.Items /// /// Description of ReportModel. /// - internal class ReportModel :IReportModel + public class ReportModel :IReportModel { public ReportModel() { diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ReportingFactory.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ReportingFactory.cs index f7aeffb37c..603362ff6e 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ReportingFactory.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ReportingFactory.cs @@ -29,6 +29,15 @@ namespace ICSharpCode.Reporting { } + public IReportCreator ReportCreator (ReportModel reportModel) { + if (reportModel == null) + throw new ArgumentNullException("reportModel"); + IReportCreator builder = null; + if (reportModel.ReportSettings.DataModel == GlobalEnums.PushPullModel.FormSheet) { + builder = new FormPageBuilder(reportModel); + } + return builder; + } public IReportCreator ReportCreator (Stream stream) { diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Wpf/PreviewViewModel.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Wpf/PreviewViewModel.cs new file mode 100644 index 0000000000..7d324f6fc6 --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Wpf/PreviewViewModel.cs @@ -0,0 +1,61 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 05/04/2013 + * Time: 17:06 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using System.Collections.ObjectModel; +using System.ComponentModel; +using System.Diagnostics; +using System.Windows.Documents; + +using ICSharpCode.Reporting.ExportRenderer; +using ICSharpCode.Reporting.Interfaces.Export; +using ICSharpCode.Reporting.Items; + +namespace ICSharpCode.Reporting.WpfReportViewer +{ + /// + /// Description of PreviewViewModel. + /// + public class PreviewViewModel:INotifyPropertyChanged + { + + private IDocumentPaginatorSource document; + + public PreviewViewModel(ReportSettings reportSettings, Collection pages) + { + this.Pages = pages; + FixedDocumentRenderer renderer = new FixedDocumentRenderer(reportSettings,Pages); + renderer.Start(); + renderer.RenderOutput(); + renderer.End(); +// this.Document = renderer.Document; + } + + + public Collection Pages {get;private set;} + + public IDocumentPaginatorSource Document + { + get {return document;} + set { + this.document = value; + OnNotifyPropertyChanged ("Document"); + } + } + + + public event PropertyChangedEventHandler PropertyChanged; + + void OnNotifyPropertyChanged(string num0) + { + if (PropertyChanged != null) { + PropertyChanged(this,new PropertyChangedEventArgs(num0)); + } + } + } +} \ No newline at end of file diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Wpf/WpfReportViewer/WpfReportViewer.xaml.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Wpf/WpfReportViewer/WpfReportViewer.xaml.cs new file mode 100644 index 0000000000..6da3235c5f --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Wpf/WpfReportViewer/WpfReportViewer.xaml.cs @@ -0,0 +1,45 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 12.05.2011 + * Time: 21:01 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using System.Windows.Controls; +using System.Windows.Documents; + + +namespace ICSharpCode.Reporting.WpfReportViewer +{ + + public interface IWpfReportViewer + { + IDocumentPaginatorSource Document {set;} + void SetBinding (PreviewViewModel model); + } + /// + /// Interaction logic for WpfReportViewer.xaml + /// + + public partial class WpfReportViewer : UserControl,IWpfReportViewer + { + public WpfReportViewer() + { + InitializeComponent(); + } + + public void SetBinding (PreviewViewModel model) + { + this.DataContext = model; + } + + + public IDocumentPaginatorSource Document { + set { + this.DocumentViewer.Document = value; + } + } + } +} \ No newline at end of file diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/ICSharpCode.Reports.Addin.csproj b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/ICSharpCode.Reports.Addin.csproj index ed81fea97c..6bc3a522a1 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/ICSharpCode.Reports.Addin.csproj +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/ICSharpCode.Reports.Addin.csproj @@ -259,7 +259,7 @@ ReportViewerSecondaryView.cs - + @@ -334,6 +334,10 @@ ICSharpCode.Data.SQLServer False + + {40CA84D4-ACFC-4646-9CDD-B87262D34093} + ICSharpCode.Reporting + {4B2239FF-8FD6-431D-9D22-1B8049BA6917} ICSharpCode.Reports.Core diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/DesignerBinding/ReportDesignerLoader.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/DesignerBinding/ReportDesignerLoader.cs index 3ca8493a47..1358524072 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/DesignerBinding/ReportDesignerLoader.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/DesignerBinding/ReportDesignerLoader.cs @@ -97,6 +97,16 @@ namespace ICSharpCode.Reports.Addin return m; } + public XmlDocument CreateXmlModel() + { + Console.WriteLine("ReportDesignerLoader:CreateXmlModel"); + ReportModel m = new ReportModel(); + generator.MergeFormChanges((System.CodeDom.CodeCompileUnit)null); + XmlDocument xmlDocument = new XmlDocument(); + xmlDocument.LoadXml(generator.ViewContent.ReportFileContent); + return xmlDocument; + } + #endregion #region Dispose diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportDesignerView.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportDesignerView.cs index 5acdf5ee44..54a52d6d2d 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportDesignerView.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportDesignerView.cs @@ -16,7 +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; @@ -53,7 +53,7 @@ namespace ICSharpCode.Reports.Addin private XmlView xmlView; private ReportPreview reportPreview; private ReportViewerSecondaryView reportViewer; - private TestSecondaryView testView; + private TestWPFReportPreview testView; #region Constructor @@ -103,7 +103,7 @@ namespace ICSharpCode.Reports.Addin var wpfViewer = new WPFReportPreview(loader,this); SecondaryViewContents.Add(wpfViewer); - testView = new TestSecondaryView(loader,this); + testView = new TestWPFReportPreview(loader,this); SecondaryViewContents.Add(testView); } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/TestView/TestSecondaryView.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/TestView/TestSecondaryView.cs deleted file mode 100644 index b83ab5ac76..0000000000 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/TestView/TestSecondaryView.cs +++ /dev/null @@ -1,87 +0,0 @@ -// 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 -{ - /// - /// Description of ReportViewerSecondaryView. - /// - 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; - } - } - - } -} diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/TestView/TestWPFReportPreview.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/TestView/TestWPFReportPreview.cs new file mode 100644 index 0000000000..71a6d57b59 --- /dev/null +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/TestView/TestWPFReportPreview.cs @@ -0,0 +1,121 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 03.05.2011 + * Time: 19:34 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using System.Collections.ObjectModel; +using System.Xml; + +using ICSharpCode.Reporting; +using ICSharpCode.Reporting.BaseClasses; +using ICSharpCode.Reporting.Exporter; +using ICSharpCode.Reporting.Globals; +using ICSharpCode.Reporting.Interfaces; +using ICSharpCode.Reporting.Interfaces.Export; +using ICSharpCode.Reporting.Items; +using ICSharpCode.Reporting.WpfReportViewer; +using ICSharpCode.Reporting.Xml; +using ICSharpCode.SharpDevelop; +using ICSharpCode.SharpDevelop.Gui; +using ICSharpCode.SharpDevelop.Workbench; + +//using ICSharpCode.Reports.Addin.Commands; +//using ICSharpCode.Reports.Core; +//using ICSharpCode.Reports.Core.Exporter.ExportRenderer; +//using ICSharpCode.Reports.Core.Globals; +//using ICSharpCode.Reports.Core.WpfReportViewer; + + + + +namespace ICSharpCode.Reports.Addin.SecondaryViews +{ + /// + /// Description of WPFReportPreview. + /// + public class TestWPFReportPreview: AbstractSecondaryViewContent + { + ReportDesignerLoader designerLoader; + + ICSharpCode.Reporting.WpfReportViewer.IWpfReportViewer viewer; + +// IExportRunner exportRunner = new ExportRunner(); + + public TestWPFReportPreview(ReportDesignerLoader loader,IViewContent content):base(content) + { + this.designerLoader = loader; + viewer = new ICSharpCode.Reporting.WpfReportViewer.WpfReportViewer(); + base.TabPageText = "TestWpf View"; + Pages = new Collection(); + } + + + public Collection Pages{get;private set;} + + + protected override void LoadFromPrimary() + { + Pages.Clear(); + var xmDoc = designerLoader.CreateXmlModel(); + var modulLoader = new ModelLoader(); + ReportModel model = (ReportModel)modulLoader.Load(xmDoc.DocumentElement); + +// var collectCmd = new CollectParametersCommand(model.ReportSettings); +// collectCmd.Run(); + IReportCreator reportCreator = null; + switch (model.ReportSettings.DataModel) + { + case GlobalEnums.PushPullModel.FormSheet : + { +// exportRunner.RunReport(model,(ReportParameters)null); + var reportingFactory = new ReportingFactory(); + reportCreator = reportingFactory.ReportCreator(model); + reportCreator.BuildExportList(); + var pe = new PrintExporter(reportCreator.Pages); + pe.Run(); + break; + } + + case GlobalEnums.PushPullModel.PullData: + { +// exportRunner.RunReport(model,(ReportParameters)null); + break; + } + case GlobalEnums.PushPullModel.PushData: + { +// var cmd = new DataSetFromXsdCommand(); +// cmd.Run(); +// System.Data.DataSet ds = cmd.DataSet; +// exportRunner.RunReport(model,ds.Tables[0],(ReportParameters)null); + break; + } + +// default: +// throw new InvalidReportModelException(); + } + + PreviewViewModel previewViewModel = new PreviewViewModel (model.ReportSettings,reportCreator.Pages); + + + viewer.SetBinding(previewViewModel); + + } + + + protected override void SaveToPrimary() + { +// throw new NotImplementedException(); + } + + + public override object Control { + get { + return viewer; + } + } + } +} diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/WPFReportPreview.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/WPFReportPreview.cs index 74be8e31de..e50955a3bd 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/WPFReportPreview.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/WPFReportPreview.cs @@ -7,6 +7,7 @@ * To change this template use Tools | Options | Coding | Edit Standard Headers. */ using System; +using ICSharpCode.Reporting.Xml; using ICSharpCode.Reports.Addin.Commands; using ICSharpCode.Reports.Core; using ICSharpCode.Reports.Core.Exporter.ExportRenderer; @@ -43,6 +44,11 @@ namespace ICSharpCode.Reports.Addin.SecondaryViews { Pages.Clear(); ReportModel model = designerLoader.CreateRenderableModel(); + //TODO change to designerLoader.CreateXmlModel(); +// var xmDoc = designerLoader.CreateXmlModel(); +// var modulLoader = new ModelLoader(); +// ReportModel model = (ReportModel)modulLoader.Load(xmDoc.DocumentElement); + var collectCmd = new CollectParametersCommand(model.ReportSettings); collectCmd.Run(); switch (model.DataModel) From 264b545da5782fabbfe43983f012bd2b5a1a1783 Mon Sep 17 00:00:00 2001 From: Peter Forstmeier Date: Wed, 15 May 2013 19:51:28 +0200 Subject: [PATCH 24/33] Wpf Exporter --- .../ICSharpCode.Reporting.csproj | 11 +- .../Src/Arrange/ArrangeStrategy.cs | 44 +++++ .../Src/Arrange/ContainerArrangeStrategy.cs | 48 ----- .../Src/Arrange/MeasurementStrategy.cs | 46 +++++ .../Src/BaseClasses/Page.cs | 41 ++++ .../ExportRenderer/FixedDocumentCreator.cs | 176 ++++++++++++++++++ .../ExportRenderer/FixedDocumentRenderer.cs | 59 ------ .../Src/Exporter/PrintExporter.cs | 58 ------ .../Src/Exporter/Visitors/WpfVisitor.cs | 63 +++++++ .../Src/Exporter/WpfExporter.cs | 103 ++++++++++ .../Src/Globals/MeasurementService.cs | 8 +- .../Src/Interfaces/Export/IExportColumn.cs | 4 + .../Src/Interfaces/IPrintableObject.cs | 5 +- .../Src/Items/BaseTextItem.cs | 9 +- .../Src/Items/PrintableItem.cs | 10 +- .../Src/Items/ReportContainer.cs | 13 +- .../Converter/ContainerConverter.cs | 21 +-- .../PageBuilder/ExportColumns/ExportColumn.cs | 14 ++ .../ExportColumns/ExportContainer.cs | 6 + .../PageBuilder/ExportColumns/ExportText.cs | 4 + .../Src/Wpf/PreviewViewModel.cs | 31 ++- .../src/PageBuilder/BaseConvertFixture.cs | 2 + .../TestView/TestWPFReportPreview.cs | 4 +- .../Project/WPF/FixedDocumentCreator.cs | 2 +- 24 files changed, 572 insertions(+), 210 deletions(-) create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Arrange/ArrangeStrategy.cs delete mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Arrange/ContainerArrangeStrategy.cs create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Arrange/MeasurementStrategy.cs create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ExportRenderer/FixedDocumentCreator.cs delete mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ExportRenderer/FixedDocumentRenderer.cs delete mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/PrintExporter.cs create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/WpfVisitor.cs create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/WpfExporter.cs diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj index 117d6d5353..fdbf725c03 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj @@ -55,6 +55,9 @@ 3.5 + + 3.5 + 4.0 @@ -67,18 +70,20 @@ - + + - + - + + diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Arrange/ArrangeStrategy.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Arrange/ArrangeStrategy.cs new file mode 100644 index 0000000000..123581c703 --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Arrange/ArrangeStrategy.cs @@ -0,0 +1,44 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 11.05.2013 + * Time: 19:56 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using ICSharpCode.Reporting.Interfaces.Export; + +namespace ICSharpCode.Reporting.Arrange +{ + /// + /// Description of ArrangeStrategy. + /// + /// + public interface IArrangeStrategy + { + void Arrange(IExportColumn exportColumn); + } + + + internal class ContainerArrangeStrategy:IArrangeStrategy + { + public ContainerArrangeStrategy() + { + } + + + public void Arrange(IExportColumn exportColumn) + { + var e = exportColumn as IExportContainer; + if (e != null) { + if ((e != null) && (e.ExportedItems != null)) { + } + Console.WriteLine("Arrange Container with {0} items",e.ExportedItems.Count); + } else { + throw new ArgumentException("No Container"); + } + } + } + +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Arrange/ContainerArrangeStrategy.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Arrange/ContainerArrangeStrategy.cs deleted file mode 100644 index aff19fcf1f..0000000000 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Arrange/ContainerArrangeStrategy.cs +++ /dev/null @@ -1,48 +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 System.Drawing; -using ICSharpCode.Reporting.Globals; -using ICSharpCode.Reporting.Interfaces; -using ICSharpCode.Reporting.Items; -using ICSharpCode.Reporting.PageBuilder.ExportColumns; - -namespace ICSharpCode.Reporting.Arrange -{ - /// - /// Description of ArrangeStrategy. - /// - 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); - } - } -} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Arrange/MeasurementStrategy.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Arrange/MeasurementStrategy.cs new file mode 100644 index 0000000000..2a668b2c2d --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Arrange/MeasurementStrategy.cs @@ -0,0 +1,46 @@ +/* + * 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; + +namespace ICSharpCode.Reporting.Arrange +{ + /// + /// Description of ArrangeStrategy. + /// + public interface IMeasurementStrategy + { + Size Measure(IPrintableObject reportItem,Graphics graphics); + } + + + internal class ContainerMeasurementStrategy:IMeasurementStrategy + { + public ContainerMeasurementStrategy() + { + } + + public Size Measure(IPrintableObject reportItem,Graphics graphics) + { + return reportItem.Size; + } + } + + internal class TextBasedMeasurementStrategy:IMeasurementStrategy + { + + public Size Measure(IPrintableObject reportItem, Graphics graphics) + { + return MeasurementService.Measure((ITextItem)reportItem,graphics); + } + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/Page.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/Page.cs index 87cac420b2..1e77a6f16e 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/Page.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/Page.cs @@ -59,5 +59,46 @@ namespace ICSharpCode.Reporting.BaseClasses { throw new NotImplementedException(); } + + public ICSharpCode.Reporting.Arrange.IArrangeStrategy GetArrangeStrategy() + { + throw new NotImplementedException(); + } + + public Size DesiredSize { + get { + throw new NotImplementedException(); + } + set { + throw new NotImplementedException(); + } + } + + public Color ForeColor { + get { + throw new NotImplementedException(); + } + set { + throw new NotImplementedException(); + } + } + + public Color BackColor { + get { + throw new NotImplementedException(); + } + set { + throw new NotImplementedException(); + } + } + + public Color FrameColor { + get { + throw new NotImplementedException(); + } + set { + throw new NotImplementedException(); + } + } } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ExportRenderer/FixedDocumentCreator.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ExportRenderer/FixedDocumentCreator.cs new file mode 100644 index 0000000000..e681dc5de4 --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ExportRenderer/FixedDocumentCreator.cs @@ -0,0 +1,176 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 05.05.2013 + * Time: 19:42 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Documents; +using System.Windows.Media; + +using ICSharpCode.Reporting.Items; +using ICSharpCode.Reporting.PageBuilder.ExportColumns; +using Brush = System.Windows.Media.Brush; +using FontFamily = System.Windows.Media.FontFamily; +using Image = System.Windows.Controls.Image; +using Pen = System.Windows.Media.Pen; +using Size = System.Windows.Size; + +namespace ICSharpCode.Reporting.ExportRenderer +{ + /// + /// Description of FixedDocumentCreator. + /// + internal class FixedDocumentCreator + { + BrushConverter brushConverter ; + ReportSettings reportSettings; + + public FixedDocumentCreator(ReportSettings reportSettings) + { + if (reportSettings == null) + throw new ArgumentNullException("reportSettings"); + this.reportSettings = reportSettings; + Console.WriteLine("FixedDocumentCreator()"); + brushConverter = new BrushConverter(); + } + + + public UIElement CreateContainer(ExportContainer container) + { +// http://tech.pro/tutorial/736/wpf-tutorial-creating-a-custom-panel-control + + var canvas = CreateCanvas(container); +// canvas.Measure(new Size(reportSettings.PageSize.Width,reportSettings.PageSize.Height)); + + var size = new Size(container.DesiredSize.Width,container.DesiredSize.Height); + + canvas.Measure(size); + +// canvas.Arrange(new Rect(new System.Windows.Point(),new Size(reportSettings.PageSize.Width,reportSettings.PageSize.Height) )); + + canvas.Arrange(new Rect(new System.Windows.Point(),size )); + + canvas.UpdateLayout(); + + return canvas; + + } + + public TextBlock CreateTextBlock(ExportText exportText) + { + TextBlock textBlock = new TextBlock(); + textBlock.Text = exportText.Text; + textBlock.Foreground = ConvertBrush(exportText.ForeColor); + SetFont(textBlock,exportText); + textBlock.TextWrapping = TextWrapping.WrapWithOverflow; + +// string [] inlines = exportText.Text.Split(System.Environment.NewLine.ToCharArray()); + //string [] inlines = "jmb,.n,knn-.n.-n.n-.n.n.-"; +// for (int i = 0; i < inlines.Length; i++) { +// if (inlines[i].Length > 0) { +// textBlock.Inlines.Add(new Run(inlines[i])); + //// textBlock.Inlines.Add(new LineBreak()); +// } +// } +// var li = textBlock.Inlines.LastInline; +// textBlock.Inlines.Remove(li); +// SetDimension(textBlock,exportText.StyleDecorator); +// textBlock.Background = ConvertBrush(exportText.StyleDecorator.BackColor); +// SetContendAlignment(textBlock,exportText.StyleDecorator); + SetPosition(textBlock,exportText); + SetDimension(textBlock,exportText); + textBlock.Background = ConvertBrush(exportText.BackColor); + return textBlock; + } + + + Canvas CreateCanvas(ExportContainer container) + { + var canvas = new Canvas(); + SetDimension(canvas, container); + SetPosition(canvas,container); + canvas.Background = ConvertBrush(System.Drawing.Color.Red); + return canvas; + } + + + static void SetDimension (FrameworkElement element,ExportColumn exportColumn) + { + element.Width = exportColumn.DesiredSize.Width; + element.Height = exportColumn.DesiredSize.Height; + } + + + static void SetPosition (FrameworkElement element,ExportColumn exportColumn) { + FixedPage.SetLeft(element,exportColumn.Location.X ); + FixedPage.SetTop(element,exportColumn.Location.Y); + } + + void SetFont(TextBlock textBlock,ExportText exportText) + { + textBlock.FontFamily = new FontFamily(exportText.Font.FontFamily.Name); + + textBlock.FontSize = exportText.Font.Size * 96/72; + + if (exportText.Font.Bold) { + textBlock.FontWeight = FontWeights.Bold; + } + if (exportText.Font.Underline) { + CreateUnderline(textBlock,exportText); + } + + if (exportText.Font.Italic) { + textBlock.FontStyle = System.Windows.FontStyles.Italic ; + } + if (exportText.Font.Strikeout) { + CreateStrikeout(textBlock,exportText); + } + } + + + void CreateStrikeout (TextBlock textBlock,ExportColumn exportColumn ) + { + TextDecoration strikeOut = new TextDecoration(); + strikeOut.Location = TextDecorationLocation.Strikethrough; + + Pen p = CreateWpfPen(exportColumn); + strikeOut.Pen = p ; + strikeOut.PenThicknessUnit = TextDecorationUnit.FontRecommended; + textBlock.TextDecorations.Add(strikeOut); + } + + + void CreateUnderline(TextBlock textBlock,ExportColumn exportColumn) + { + TextDecoration underLine = new TextDecoration(); + Pen p = CreateWpfPen(exportColumn); + underLine.Pen = p ; + underLine.PenThicknessUnit = TextDecorationUnit.FontRecommended; + textBlock.TextDecorations.Add(underLine); + } + + + Pen CreateWpfPen(ExportColumn exportColumn) + { + Pen myPen = new Pen(); + myPen.Brush = ConvertBrush(exportColumn.ForeColor); + myPen.Thickness = 1.5; + return myPen; + } + + + Brush ConvertBrush(System.Drawing.Color color) + { + if (brushConverter.IsValid(color.Name)){ + return brushConverter.ConvertFromString(color.Name) as SolidColorBrush; + } else{ + return brushConverter.ConvertFromString("Black") as SolidColorBrush; + } + } + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ExportRenderer/FixedDocumentRenderer.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ExportRenderer/FixedDocumentRenderer.cs deleted file mode 100644 index 007b5976af..0000000000 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ExportRenderer/FixedDocumentRenderer.cs +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Created by SharpDevelop. - * User: Peter Forstmeier - * Date: 05/04/2013 - * Time: 19:57 - * - * To change this template use Tools | Options | Coding | Edit Standard Headers. - */ -using System; -using System.Collections.ObjectModel; -using System.Windows.Documents; - -using ICSharpCode.Reporting.BaseClasses; -using ICSharpCode.Reporting.Interfaces.Export; -using ICSharpCode.Reporting.Items; - -namespace ICSharpCode.Reporting.ExportRenderer -{ - /// - /// Description of FixedDocumentRenderer. - /// - public class FixedDocumentRenderer - { - ReportSettings reportSettings; - private FixedDocument document ; -// private FixedDocumentCreator docCreator; - - public FixedDocumentRenderer(ReportSettings reportSettings,Collection pages) - { - if (pages == null) - throw new ArgumentNullException("pages"); - if (reportSettings == null) - throw new ArgumentNullException("reportSettings"); - this.reportSettings = reportSettings; - Pages = pages; - Console.WriteLine("FixedDocumentRenderer with {0} pages ",Pages.Count); - } - - - public void Start() - { - Console.WriteLine("FixedDocumentrenderer - Start"); - document = new FixedDocument(); -// docCreator.PageSize = new System.Windows.Size(reportSettings.PageSize.Width,reportSettings.PageSize.Height); -// document.DocumentPaginator.PageSize = docCreator.PageSize; - } - - public void RenderOutput(){ - Console.WriteLine("FixedDocumentrenderer - RenderOutput"); - } - - public void End() - { - Console.WriteLine("FixedDocumentrenderer - End"); - } - - public Collection Pages {get;private set;} - } -} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/PrintExporter.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/PrintExporter.cs deleted file mode 100644 index 96503827ec..0000000000 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/PrintExporter.cs +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Created by SharpDevelop. - * User: Peter Forstmeier - * Date: 28.04.2013 - * Time: 18:01 - * - * To change this template use Tools | Options | Coding | Edit Standard Headers. - */ -using System; -using System.Collections.ObjectModel; -using ICSharpCode.Reporting.Exporter.Visitors; -using ICSharpCode.Reporting.Interfaces.Export; - -namespace ICSharpCode.Reporting.Exporter -{ - /// - /// Description of PrintExporter. - /// - public class PrintExporter:BaseExporter - { - private DebugVisitor visitor; - - public PrintExporter(Collection pages):base(pages) - { - visitor = new DebugVisitor(); - } - - - public override void Run () { - Console.WriteLine("PrintExporter Run"); - foreach (var page in Pages) { - ShowDebug(page); - } - } - - - void ShowDebug(IExportContainer container) - { - var visitor = new DebugVisitor(); - foreach (var item in container.ExportedItems) { - var exportContainer = item as IExportContainer; - var acceptor = item as IAcceptor; - if (exportContainer != null) { - if (acceptor != null) { - Console.WriteLine("--container--"); - acceptor.Accept(visitor); - } - ShowDebug(item as IExportContainer); - } else { - if (acceptor != null) { - Console.WriteLine("..Item..."); - acceptor.Accept(visitor); - } - } - } - } - } -} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/WpfVisitor.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/WpfVisitor.cs new file mode 100644 index 0000000000..06ffe419a0 --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/WpfVisitor.cs @@ -0,0 +1,63 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 06.05.2013 + * Time: 20:10 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Documents; +using System.Windows.Media; + +using ICSharpCode.Reporting.ExportRenderer; +using ICSharpCode.Reporting.Interfaces.Export; +using ICSharpCode.Reporting.Items; +using ICSharpCode.Reporting.PageBuilder.ExportColumns; + +namespace ICSharpCode.Reporting.Exporter.Visitors +{ + /// + /// Description of WpfVisitor. + /// + internal class WpfVisitor: AbstractVisitor + { + private FixedDocumentCreator documentCreator; + private readonly ReportSettings reportSettings; + + public WpfVisitor(ReportSettings reportSettings) + { + if (reportSettings == null) + throw new ArgumentNullException("reportSettings"); + this.reportSettings = reportSettings; + documentCreator = new FixedDocumentCreator(reportSettings); + } + + public override void Visit(ExportColumn exportColumn) + { +// Console.WriteLine("Wpf-Visit ExportColumn {0} - {1} - {2}", exportColumn.Name,exportColumn.Size,exportColumn.Location); + } + + + public override void Visit(ExportContainer exportColumn) + { +// Console.WriteLine("Wpf-Visit ExportContainer {0} - {1} - {2}", exportColumn.Name,exportColumn.Size,exportColumn.Location); + var canvas = documentCreator.CreateContainer(exportColumn); + UIElement = canvas; + } + + + public override void Visit(ExportText exportColumn) + { +// Console.WriteLine("Wpf-Visit ExportText {0} - {1} - {2}", exportColumn.Name,exportColumn.Size,exportColumn.DesiredSize); + var textBlock = documentCreator.CreateTextBlock(exportColumn); + UIElement = textBlock; + } + + + public UIElement UIElement {get; private set;} + + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/WpfExporter.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/WpfExporter.cs new file mode 100644 index 0000000000..2af9e38c63 --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/WpfExporter.cs @@ -0,0 +1,103 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 28.04.2013 + * Time: 18:01 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using System.Collections.ObjectModel; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Documents; + +using ICSharpCode.Reporting.Exporter.Visitors; +using ICSharpCode.Reporting.Interfaces.Export; +using ICSharpCode.Reporting.Items; +using ICSharpCode.Reporting.PageBuilder.ExportColumns; + +namespace ICSharpCode.Reporting.Exporter +{ + /// + /// Description of PrintExporter. + /// + public class WpfExporter:BaseExporter + { + private WpfVisitor visitor; + private ReportSettings reportSettings; + + public WpfExporter(ReportSettings reportSettings,Collection pages):base(pages) + { + if (reportSettings == null) + throw new ArgumentNullException("reportSettings"); + this.reportSettings = reportSettings; + visitor = new WpfVisitor(reportSettings); + } + + + public override void Run () { + InitFixedPage(); + foreach (var page in Pages) { + InternalRun(page); + } + } + + + void InitFixedPage() + { + fixedPage = new FixedPage(); + fixedPage.Width = reportSettings.PageSize.Width; + fixedPage.Height = reportSettings.PageSize.Height; + } + + FixedPage fixedPage; + + public FixedPage FixedPage { + get { return fixedPage; } + } + + + void InternalRun(IExportContainer container) + { + Canvas canvas = null ; + foreach (var item in container.ExportedItems) { + var exportContainer = item as IExportContainer; + var acceptor = item as IAcceptor; + if (exportContainer != null) { + if (acceptor != null) { + acceptor.Accept(visitor); + canvas = (Canvas)visitor.UIElement; + fixedPage.Children.Add(canvas); + foreach (IAcceptor element in exportContainer.ExportedItems) { + element.Accept(visitor); + var ui = visitor.UIElement; + Canvas.SetLeft(ui,((IExportColumn)element).Location.X); + Canvas.SetTop(ui, ((IExportColumn)element).Location.Y); + canvas.Children.Add(ui); + } +// var size = new Size(exportContainer.DesiredSize.Width,exportContainer.DesiredSize.Height); +// canvas.Measure(size); +// canvas.Arrange(new Rect(new System.Windows.Point(exportContainer.Location.X,exportContainer.Location.Y),size )); +// canvas.UpdateLayout(); + var exportArrange = exportContainer.GetArrangeStrategy(); + exportArrange.Arrange(exportContainer); + } +// InternalRun(item as IExportContainer); + } else { + if (acceptor != null) { + Console.WriteLine("..Item..."); + acceptor.Accept(visitor); + var uiElement = visitor.UIElement; + if (canvas != null) { + Canvas.SetLeft(uiElement, item.Location.X - exportContainer.Location.X); + Canvas.SetTop(uiElement, item.Location.Y - exportContainer.Location.Y); + canvas.Children.Add(uiElement); + } + fixedPage.Children.Add(uiElement); + } + } + } + } + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Globals/MeasurementService.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Globals/MeasurementService.cs index b837684a2a..5d776da137 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Globals/MeasurementService.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Globals/MeasurementService.cs @@ -24,14 +24,16 @@ namespace ICSharpCode.Reporting.Globals 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(); + if (size.Height < item.Size.Height) { + return item.Size; + } +// Console.WriteLine("ret val {0}",new Size(item.Size.Width,(int)Math.Ceiling(size.Height)).ToString()); + return new Size(item.Size.Width,(int)Math.Ceiling(size.Height)); } return item.Size; diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/Export/IExportColumn.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/Export/IExportColumn.cs index 5c29de276a..3ce63f43e1 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/Export/IExportColumn.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/Export/IExportColumn.cs @@ -7,6 +7,8 @@ * To change this template use Tools | Options | Coding | Edit Standard Headers. */ using System; +using System.Drawing; +using ICSharpCode.Reporting.Arrange; using ICSharpCode.Reporting.BaseClasses; using ICSharpCode.Reporting.Exporter; @@ -17,5 +19,7 @@ namespace ICSharpCode.Reporting.Interfaces.Export /// public interface IExportColumn:IReportObject { + IArrangeStrategy GetArrangeStrategy(); + Size DesiredSize {get;set;} } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IPrintableObject.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IPrintableObject.cs index 910153d976..01dd059b10 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IPrintableObject.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IPrintableObject.cs @@ -20,12 +20,15 @@ namespace ICSharpCode.Reporting.Interfaces string Name{get;set;} Size Size {get;set;} Point Location {get;set;} + Color ForeColor {get;set;} + Color BackColor {get;set;} + Color FrameColor{get;set;} } public interface IPrintableObject:IReportObject { IExportColumn CreateExportColumn(); - IArrangeStrategy GetArrangeStrategy (); + IMeasurementStrategy MeasurementStrategy (); } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseTextItem.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseTextItem.cs index 64600c2ceb..62e6010536 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseTextItem.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseTextItem.cs @@ -23,6 +23,7 @@ namespace ICSharpCode.Reporting.Items { Font Font {get;set;} string Text {get;set;} + } public class BaseTextItem:PrintableItem,ITextItem @@ -43,14 +44,18 @@ namespace ICSharpCode.Reporting.Items var ex = new ExportText(); ex.Name = Name; ex.Location = Location; + ex.ForeColor = ForeColor; + ex.BackColor = BackColor; + ex.FrameColor = FrameColor; ex.Size = Size; ex.Font = Font; + ex.Text = Text; return ex; } - public override ICSharpCode.Reporting.Arrange.IArrangeStrategy GetArrangeStrategy() + public override ICSharpCode.Reporting.Arrange.IMeasurementStrategy MeasurementStrategy() { - return new TextBasedArrangeStrategy(); + return new TextBasedMeasurementStrategy(); } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/PrintableItem.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/PrintableItem.cs index 1fd73b9e3a..a00cdca34c 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/PrintableItem.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/PrintableItem.cs @@ -28,9 +28,17 @@ namespace ICSharpCode.Reporting.Items return null; } - public virtual IArrangeStrategy GetArrangeStrategy () + public virtual IMeasurementStrategy MeasurementStrategy () { return null; } + + public Color ForeColor {get;set;} + + + public Color BackColor {get;set;} + + + public Color FrameColor {get;set;} } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportContainer.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportContainer.cs index 916045d17e..2c6d5afce5 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportContainer.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportContainer.cs @@ -43,19 +43,10 @@ namespace ICSharpCode.Reporting.Items }; } -// IArrangeStrategy arrangeStrategy; -// -// public IArrangeStrategy ArrangeStrategy { -// get {if (arrangeStrategy == null) { -// arrangeStrategy = new ContainerArrangeStrategy(); -// } -// return arrangeStrategy; } -// set { arrangeStrategy = value; } -// } - public override IArrangeStrategy GetArrangeStrategy() + public override IMeasurementStrategy MeasurementStrategy() { - return new ContainerArrangeStrategy(); + return new ContainerMeasurementStrategy(); } } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/Converter/ContainerConverter.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/Converter/ContainerConverter.cs index 8e71bbbf3e..eda6c88aa8 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/Converter/ContainerConverter.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/Converter/ContainerConverter.cs @@ -13,7 +13,6 @@ using System.Drawing; using ICSharpCode.Reporting.Factories; using ICSharpCode.Reporting.Interfaces; using ICSharpCode.Reporting.Interfaces.Export; -using ICSharpCode.Reporting.Items; using ICSharpCode.Reporting.PageBuilder.ExportColumns; namespace ICSharpCode.Reporting.PageBuilder.Converter @@ -23,7 +22,8 @@ namespace ICSharpCode.Reporting.PageBuilder.Converter /// internal class ContainerConverter { - private Graphics graphics; + private Graphics graphics; + public ContainerConverter(Graphics graphics,IReportContainer reportContainer,Point currentLocation ) { if (graphics == null) { @@ -40,21 +40,20 @@ namespace ICSharpCode.Reporting.PageBuilder.Converter public IExportContainer Convert() { - Console.WriteLine("Convert section for location {0}",CurrentLocation); - - // Arrange - var containerStrategy = Container.GetArrangeStrategy (); - containerStrategy.Arrange(Container,graphics); - + var containerStrategy = Container.MeasurementStrategy (); var exportContainer = (ExportContainer)Container.CreateExportColumn(); - + exportContainer.Location = CurrentLocation; + exportContainer.DesiredSize = containerStrategy.Measure(Container,graphics); + var itemsList = new List(); + foreach (var element in Container.Items) { - var textArrange = element.GetArrangeStrategy(); - textArrange.Arrange(element,graphics); var item = ExportColumnFactory.CreateItem(element); + var measureStrategy = element.MeasurementStrategy(); + item.DesiredSize = measureStrategy.Measure(element,graphics); itemsList.Add(item); + Console.WriteLine("Size {0} DesiredSize {1}",item.Size,item.DesiredSize); } exportContainer.ExportedItems.AddRange(itemsList); return exportContainer; diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportColumn.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportColumn.cs index 14fb745ff1..b6d42b8ca5 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportColumn.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportColumn.cs @@ -8,6 +8,7 @@ */ using System; using System.Drawing; +using ICSharpCode.Reporting.Arrange; using ICSharpCode.Reporting.BaseClasses; using ICSharpCode.Reporting.Exporter; using ICSharpCode.Reporting.Interfaces; @@ -26,5 +27,18 @@ namespace ICSharpCode.Reporting.PageBuilder.ExportColumns public Size Size {get;set;} public Point Location {get;set;} + + public virtual IArrangeStrategy GetArrangeStrategy () + { + return null; + } + + public Size DesiredSize {get;set;} + + public Color ForeColor {get;set;} + + public Color BackColor {get;set;} + + public Color FrameColor {get;set;} } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportContainer.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportContainer.cs index 0f53a920b3..ad09bfd257 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportContainer.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportContainer.cs @@ -8,6 +8,7 @@ */ using System; using System.Collections.Generic; +using ICSharpCode.Reporting.Arrange; using ICSharpCode.Reporting.Exporter; using ICSharpCode.Reporting.Exporter.Visitors; using ICSharpCode.Reporting.Interfaces.Export; @@ -34,5 +35,10 @@ namespace ICSharpCode.Reporting.PageBuilder.ExportColumns { visitor.Visit(this); } + + public override ICSharpCode.Reporting.Arrange.IArrangeStrategy GetArrangeStrategy() + { + return new ContainerArrangeStrategy(); + } } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportText.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportText.cs index 95e583efe0..9f23b6260c 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportText.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportText.cs @@ -21,6 +21,7 @@ namespace ICSharpCode.Reporting.PageBuilder.ExportColumns public interface IExportText : IExportColumn { Font Font {get;set;} + string Text {get;set;} } @@ -37,5 +38,8 @@ namespace ICSharpCode.Reporting.PageBuilder.ExportColumns public Font Font {get;set;} + + public string Text {get;set;} + } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Wpf/PreviewViewModel.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Wpf/PreviewViewModel.cs index 7d324f6fc6..d5b98e9d4c 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Wpf/PreviewViewModel.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Wpf/PreviewViewModel.cs @@ -11,7 +11,9 @@ using System.Collections.ObjectModel; using System.ComponentModel; using System.Diagnostics; using System.Windows.Documents; +using System.Windows.Markup; +using ICSharpCode.Reporting.Exporter; using ICSharpCode.Reporting.ExportRenderer; using ICSharpCode.Reporting.Interfaces.Export; using ICSharpCode.Reporting.Items; @@ -24,22 +26,31 @@ namespace ICSharpCode.Reporting.WpfReportViewer public class PreviewViewModel:INotifyPropertyChanged { - private IDocumentPaginatorSource document; + private FixedDocument document ; public PreviewViewModel(ReportSettings reportSettings, Collection pages) { - this.Pages = pages; - FixedDocumentRenderer renderer = new FixedDocumentRenderer(reportSettings,Pages); - renderer.Start(); - renderer.RenderOutput(); - renderer.End(); -// this.Document = renderer.Document; + if (pages == null) + throw new ArgumentNullException("pages"); + if (reportSettings == null) + throw new ArgumentNullException("reportSettings"); + Document = new FixedDocument(); + var s = Document.DocumentPaginator.PageSize; + Document.DocumentPaginator.PageSize = new System.Windows.Size(reportSettings.PageSize.Width,reportSettings.PageSize.Height); + var wpfExporter = new WpfExporter(reportSettings,pages); + wpfExporter.Run(); + var fixedPage = wpfExporter.FixedPage; + AddPageToDocument(Document,fixedPage); } + static void AddPageToDocument(FixedDocument fixedDocument,FixedPage page) + { + PageContent pageContent = new PageContent(); + ((IAddChild)pageContent).AddChild(page); + fixedDocument.Pages.Add(pageContent); + } - public Collection Pages {get;private set;} - - public IDocumentPaginatorSource Document + public FixedDocument Document { get {return document;} set { diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/BaseConvertFixture.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/BaseConvertFixture.cs index f8994db4ed..7cfc3b63ce 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/BaseConvertFixture.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/BaseConvertFixture.cs @@ -45,6 +45,8 @@ namespace ICSharpCode.Reporting.Test.PageBuilder var result = firstItem.ExportedItems[0]; Assert.That(result,Is.InstanceOf(typeof(ExportText))); } + + [SetUp] public void LoadFromStream() { diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/TestView/TestWPFReportPreview.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/TestView/TestWPFReportPreview.cs index 71a6d57b59..a24b87a690 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/TestView/TestWPFReportPreview.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/TestView/TestWPFReportPreview.cs @@ -75,8 +75,8 @@ namespace ICSharpCode.Reports.Addin.SecondaryViews var reportingFactory = new ReportingFactory(); reportCreator = reportingFactory.ReportCreator(model); reportCreator.BuildExportList(); - var pe = new PrintExporter(reportCreator.Pages); - pe.Run(); +// var pe = new PrintExporter(reportCreator.Pages); +// pe.Run(); break; } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/WPF/FixedDocumentCreator.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/WPF/FixedDocumentCreator.cs index c0285e6d4e..a409560ed5 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/WPF/FixedDocumentCreator.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/WPF/FixedDocumentCreator.cs @@ -260,7 +260,6 @@ namespace ICSharpCode.Reports.Core.WPF TextBlock CreateTextBlock(ExportText exportText) { TextBlock textBlock = new TextBlock(); - SetFont(textBlock, exportText.StyleDecorator); textBlock.TextWrapping = TextWrapping.Wrap; @@ -330,6 +329,7 @@ namespace ICSharpCode.Reports.Core.WPF void SetFont(TextBlock textBlock, TextStyleDecorator styleDecorator) { textBlock.FontFamily = new FontFamily(styleDecorator.Font.FontFamily.Name); + var b = styleDecorator.Font.Size; textBlock.FontSize = b * 96/72; if (styleDecorator.Font.Bold) { From 7480b116f093aec3979abfeb2a837d20b95019f2 Mon Sep 17 00:00:00 2001 From: Peter Forstmeier Date: Sun, 19 May 2013 11:28:50 +0200 Subject: [PATCH 25/33] ArrangeStrategy, Parent in ExportColumn.cs --- .../Src/Arrange/ArrangeStrategy.cs | 31 ++++- .../Src/BaseClasses/Page.cs | 11 ++ .../Src/Exporter/WpfExporter.cs | 4 +- .../Src/Globals/MeasurementService.cs | 4 +- .../Src/Interfaces/Export/IExportColumn.cs | 1 + .../Src/Items/BaseSection.cs | 3 +- .../Src/Items/BaseTextItem.cs | 8 +- .../Src/Items/PrintableItem.cs | 3 +- .../Converter/ContainerConverter.cs | 7 ++ .../PageBuilder/ExportColumns/ExportColumn.cs | 3 + .../Src/PageBuilder/FormPageBuilder.cs | 21 ++-- .../ICSharpCode.Reporting.Test.csproj | 1 + .../src/Model/Report_TwoItemsFixture.cs | 23 ++-- .../ContainerArrangeStrategyFixture.cs | 119 ++++++++++++++++++ .../PageBuilder/ContainerConverterFixture.cs | 12 +- .../src/PageBuilder/PageBuilderFixture.cs | 13 +- 16 files changed, 221 insertions(+), 43 deletions(-) create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/ContainerArrangeStrategyFixture.cs diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Arrange/ArrangeStrategy.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Arrange/ArrangeStrategy.cs index 123581c703..01beaae569 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Arrange/ArrangeStrategy.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Arrange/ArrangeStrategy.cs @@ -7,6 +7,9 @@ * To change this template use Tools | Options | Coding | Edit Standard Headers. */ using System; +using System.Drawing; +using System.Linq; + using ICSharpCode.Reporting.Interfaces.Export; namespace ICSharpCode.Reporting.Arrange @@ -30,15 +33,33 @@ namespace ICSharpCode.Reporting.Arrange public void Arrange(IExportColumn exportColumn) { + if (exportColumn == null) + throw new ArgumentNullException("exportColumn"); var e = exportColumn as IExportContainer; - if (e != null) { - if ((e != null) && (e.ExportedItems != null)) { + if ((e != null) && (e.ExportedItems.Count > 0)) { + + Console.WriteLine("Arrange Container {0} ",e.Name); + Console.WriteLine("Container-Size {0}",e.Size); + + BiggestRectangle = Rectangle.Empty; + + foreach (var element in e.ExportedItems) { + if (element.Size.Height > BiggestRectangle.Size.Height) { + BiggestRectangle = new Rectangle(element.Location,element.Size); + } + } + if (!BiggestRectangle.IsEmpty) { + Console.WriteLine("BiggestRectangle {0}",BiggestRectangle.ToString()); + var r = Rectangle.Union(new Rectangle(e.Location,e.Size),BiggestRectangle); + Console.WriteLine("Sorrounding {0}",r.ToString()); + e.DesiredSize = new Size(e.Size.Width,BiggestRectangle.Bottom + 2); + Console.WriteLine("Container-Desired_siz {0}",e.DesiredSize); + Console.WriteLine("new rect {0}",new Rectangle(e.Location,e.DesiredSize)); } - Console.WriteLine("Arrange Container with {0} items",e.ExportedItems.Count); - } else { - throw new ArgumentException("No Container"); } } + + public Rectangle BiggestRectangle {get; private set;} } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/Page.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/Page.cs index 1e77a6f16e..c0a2568110 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/Page.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/Page.cs @@ -92,6 +92,7 @@ namespace ICSharpCode.Reporting.BaseClasses } } + public Color FrameColor { get { throw new NotImplementedException(); @@ -100,5 +101,15 @@ namespace ICSharpCode.Reporting.BaseClasses throw new NotImplementedException(); } } + + + public IExportColumn Parent { + get { + return null; + } + set { + throw new NotImplementedException(); + } + } } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/WpfExporter.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/WpfExporter.cs index 2af9e38c63..173308e507 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/WpfExporter.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/WpfExporter.cs @@ -80,8 +80,8 @@ namespace ICSharpCode.Reporting.Exporter // canvas.Measure(size); // canvas.Arrange(new Rect(new System.Windows.Point(exportContainer.Location.X,exportContainer.Location.Y),size )); // canvas.UpdateLayout(); - var exportArrange = exportContainer.GetArrangeStrategy(); - exportArrange.Arrange(exportContainer); +// var exportArrange = exportContainer.GetArrangeStrategy(); +// exportArrange.Arrange(exportContainer); } // InternalRun(item as IExportContainer); } else { diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Globals/MeasurementService.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Globals/MeasurementService.cs index 5d776da137..47dabbd838 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Globals/MeasurementService.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Globals/MeasurementService.cs @@ -24,6 +24,9 @@ namespace ICSharpCode.Reporting.Globals public static Size Measure (ITextItem item,Graphics graphics) { + if (!item.CanGrow) { + return item.Size; + } if (!String.IsNullOrEmpty(item.Text)) { SizeF size = graphics.MeasureString(item.Text.TrimEnd(), item.Font, @@ -32,7 +35,6 @@ namespace ICSharpCode.Reporting.Globals if (size.Height < item.Size.Height) { return item.Size; } -// Console.WriteLine("ret val {0}",new Size(item.Size.Width,(int)Math.Ceiling(size.Height)).ToString()); return new Size(item.Size.Width,(int)Math.Ceiling(size.Height)); } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/Export/IExportColumn.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/Export/IExportColumn.cs index 3ce63f43e1..7f5af7049f 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/Export/IExportColumn.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/Export/IExportColumn.cs @@ -21,5 +21,6 @@ namespace ICSharpCode.Reporting.Interfaces.Export { IArrangeStrategy GetArrangeStrategy(); Size DesiredSize {get;set;} + IExportColumn Parent {get;set;} } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseSection.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseSection.cs index 8d565e8dd7..5a5942a463 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseSection.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseSection.cs @@ -17,7 +17,8 @@ namespace ICSharpCode.Reporting.Items /// /// Description of BaseSection. /// - public class BaseSection:ReportContainer,IReportContainer + +public class BaseSection:ReportContainer,IReportContainer { #region Constructors diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseTextItem.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseTextItem.cs index 62e6010536..e64e191835 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseTextItem.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseTextItem.cs @@ -23,7 +23,7 @@ namespace ICSharpCode.Reporting.Items { Font Font {get;set;} string Text {get;set;} - + bool CanGrow {get;set;} } public class BaseTextItem:PrintableItem,ITextItem @@ -38,7 +38,8 @@ namespace ICSharpCode.Reporting.Items public string Text {get;set;} - + public bool CanGrow {get;set;} + public override IExportColumn CreateExportColumn() { var ex = new ExportText(); @@ -57,7 +58,6 @@ namespace ICSharpCode.Reporting.Items { return new TextBasedMeasurementStrategy(); } - - + } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/PrintableItem.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/PrintableItem.cs index a00cdca34c..093182ad62 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/PrintableItem.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/PrintableItem.cs @@ -35,10 +35,9 @@ namespace ICSharpCode.Reporting.Items public Color ForeColor {get;set;} - public Color BackColor {get;set;} - public Color FrameColor {get;set;} + } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/Converter/ContainerConverter.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/Converter/ContainerConverter.cs index eda6c88aa8..6faaa87df8 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/Converter/ContainerConverter.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/Converter/ContainerConverter.cs @@ -50,12 +50,19 @@ namespace ICSharpCode.Reporting.PageBuilder.Converter foreach (var element in Container.Items) { var item = ExportColumnFactory.CreateItem(element); + item.Parent = exportContainer; var measureStrategy = element.MeasurementStrategy(); item.DesiredSize = measureStrategy.Measure(element,graphics); + itemsList.Add(item); Console.WriteLine("Size {0} DesiredSize {1}",item.Size,item.DesiredSize); } exportContainer.ExportedItems.AddRange(itemsList); + + Console.WriteLine("calling Container-Arrange"); + var exportArrange = exportContainer.GetArrangeStrategy(); + exportArrange.Arrange(exportContainer); + return exportContainer; } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportColumn.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportColumn.cs index b6d42b8ca5..209d22b815 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportColumn.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportColumn.cs @@ -40,5 +40,8 @@ namespace ICSharpCode.Reporting.PageBuilder.ExportColumns public Color BackColor {get;set;} public Color FrameColor {get;set;} + + public IExportColumn Parent {get;set;} + } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/FormPageBuilder.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/FormPageBuilder.cs index a9b399e1f5..26156a95db 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/FormPageBuilder.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/FormPageBuilder.cs @@ -35,15 +35,16 @@ namespace ICSharpCode.Reporting.PageBuilder { base.BuildExportList(); WritePages (); - BuildReportHeader(); +// BuildReportHeader(); } void BuildReportHeader() { if (Pages.Count == 0) { - var sc = new ContainerConverter(graphics,ReportModel.ReportHeader,CurrentLocation); - var header =sc.Convert(); + var containerConverter = new ContainerConverter(graphics,ReportModel.ReportHeader,CurrentLocation); + var header = containerConverter.Convert(); + header.Parent = CurrentPage; CurrentPage.ExportedItems.Add(header); var r = new Rectangle(header.Location.X,header.Location.Y,header.Size.Width,header.Size.Height); CurrentLocation = new Point (ReportModel.ReportSettings.LeftMargin,r.Bottom + 5); @@ -52,8 +53,9 @@ namespace ICSharpCode.Reporting.PageBuilder void BuildPageHeader() { - var sc = new ContainerConverter(graphics,ReportModel.PageHeader,CurrentLocation); - var header =sc.Convert(); + var containerConverter = new ContainerConverter(graphics,ReportModel.PageHeader,CurrentLocation); + var header =containerConverter.Convert(); + header.Parent = CurrentPage; CurrentPage.ExportedItems.Add(header); } @@ -69,8 +71,9 @@ 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(graphics,ReportModel.PageFooter,CurrentLocation); - var header =sc.Convert(); + var containerConverter = new ContainerConverter(graphics,ReportModel.PageFooter,CurrentLocation); + var header =containerConverter.Convert(); + header.Parent = CurrentPage; CurrentPage.ExportedItems.Add(header); } @@ -81,8 +84,8 @@ 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(graphics,ReportModel.ReportFooter,CurrentLocation); - var header =sc.Convert(); + var containerConverter = new ContainerConverter(graphics,ReportModel.ReportFooter,CurrentLocation); + var header =containerConverter.Convert(); CurrentPage.ExportedItems.Add(header); } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/ICSharpCode.Reporting.Test.csproj b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/ICSharpCode.Reporting.Test.csproj index f4d8956ae6..f01783fab3 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/ICSharpCode.Reporting.Test.csproj +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/ICSharpCode.Reporting.Test.csproj @@ -62,6 +62,7 @@ + diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/Model/Report_TwoItemsFixture.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/Model/Report_TwoItemsFixture.cs index 6d580ac0ce..dd66be2304 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/Model/Report_TwoItemsFixture.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/Model/Report_TwoItemsFixture.cs @@ -19,30 +19,25 @@ namespace ICSharpCode.Reporting.Test.Model [TestFixture] public class ReportTwoItemsFixture { - Stream stream; + + private ReportModel model; [Test] public void LoadModelWithItems() { - var rf = new ReportingFactory(); - var model = rf.LoadReportModel(stream); Assert.That(model,Is.Not.Null); } [Test] public void ReportHeaderOneItem () { - var rf = new ReportingFactory(); - var model = rf.LoadReportModel(stream); var section = model.ReportHeader; - Assert.That(section.Items.Count,Is.EqualTo(1)); + Assert.That(section.Items.Count,Is.EqualTo(1)); } [Test] public void PageHeaderOneItem () { - var rf = new ReportingFactory(); - var model = rf.LoadReportModel(stream); var section = model.ReportHeader; Assert.That(section.Items.Count,Is.EqualTo(1)); } @@ -50,27 +45,25 @@ namespace ICSharpCode.Reporting.Test.Model [Test] public void ItemIsTextItem() { - var rf = new ReportingFactory(); - var model = rf.LoadReportModel(stream); var item = model.ReportHeader.Items[0]; Assert.That(item,Is.AssignableFrom(typeof(BaseTextItem))); } - + [Test] public void IsLocationSet() { - var rf = new ReportingFactory(); - var model = rf.LoadReportModel(stream); var item = model.ReportHeader.Items[0]; Assert.That(item.Location,Is.Not.EqualTo(Point.Empty)); } [SetUp] - public void LoadFromStream() + public void LoadModelFromStream() { System.Reflection.Assembly asm = Assembly.GetExecutingAssembly(); - stream = asm.GetManifestResourceStream(TestHelper.RepWithTwoItems); + var stream = asm.GetManifestResourceStream(TestHelper.RepWithTwoItems); + var rf = new ReportingFactory(); + model = rf.LoadReportModel(stream); } } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/ContainerArrangeStrategyFixture.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/ContainerArrangeStrategyFixture.cs new file mode 100644 index 0000000000..68faabc9dc --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/ContainerArrangeStrategyFixture.cs @@ -0,0 +1,119 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 15.05.2013 + * Time: 19:54 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using System.Drawing; +using ICSharpCode.Reporting.Arrange; +using ICSharpCode.Reporting.Interfaces.Export; +using ICSharpCode.Reporting.PageBuilder.ExportColumns; +using NUnit.Framework; + +namespace ICSharpCode.Reporting.Test.PageBuilder +{ + [TestFixture] + public class ContainerArrangeStrategyFixture + { + ContainerArrangeStrategy strategy; + + [Test] + public void ContainerNoChildren() { + var param = new ExportContainer(); + var size = param.Size; + strategy.Arrange(param); + Assert.That(param.Size, Is.EqualTo(size)); + } + + [Test] + public void ItemAtTopOfContainer() { + var c = CreateContainer(); + c.ExportedItems[0].Location = c.Location; + strategy.Arrange(c); + + var containerRect = new Rectangle(c.Location,c.DesiredSize); + var itemRect = new Rectangle(c.ExportedItems[0].Location,c.ExportedItems[0].Size); + + Console.WriteLine("{0} - {1} - {2} - {3}",containerRect,containerRect.Bottom,itemRect,itemRect.Bottom); + Assert.That(containerRect.Contains(itemRect)); + + } + + + [Test] + public void ItemAtTopBottomOfContainer() { + var c = CreateContainer(); + c.ExportedItems[0].Location = new Point (c.Location.X, + c.Location.Y + c.DesiredSize.Height - c.ExportedItems[0].Size.Height); + strategy.Arrange(c); + + var containerRect = new Rectangle(c.Location,c.DesiredSize); + var itemRect = new Rectangle(c.ExportedItems[0].Location,c.ExportedItems[0].Size); + + Console.WriteLine("{0} - {1} - {2} - {3}",containerRect,containerRect.Bottom,itemRect,itemRect.Bottom); + Assert.That(containerRect.Contains(itemRect)); + } + + + [Test] + public void FindBiggestRectangle () { + var c = CreateContainer(); + var secondItem = new ExportText(){ + Name = "Item1", + Location = new Point(10,10), + Size = new Size (60,70) + }; + c.ExportedItems.Add(secondItem); + + strategy.Arrange(c); + var expected = new Rectangle(secondItem.Location,secondItem.Size); + Assert.That(strategy.BiggestRectangle,Is.EqualTo(expected)); + } + + + [Test] + public void ContainerCanGrow () { + var c = CreateContainer(); + var secondItem = new ExportText(){ + + Name = "Item1", + Location = new Point(10,10), + Size = new Size (20,70) + }; + c.ExportedItems.Add(secondItem); + strategy.Arrange(c); + var containerRect = new Rectangle(c.Location,c.DesiredSize); + Console.WriteLine("{0} - {1} - {2} - {3}",containerRect,containerRect.Bottom,strategy.BiggestRectangle,strategy.BiggestRectangle.Bottom); + Assert.That(containerRect.Contains(strategy.BiggestRectangle)); + } + + + private IExportContainer CreateContainer () { + + var container = new ExportContainer(){ + Size = new Size (720,60), + Location = new Point(50,50), + Name ="Section" + }; + + var item1 = new ExportText(){ + Name = "Item1", + Location = new Point(55,55), + Size = new Size (60,20) + }; + + container.ExportedItems.Add(item1); + container.DesiredSize = container.Size; + return container; + } + + [TestFixtureSetUp] + public void Init() + { + strategy = new ContainerArrangeStrategy(); + } + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/ContainerConverterFixture.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/ContainerConverterFixture.cs index 642b1567d5..22bc01f0df 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/ContainerConverterFixture.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/ContainerConverterFixture.cs @@ -12,7 +12,6 @@ using ICSharpCode.Reporting.Interfaces; using ICSharpCode.Reporting.Interfaces.Export; using ICSharpCode.Reporting.Items; using ICSharpCode.Reporting.PageBuilder.Converter; -using ICSharpCode.Reporting.PageBuilder.ExportColumns; using NUnit.Framework; namespace ICSharpCode.Reporting.Test.PageBuilder @@ -48,7 +47,16 @@ namespace ICSharpCode.Reporting.Test.PageBuilder Assert.That(result.Location,Is.EqualTo(location)); } - + [Test] + public void ParentInChildsIsSet () { + var converter = new ContainerConverter(graphics,container,container.Location); + var result = converter.Convert(); + foreach (var element in result.ExportedItems) { + Assert.That(element.Parent,Is.Not.Null); + } + } + + [TestFixtureSetUp] public void Init() { diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/PageBuilderFixture.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/PageBuilderFixture.cs index bd57c50c0c..91b5915bf9 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/PageBuilderFixture.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/PageBuilderFixture.cs @@ -10,6 +10,7 @@ using System; using System.IO; using System.Reflection; +using ICSharpCode.Reporting.BaseClasses; using ICSharpCode.Reporting.Exporter; using ICSharpCode.Reporting.Interfaces; using ICSharpCode.Reporting.Interfaces.Export; @@ -62,8 +63,16 @@ namespace ICSharpCode.Reporting.Test.PageBuilder #endregion - - + [Test] + public void ParentOfSectionsIsPage() { + reportCreator.BuildExportList(); + var page = reportCreator.Pages[0]; + foreach (var element in page.ExportedItems) { + Assert.That(element.Parent,Is.Not.Null); + Assert.That(element.Parent,Is.AssignableTo(typeof(IPage))); + } + } + [SetUp] public void LoadFromStream() { From eb7f7971220c939b8fb71088343b12e690376ce2 Mon Sep 17 00:00:00 2001 From: Peter Forstmeier Date: Sun, 19 May 2013 20:14:59 +0200 Subject: [PATCH 26/33] Test#s for ArrangeStrategy.cs --- .../Src/Arrange/ArrangeStrategy.cs | 25 ++--- .../Src/BaseClasses/Page.cs | 2 +- .../Src/Items/BaseSection.cs | 1 - .../Src/PageBuilder/FormPageBuilder.cs | 2 +- .../ContainerArrangeStrategyFixture.cs | 92 ++++++++++++------- .../src/TestReports/ReportWithTwoItems.srd | 2 +- 6 files changed, 71 insertions(+), 53 deletions(-) diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Arrange/ArrangeStrategy.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Arrange/ArrangeStrategy.cs index 01beaae569..b5439b7d81 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Arrange/ArrangeStrategy.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Arrange/ArrangeStrategy.cs @@ -35,26 +35,21 @@ namespace ICSharpCode.Reporting.Arrange { if (exportColumn == null) throw new ArgumentNullException("exportColumn"); - var e = exportColumn as IExportContainer; - if ((e != null) && (e.ExportedItems.Count > 0)) { - - Console.WriteLine("Arrange Container {0} ",e.Name); - Console.WriteLine("Container-Size {0}",e.Size); - + var container = exportColumn as IExportContainer; + if ((container != null) && (container.ExportedItems.Count > 0)) { BiggestRectangle = Rectangle.Empty; - foreach (var element in e.ExportedItems) { - if (element.Size.Height > BiggestRectangle.Size.Height) { - BiggestRectangle = new Rectangle(element.Location,element.Size); + foreach (var item in container.ExportedItems) { + if (item.DesiredSize.Height > BiggestRectangle.Size.Height) { + BiggestRectangle = new Rectangle(new Point(container.Location.X + item.Location.X, + container.Location.Y + item.Location.Y) + ,item.DesiredSize); } } if (!BiggestRectangle.IsEmpty) { - Console.WriteLine("BiggestRectangle {0}",BiggestRectangle.ToString()); - var r = Rectangle.Union(new Rectangle(e.Location,e.Size),BiggestRectangle); - Console.WriteLine("Sorrounding {0}",r.ToString()); - e.DesiredSize = new Size(e.Size.Width,BiggestRectangle.Bottom + 2); - Console.WriteLine("Container-Desired_siz {0}",e.DesiredSize); - Console.WriteLine("new rect {0}",new Rectangle(e.Location,e.DesiredSize)); + var containerRectangle = new Rectangle(container.Location,container.Size); + var desiredRectangle = Rectangle.Union(containerRectangle,BiggestRectangle); + container.DesiredSize = new Size(container.Size.Width,desiredRectangle.Size.Height + 5); } } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/Page.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/Page.cs index c0a2568110..3131ca3615 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/Page.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/Page.cs @@ -20,7 +20,7 @@ namespace ICSharpCode.Reporting.BaseClasses /// /// - public class Page:IPage + public class Page:IExportContainer,IPage { public Page(IPageInfo pageInfo,Size pageSize) { diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseSection.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseSection.cs index 5a5942a463..51f35363ec 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseSection.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseSection.cs @@ -24,7 +24,6 @@ public class BaseSection:ReportContainer,IReportContainer public BaseSection() { -// Items = new List(); } public BaseSection (string name) { diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/FormPageBuilder.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/FormPageBuilder.cs index 26156a95db..93fd995b74 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/FormPageBuilder.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/FormPageBuilder.cs @@ -54,7 +54,7 @@ namespace ICSharpCode.Reporting.PageBuilder void BuildPageHeader() { var containerConverter = new ContainerConverter(graphics,ReportModel.PageHeader,CurrentLocation); - var header =containerConverter.Convert(); + var header = containerConverter.Convert(); header.Parent = CurrentPage; CurrentPage.ExportedItems.Add(header); } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/ContainerArrangeStrategyFixture.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/ContainerArrangeStrategyFixture.cs index 68faabc9dc..0b3e01fd97 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/ContainerArrangeStrategyFixture.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/ContainerArrangeStrategyFixture.cs @@ -30,14 +30,14 @@ namespace ICSharpCode.Reporting.Test.PageBuilder [Test] public void ItemAtTopOfContainer() { - var c = CreateContainer(); - c.ExportedItems[0].Location = c.Location; - strategy.Arrange(c); + var container = CreateContainer(); + container.ExportedItems[0].Location = container.Location; + strategy.Arrange(container); - var containerRect = new Rectangle(c.Location,c.DesiredSize); - var itemRect = new Rectangle(c.ExportedItems[0].Location,c.ExportedItems[0].Size); + var containerRect = new Rectangle(container.Location,container.DesiredSize); + var itemRect = new Rectangle(container.ExportedItems[0].Location,container.ExportedItems[0].Size); - Console.WriteLine("{0} - {1} - {2} - {3}",containerRect,containerRect.Bottom,itemRect,itemRect.Bottom); +// Console.WriteLine("{0} - {1} - {2} - {3}",containerRect,containerRect.Bottom,itemRect,itemRect.Bottom); Assert.That(containerRect.Contains(itemRect)); } @@ -45,49 +45,72 @@ namespace ICSharpCode.Reporting.Test.PageBuilder [Test] public void ItemAtTopBottomOfContainer() { - var c = CreateContainer(); - c.ExportedItems[0].Location = new Point (c.Location.X, - c.Location.Y + c.DesiredSize.Height - c.ExportedItems[0].Size.Height); - strategy.Arrange(c); + var container = CreateContainer(); + container.ExportedItems[0].Location = new Point (container.Location.X, + container.Location.Y + container.DesiredSize.Height - container.ExportedItems[0].Size.Height); + strategy.Arrange(container); - var containerRect = new Rectangle(c.Location,c.DesiredSize); - var itemRect = new Rectangle(c.ExportedItems[0].Location,c.ExportedItems[0].Size); + var containerRect = new Rectangle(container.Location,container.DesiredSize); + var itemRect = new Rectangle(container.ExportedItems[0].Location,container.ExportedItems[0].Size); - Console.WriteLine("{0} - {1} - {2} - {3}",containerRect,containerRect.Bottom,itemRect,itemRect.Bottom); +// Console.WriteLine("{0} - {1} - {2} - {3}",containerRect,containerRect.Bottom,itemRect,itemRect.Bottom); Assert.That(containerRect.Contains(itemRect)); } [Test] public void FindBiggestRectangle () { - var c = CreateContainer(); - var secondItem = new ExportText(){ - Name = "Item1", - Location = new Point(10,10), - Size = new Size (60,70) - }; - c.ExportedItems.Add(secondItem); + var container = CreateContainer(); + var secondItem = CreateCanGrowText(container); + container.ExportedItems.Add(secondItem); - strategy.Arrange(c); - var expected = new Rectangle(secondItem.Location,secondItem.Size); + strategy.Arrange(container); + var expected = new Rectangle(new Point(container.Location.X + secondItem.Location.X, + container.Location.Y + secondItem.Location.Y), + secondItem.Size); Assert.That(strategy.BiggestRectangle,Is.EqualTo(expected)); } [Test] - public void ContainerCanGrow () { - var c = CreateContainer(); + public void ContainerResizeIfItemCanGrow () { + var container = CreateContainer(); + + container.ExportedItems.Add(CreateCanGrowText(container)); + strategy.Arrange(container); + var containerRect = new Rectangle(container.Location,container.DesiredSize); + var arrangeRect = new Rectangle(new Point(container.Location.X + strategy.BiggestRectangle.Left, + strategy.BiggestRectangle.Top), + strategy.BiggestRectangle.Size); + +// Console.WriteLine("{0} - {1} - {2} - {3}",containerRect,containerRect.Bottom,strategy.BiggestRectangle,strategy.BiggestRectangle.Bottom); + Assert.That(containerRect.Contains(arrangeRect)); + Assert.That(containerRect.Bottom,Is.EqualTo(arrangeRect.Bottom + 5)); + } + + [Test] + public void ResizedContainerExeed5Points() { + var container = CreateContainer(); + container.ExportedItems.Add(CreateCanGrowText(container)); + strategy.Arrange(container); + var containerRect = new Rectangle(container.Location,container.DesiredSize); + var arrangeRect = new Rectangle(new Point(container.Location.X + strategy.BiggestRectangle.Left, + strategy.BiggestRectangle.Top), + strategy.BiggestRectangle.Size); + + Assert.That(containerRect.Bottom,Is.EqualTo(arrangeRect.Bottom + 5)); + } + + + private IExportText CreateCanGrowText(IExportContainer container) { var secondItem = new ExportText(){ - Name = "Item1", - Location = new Point(10,10), - Size = new Size (20,70) + Location = new Point(80,10), + Size = new Size (20,70), + DesiredSize = new Size (20,70), + Parent = container }; - c.ExportedItems.Add(secondItem); - strategy.Arrange(c); - var containerRect = new Rectangle(c.Location,c.DesiredSize); - Console.WriteLine("{0} - {1} - {2} - {3}",containerRect,containerRect.Bottom,strategy.BiggestRectangle,strategy.BiggestRectangle.Bottom); - Assert.That(containerRect.Contains(strategy.BiggestRectangle)); + return secondItem; } @@ -101,8 +124,9 @@ namespace ICSharpCode.Reporting.Test.PageBuilder var item1 = new ExportText(){ Name = "Item1", - Location = new Point(55,55), - Size = new Size (60,20) + Location = new Point(10,10), + Size = new Size (60,20), + Parent = container }; container.ExportedItems.Add(item1); diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/TestReports/ReportWithTwoItems.srd b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/TestReports/ReportWithTwoItems.srd index 47d8a3ea35..76739e303c 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/TestReports/ReportWithTwoItems.srd +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/TestReports/ReportWithTwoItems.srd @@ -73,7 +73,7 @@ Microsoft Sans Serif, 10pt None TopLeft - False + True False No TestText for Item in PageHeader From ad64360b55d82be43dc93bf45d3369c925b7d109 Mon Sep 17 00:00:00 2001 From: Peter Forstmeier Date: Tue, 21 May 2013 21:03:26 +0200 Subject: [PATCH 27/33] DataSource --- .../ICSharpCode.Reporting.csproj | 16 ++ .../Src/Arrange/ArrangeStrategy.cs | 37 +++- .../Src/BaseClasses/AbstractColumn.cs | 63 ++++++ .../Src/BaseClasses/Page.cs | 4 + .../Src/BaseClasses/SortColumn.cs | 53 +++++ .../ICSharpCode.Reporting/Src/Collections.cs | 92 ++++++++ .../Listhandling/CollectionSource.cs | 89 ++++++++ .../Src/DataManager/Listhandling/IndexList.cs | 27 +++ .../Src/DataSource/Comparer/BaseComparer.cs | 94 ++++++++ .../Src/DataSource/DataCollection.cs | 203 ++++++++++++++++++ .../DataSource/ExtendedPropertyDescriptor.cs | 95 ++++++++ .../Src/DataSource/ExtendedTypeDescriptor.cs | 65 ++++++ .../Src/DataSource/PropertyTypeHash.cs | 53 +++++ .../Src/Interfaces/Data/IDataViewHandling.cs | 49 +++++ .../Src/Interfaces/IPrintableObject.cs | 2 + .../Src/Items/BaseSection.cs | 2 - .../Src/Items/BaseTextItem.cs | 4 +- .../Src/Items/PrintableItem.cs | 2 + .../Src/Items/ReportContainer.cs | 3 +- .../PageBuilder/ExportColumns/ExportColumn.cs | 2 + .../ICSharpCode.Reporting.Test.csproj | 3 + .../DataSource/CollectionHandlingFixture.cs | 57 +++++ .../src/DataSource/ContributorsList.cs | 132 ++++++++++++ .../ContainerArrangeStrategyFixture.cs | 1 + .../Project/BaseClasses/SortColumn.cs | 21 +- .../ListStrategy/GroupListFixture.cs | 2 +- 26 files changed, 1138 insertions(+), 33 deletions(-) create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/AbstractColumn.cs create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/SortColumn.cs create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Collections.cs create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataManager/Listhandling/CollectionSource.cs create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataManager/Listhandling/IndexList.cs create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataSource/Comparer/BaseComparer.cs create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataSource/DataCollection.cs create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataSource/ExtendedPropertyDescriptor.cs create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataSource/ExtendedTypeDescriptor.cs create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataSource/PropertyTypeHash.cs create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/Data/IDataViewHandling.cs create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/DataSource/CollectionHandlingFixture.cs create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/DataSource/ContributorsList.cs diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj index fdbf725c03..ae7d1cb23e 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj @@ -72,9 +72,19 @@ + + + + + + + + + + @@ -88,6 +98,7 @@ + @@ -120,18 +131,23 @@ + + + + + diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Arrange/ArrangeStrategy.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Arrange/ArrangeStrategy.cs index b5439b7d81..d70eddcc96 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Arrange/ArrangeStrategy.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Arrange/ArrangeStrategy.cs @@ -37,23 +37,38 @@ namespace ICSharpCode.Reporting.Arrange throw new ArgumentNullException("exportColumn"); var container = exportColumn as IExportContainer; if ((container != null) && (container.ExportedItems.Count > 0)) { - BiggestRectangle = Rectangle.Empty; - foreach (var item in container.ExportedItems) { - if (item.DesiredSize.Height > BiggestRectangle.Size.Height) { - BiggestRectangle = new Rectangle(new Point(container.Location.X + item.Location.X, - container.Location.Y + item.Location.Y) - ,item.DesiredSize); + + FindBiggestRectangle(container); + var resizeable = from resize in container.ExportedItems + where ((resize.CanGrow == true)) + select resize; + + + if (resizeable.Count() > 0) { + + + + + if (!BiggestRectangle.IsEmpty) { + var containerRectangle = new Rectangle(container.Location,container.Size); + var desiredRectangle = Rectangle.Union(containerRectangle,BiggestRectangle); + container.DesiredSize = new Size(container.Size.Width,desiredRectangle.Size.Height + 5); } } - if (!BiggestRectangle.IsEmpty) { - var containerRectangle = new Rectangle(container.Location,container.Size); - var desiredRectangle = Rectangle.Union(containerRectangle,BiggestRectangle); - container.DesiredSize = new Size(container.Size.Width,desiredRectangle.Size.Height + 5); - } } } + private void FindBiggestRectangle (IExportContainer container) { + BiggestRectangle = Rectangle.Empty; + foreach (var item in container.ExportedItems) { + if (item.DesiredSize.Height > BiggestRectangle.Size.Height) { + BiggestRectangle = new Rectangle(new Point(container.Location.X + item.Location.X, + container.Location.Y + item.Location.Y) + ,item.DesiredSize); + } + } + } public Rectangle BiggestRectangle {get; private set;} } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/AbstractColumn.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/AbstractColumn.cs new file mode 100644 index 0000000000..9702ffdf86 --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/AbstractColumn.cs @@ -0,0 +1,63 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 21.05.2013 + * Time: 20:16 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using System.Xml.Serialization; + +namespace ICSharpCode.Reporting.BaseClasses +{ + /// + /// Description of AbstractColumn. + /// + public class AbstractColumn + { + private string columnName; + private Type dataType; + private string dataTypeName; + + public AbstractColumn() { + this.dataType = typeof(System.String); + this.columnName = string.Empty; + } + +// public AbstractColumn(string columnName){ +// this.columnName = columnName; +// this.dataType = typeof(System.String); +// } + + public AbstractColumn(string columnName, Type dataType){ + this.columnName = columnName; + this.dataType = dataType; + } + + public string ColumnName {get;set;} + + + + public string DataTypeName { + get { + return this.dataType.ToString(); + } + set { + dataTypeName = value; + this.dataType = Type.GetType(dataTypeName,true,true); + } + } + + [XmlIgnoreAttribute] + public Type DataType { + get { + return dataType; + } + set { + dataType = value; + } + } + + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/Page.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/Page.cs index 3131ca3615..3feacafeba 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/Page.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/Page.cs @@ -111,5 +111,9 @@ namespace ICSharpCode.Reporting.BaseClasses throw new NotImplementedException(); } } + + public bool CanGrow {get;set;} + + public bool CanShrink {get;set;} } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/SortColumn.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/SortColumn.cs new file mode 100644 index 0000000000..ca6ce7e5aa --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/SortColumn.cs @@ -0,0 +1,53 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 21.05.2013 + * Time: 20:20 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using System.ComponentModel; + +namespace ICSharpCode.Reporting.BaseClasses +{ + /// + /// Description of SortColumn. + /// + public class SortColumn : AbstractColumn { + + private ListSortDirection sortDirection = ListSortDirection.Ascending; + private bool caseSensitive; + + + public SortColumn():this(String.Empty,ListSortDirection.Ascending,typeof(System.String),false) + { + } + + public SortColumn(string columnName,Type type ):this(columnName,ListSortDirection.Ascending,type,false) + { + } + + + public SortColumn(string columnName,ListSortDirection sortDirection) + :this(columnName,sortDirection,typeof(System.String),false){ + } + + + public SortColumn(string columnName, ListSortDirection sortDirection, Type type,bool caseSensitive ):base (columnName,type) + { + this.caseSensitive = caseSensitive; + this.sortDirection = sortDirection; + } + + #region properties + + public ListSortDirection SortDirection {get;set;} + + + public bool CaseSensitive {get;private set;} + + + #endregion + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Collections.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Collections.cs new file mode 100644 index 0000000000..42ea5cecff --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Collections.cs @@ -0,0 +1,92 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 21.05.2013 + * Time: 20:03 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Globalization; +using System.Linq; + +using ICSharpCode.Reporting.BaseClasses; + +namespace ICSharpCode.Reporting +{ + /// + /// Description of Collections. + /// + + public class ColumnCollection: Collection{ + + public ColumnCollection() + { + } + + public AbstractColumn Find (string columnName) + { + if (String.IsNullOrEmpty(columnName)) { + throw new ArgumentNullException("columnName"); + } + + return this.FirstOrDefault(x => 0 == String.Compare(x.ColumnName,columnName,true,CultureInfo.InvariantCulture)); + } + + + public void AddRange (IEnumerable items) + { + foreach (AbstractColumn item in items){ + this.Add(item); + } + } + + + /// + /// The Culture is used for direct String Comparison + /// + + public static CultureInfo Culture + { + get { return CultureInfo.CurrentCulture;} + } + } + + + + public class SortColumnCollection: ColumnCollection + { + public SortColumnCollection() + { + } + +// public new AbstractColumn Find (string columnName) +// { +// if (String.IsNullOrEmpty(columnName)) { +// throw new ArgumentNullException("columnName"); +// } +// +// return this.FirstOrDefault(x => 0 == String.Compare(x.ColumnName,columnName,true,CultureInfo.InvariantCulture)); +// } + + + public void AddRange (IEnumerable items) + { + foreach (SortColumn item in items){ + this.Add(item); + } + } + + + /// + /// The Culture is used for direct String Comparison + /// + +// public new static CultureInfo Culture +// { +// get { return CultureInfo.CurrentCulture;} +// } + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataManager/Listhandling/CollectionSource.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataManager/Listhandling/CollectionSource.cs new file mode 100644 index 0000000000..afbd22e3e6 --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataManager/Listhandling/CollectionSource.cs @@ -0,0 +1,89 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 21.05.2013 + * Time: 20:09 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using System.Collections; +using System.Collections.ObjectModel; +using System.ComponentModel; + +using ICSharpCode.Reporting.BaseClasses; +using ICSharpCode.Reporting.DataSource; +using ICSharpCode.Reporting.Interfaces.Data; +using ICSharpCode.Reporting.Items; + +namespace ICSharpCode.Reporting.DataManager.Listhandling +{ + /// + /// Description of CollectionHandling. + /// + internal class CollectionSource:IDataViewHandling + { + + private PropertyDescriptorCollection listProperties; + private DataCollection baseList; + private ReportSettings reportSettings; + + + public CollectionSource(IList list,ReportSettings reportSettings) + { + + if (list.Count > 0) { +// firstItem = list[0]; + + var itemType = list[0].GetType(); + this.baseList = new DataCollection (itemType); + this.baseList.AddRange(list); + } + this.reportSettings = reportSettings; + this.listProperties = this.baseList.GetItemProperties(null); + IndexList = new IndexList(); + } + + public int Count + { + get { + return this.baseList.Count; + } + } + + public Collection AvailableFields { + get { +// base.AvailableFields.Clear(); + var av = new Collection(); + foreach (PropertyDescriptor p in this.listProperties){ + av.Add (new AbstractColumn(p.Name,p.PropertyType)); + } + return av; + } + } + + public object Current { + get { + throw new NotImplementedException(); + } + } + + public void Sort() + { + throw new NotImplementedException(); + } + + public bool MoveNext() + { + throw new NotImplementedException(); + } + + public void Reset() + { + throw new NotImplementedException(); + } + + public IndexList IndexList {get; private set;} + + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataManager/Listhandling/IndexList.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataManager/Listhandling/IndexList.cs new file mode 100644 index 0000000000..4c39eb05dc --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataManager/Listhandling/IndexList.cs @@ -0,0 +1,27 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 21.05.2013 + * Time: 20:54 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using System.Collections.Generic; +using ICSharpCode.Reporting.DataSource.Comparer; + +namespace ICSharpCode.Reporting.DataManager.Listhandling +{ + /// + /// Description of IndexList. + /// + public class IndexList :List + { + + public IndexList() + { + } + + public int CurrentPosition {get;set;} + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataSource/Comparer/BaseComparer.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataSource/Comparer/BaseComparer.cs new file mode 100644 index 0000000000..8413c8aeda --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataSource/Comparer/BaseComparer.cs @@ -0,0 +1,94 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 21.05.2013 + * Time: 20:57 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; + +namespace ICSharpCode.Reporting.DataSource.Comparer +{ + /// + /// Description of BaseComparer. + /// + public class BaseComparer : IComparable { + + private int listIndex; + private object[] objectArray; + + ColumnCollection columnCollection; + /// + /// Default constructor - initializes all fields to default values + /// + + public BaseComparer(ColumnCollection columnCollection , int listIndex, object[] values) { + this.columnCollection = columnCollection; + this.listIndex = listIndex; + this.objectArray = values; + } + + /// + /// Interface method from IComparable + /// + /// + /// Interface method from IComparable + /// + /// + /// a + public virtual int CompareTo(object obj) { + return 0; + } + + /// + /// Ausgeben der Werte als Pseudo-CSV + /// + public override string ToString() + { + System.Text.StringBuilder builder = new System.Text.StringBuilder(); + builder.AppendFormat("{0};", this.listIndex); + foreach (object value in objectArray) + { + if (value == null || value == DBNull.Value) + { + builder.AppendFormat(""); + } + else if (value.GetType() == typeof(string)) + { + builder.AppendFormat("\"{0}\"", (string)value); + } + else if (value is IFormattable) + { + builder.AppendFormat("{0}", ((IFormattable)value).ToString("g", System.Globalization.CultureInfo.InvariantCulture)); + } + else + { + builder.AppendFormat("[{0}]", value.ToString()); + } + builder.Append(';'); + } + return builder.ToString(); + } + + + public int ListIndex { + get { + return listIndex; + } + } + + public object[] ObjectArray { + get { + return objectArray; + } + } + + + public ColumnCollection ColumnCollection { + get { + return columnCollection; + } + } + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataSource/DataCollection.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataSource/DataCollection.cs new file mode 100644 index 0000000000..130a7a09ed --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataSource/DataCollection.cs @@ -0,0 +1,203 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 20.05.2013 + * Time: 17:55 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using System.Collections; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.ComponentModel; +using System.Diagnostics; +using System.Reflection; + +namespace ICSharpCode.Reporting.DataSource +{ + /// + /// Description of DataCollection. + /// + internal class DataCollection : IList,ITypedList + { + Collection list = new Collection(); + Type elementType; + + public DataCollection(Type elementType) + { + this.elementType = elementType; + } + + public T this[int index] + { + get { + return list[index]; + } + set { + T oldValue = list[index]; + if (!object.Equals(oldValue, value)) { + list[index] = value; + } + } + } + + public int Count + { + [DebuggerStepThrough] + get { + return list.Count; + } + } + + public bool IsReadOnly + { + get { + return false; + } + } + + public int IndexOf(T item) + { + return list.IndexOf(item); + } + + public void Insert(int index, T item) + { + list.Insert(index, item); + } + + public void RemoveAt(int index) + { + list.RemoveAt(index); + } + + public void Add(T item) + { + list.Add(item); + } + + + public void AddRange(IList range) + { + foreach(T t in range) { + Add(t); + } + } + + + public void Clear(){ + list = new Collection(); + } + + public bool Contains(T item) + { + return list.Contains(item); + } + + public void CopyTo(T[] array, int arrayIndex) + { + list.CopyTo(array, arrayIndex); + } + + public bool Remove(T item) + { + if (list.Remove(item)) { + return true; + } + return false; + } + + #region ITypedList Member + + public PropertyDescriptorCollection GetItemProperties(PropertyDescriptor[] listAccessors){ + if (listAccessors != null && listAccessors.Length > 0){ + Type t = this.elementType; + + for(int i = 0; i < listAccessors.Length; i++){ + PropertyDescriptor pd = listAccessors[i]; + t = (Type) PropertyTypeHash.Instance[t, pd.Name]; + } + // if t is null an empty list will be generated + return ExtendedTypeDescriptor.GetProperties(t); + } + return ExtendedTypeDescriptor.GetProperties(elementType); + } + + + public string GetListName(PropertyDescriptor[] listAccessors){ + return elementType.Name; + } + + public static Type GetElementType(IList list, Type parentType, string propertyName) + { + DataCollection al = null; + object element = null; + al = CheckForArrayList(list); + if (al == null) + { + if (list.Count > 0) + { + element = list[0]; + } + } + if (al == null && element == null) + { + PropertyInfo pi = parentType.GetProperty(propertyName); + if (pi != null) + { + object parentObject = null; + try + { + parentObject = Activator.CreateInstance(parentType); + } + catch(Exception) {} + if (parentObject != null) + { + list = pi.GetValue(parentObject, null) as IList; + al = CheckForArrayList(list); + } + } + } + if (al != null) + { + return al.elementType; + } + else if (element != null) + { + return element.GetType(); + } + return null; + } + + private static DataCollection CheckForArrayList(object l) + { + IList list = l as IList; + if (list == null) + return null; + if (list.GetType().FullName == "System.Collections.ArrayList+ReadOnlyArrayList") + { + FieldInfo fi = list.GetType().GetField("_list", BindingFlags.NonPublic | BindingFlags.Instance); + if (fi != null) + { + list = (IList) fi.GetValue(list); + } + } + return list as DataCollection; + } + #endregion + + + [DebuggerStepThrough] + public IEnumerator GetEnumerator() + { + return list.GetEnumerator(); + } + + [DebuggerStepThrough] + System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() + { + return list.GetEnumerator(); + } + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataSource/ExtendedPropertyDescriptor.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataSource/ExtendedPropertyDescriptor.cs new file mode 100644 index 0000000000..80d14fd170 --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataSource/ExtendedPropertyDescriptor.cs @@ -0,0 +1,95 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 20.05.2013 + * Time: 18:05 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using System.Collections; +using System.ComponentModel; +using System.Reflection; + +namespace ICSharpCode.Reporting.DataSource +{ + /// + /// Description of ExtendedPropertyDescriptor. + /// + internal class ExtendedPropertyDescriptor : PropertyDescriptor + { + + Type componentType; + Type propertyType; + PropertyInfo prop; + + public ExtendedPropertyDescriptor (string name, Type componentType, Type propertyType) + : base (name, null) + { + this.componentType = componentType; + this.propertyType = propertyType; + } + + + public override object GetValue (object component) + { + if (!componentType.IsAssignableFrom(component.GetType())){ + return null; + } + + if (prop == null) { + prop = componentType.GetProperty (Name); + } + + object obj = prop.GetValue (component, null); + if (obj != null) { + if (obj is IList){ + PropertyTypeHash.Instance[componentType, Name] = DataCollection.GetElementType((IList)obj, componentType, Name); + } + } + return obj; + } + + + public override void SetValue(object component, object value) + { + if (IsReadOnly){ + return; + } + if (prop == null){ + prop = componentType.GetProperty (Name); + } + prop.SetValue (component, value, null); + } + + public override void ResetValue(object component) + { + return; + } + + public override bool CanResetValue(object component) + { + return false; + } + + public override bool ShouldSerializeValue(object component) + { + return false; + } + + public override Type ComponentType + { + get { return componentType; } + } + + public override bool IsReadOnly + { + get { return false; } + } + + public override Type PropertyType + { + get { return propertyType; } + } + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataSource/ExtendedTypeDescriptor.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataSource/ExtendedTypeDescriptor.cs new file mode 100644 index 0000000000..5a19164ba3 --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataSource/ExtendedTypeDescriptor.cs @@ -0,0 +1,65 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 20.05.2013 + * Time: 17:59 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using System.Collections; +using System.ComponentModel; +using System.Reflection; + +namespace ICSharpCode.Reporting.DataSource +{ + /// + /// Description of ExtendedTypeDescriptor. + /// + internal class ExtendedTypeDescriptor + { + private static Hashtable collections = new Hashtable(); + + private static bool IsAllowedProperty(string name) + { + return true; // alle erlaubt + } + + + public static PropertyDescriptorCollection GetProperties(Type memberType) + { + if (memberType == null) + return PropertyDescriptorCollection.Empty; + + PropertyDescriptorCollection pdc; + if ((pdc = (PropertyDescriptorCollection) collections[memberType]) != null) + return (pdc); + + PropertyInfo[] allProps = memberType.GetProperties(); + int l = allProps.Length; + for (int i = 0; i < allProps.Length; i++) + { + PropertyInfo pi = allProps[i]; + if (!IsAllowedProperty(pi.Name)) + { + allProps[i] = null; + l--; + } + } + + PropertyDescriptor[] descriptors = new PropertyDescriptor[l]; + + int j = 0; + foreach(PropertyInfo pinfo in allProps) + { + if (pinfo != null) + { + descriptors[j++] = new ExtendedPropertyDescriptor(pinfo.Name, memberType, pinfo.PropertyType); + } + } + PropertyDescriptorCollection result = new PropertyDescriptorCollection(descriptors); + collections.Add(memberType, result); + return result; + } + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataSource/PropertyTypeHash.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataSource/PropertyTypeHash.cs new file mode 100644 index 0000000000..e0369d5293 --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataSource/PropertyTypeHash.cs @@ -0,0 +1,53 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 20.05.2013 + * Time: 18:02 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using System.Collections; + +namespace ICSharpCode.Reporting.DataSource +{ + /// + /// Description of PropertyTypeHash. + /// + internal class PropertyTypeHash + { + static PropertyTypeHash instance = new PropertyTypeHash(); + + static public PropertyTypeHash Instance + { + get { return instance; } + } + + Hashtable types = new Hashtable(); + + private static string MakeIndex(Type t, string name) + { + return t.FullName + '.' + name; + } + + public object this[Type type, string fieldName] + { + get + { + return types[MakeIndex(type, fieldName)]; + } + set + { + if (value == null) + return; + string key = MakeIndex(type, fieldName); + if (!types.Contains(key)) + types.Add(key, value); + } + } + + private PropertyTypeHash() + { + } + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/Data/IDataViewHandling.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/Data/IDataViewHandling.cs new file mode 100644 index 0000000000..3c2e3e2b3a --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/Data/IDataViewHandling.cs @@ -0,0 +1,49 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 21.05.2013 + * Time: 20:35 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using System.Collections; +using System.Collections.ObjectModel; + +using ICSharpCode.Reporting.BaseClasses; +using ICSharpCode.Reporting.DataManager.Listhandling; + +namespace ICSharpCode.Reporting.Interfaces.Data +{ + /// + /// Description of IDataViewHandling. + /// + public interface IDataViewHandling:IEnumerator{ + + void Sort (); + +// void Group(); + +// void Bind(); + +// void Fill (int position,ReportItemCollection collection); + + //rausnehmen +// void Fill (IDataItem item); + + IndexList IndexList {get;} + +// object CurrentFromPosition(int pos); + +// CurrentItemsCollection FillDataRow(); +// CurrentItemsCollection FillDataRow(int pos); + // + Collection AvailableFields {get;} + + int Count {get;} + +// int CurrentPosition {get;set;} + +// IExpressionEvaluatorFacade ExpressionEvaluator {get;} + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IPrintableObject.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IPrintableObject.cs index 01dd059b10..ffb288029e 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IPrintableObject.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IPrintableObject.cs @@ -23,12 +23,14 @@ namespace ICSharpCode.Reporting.Interfaces Color ForeColor {get;set;} Color BackColor {get;set;} Color FrameColor{get;set;} + bool CanGrow {get;set;} } public interface IPrintableObject:IReportObject { IExportColumn CreateExportColumn(); IMeasurementStrategy MeasurementStrategy (); + } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseSection.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseSection.cs index 51f35363ec..cba4d2445f 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseSection.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseSection.cs @@ -31,7 +31,5 @@ public class BaseSection:ReportContainer,IReportContainer } #endregion - - } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseTextItem.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseTextItem.cs index e64e191835..a885d4a5ae 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseTextItem.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseTextItem.cs @@ -23,7 +23,6 @@ namespace ICSharpCode.Reporting.Items { Font Font {get;set;} string Text {get;set;} - bool CanGrow {get;set;} } public class BaseTextItem:PrintableItem,ITextItem @@ -38,8 +37,6 @@ namespace ICSharpCode.Reporting.Items public string Text {get;set;} - public bool CanGrow {get;set;} - public override IExportColumn CreateExportColumn() { var ex = new ExportText(); @@ -51,6 +48,7 @@ namespace ICSharpCode.Reporting.Items ex.Size = Size; ex.Font = Font; ex.Text = Text; + ex.CanGrow = CanGrow; return ex; } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/PrintableItem.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/PrintableItem.cs index 093182ad62..baa295bd4b 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/PrintableItem.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/PrintableItem.cs @@ -39,5 +39,7 @@ namespace ICSharpCode.Reporting.Items public Color FrameColor {get;set;} + public bool CanGrow {get;set;} + } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportContainer.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportContainer.cs index 2c6d5afce5..298483d479 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportContainer.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportContainer.cs @@ -39,7 +39,8 @@ namespace ICSharpCode.Reporting.Items return new ExportContainer(){ Name = this.Name, Size = this.Size, - Location = this.Location + Location = this.Location, + CanGrow = this.CanGrow, }; } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportColumn.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportColumn.cs index 209d22b815..0349793fe5 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportColumn.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportColumn.cs @@ -43,5 +43,7 @@ namespace ICSharpCode.Reporting.PageBuilder.ExportColumns public IExportColumn Parent {get;set;} + public bool CanGrow {get;set;} + } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/ICSharpCode.Reporting.Test.csproj b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/ICSharpCode.Reporting.Test.csproj index f01783fab3..05ee4ca4ff 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/ICSharpCode.Reporting.Test.csproj +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/ICSharpCode.Reporting.Test.csproj @@ -58,6 +58,8 @@ + + @@ -75,6 +77,7 @@ + diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/DataSource/CollectionHandlingFixture.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/DataSource/CollectionHandlingFixture.cs new file mode 100644 index 0000000000..6f656ccbad --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/DataSource/CollectionHandlingFixture.cs @@ -0,0 +1,57 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 20.05.2013 + * Time: 18:15 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using System.Collections.Generic; +using ICSharpCode.Reporting.DataManager.Listhandling; +using ICSharpCode.Reporting.DataSource; +using ICSharpCode.Reporting.Items; +using NUnit.Framework; + +namespace ICSharpCode.Reporting.Test.DataSource +{ + [TestFixture] + public class CollectionHandlingFixture + { + + private ContributorCollection list; + + [Test] + public void CanInitDataCollection() + { + var collectionSource = new CollectionSource (list,new ReportSettings()); + Assert.That(collectionSource,Is.Not.Null); + } + + + [Test] + public void CollectionCountIsEqualToListCount() { + var collectionSource = new CollectionSource (list,new ReportSettings()); + Assert.That(collectionSource.Count,Is.EqualTo(list.Count)); + } + + + [Test] + public void AvailableFieldsEqualContibutorsPropertyCount() { + var collectionSource = new CollectionSource (list,new ReportSettings()); + Assert.That(collectionSource.AvailableFields.Count,Is.EqualTo(7)); + } + + + +//http://stackoverflow.com/questions/5378293/simplest-way-to-filter-generic-list +//http://stackoverflow.com/questions/5378293/simplest-way-to-filter-generic-list +//http://netmatze.wordpress.com/2012/06/21/implementing-a-generic-iequalitycomparer-and-icomparer-class/ +// http://blog.velir.com/index.php/2011/02/17/ilistt-sorting-a-better-way/ + [SetUp] + public void CreateList() { + var contributorList = new ContributorsList(); + list = contributorList.ContributorCollection; + } + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/DataSource/ContributorsList.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/DataSource/ContributorsList.cs new file mode 100644 index 0000000000..365534fb6e --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/DataSource/ContributorsList.cs @@ -0,0 +1,132 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 20.05.2013 + * Time: 18:09 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using System.Collections.Generic; + +namespace ICSharpCode.Reporting.Test.DataSource +{ + /// + /// Description of ContributorsList. + /// + public class ContributorsList + { + ContributorCollection contributorCollection; + + public ContributorsList() + { + this.contributorCollection = CreateContributorsList(); + } + + public ContributorCollection ContributorCollection { + get { return contributorCollection; } + } + + private ContributorCollection CreateContributorsList () { + + DateTime d1 = new DateTime(2000,11,11); + DateTime d2 = new DateTime(2000,01,01); + DateTime d3 = new DateTime(2000,12,24); + + ContributorCollection list = new ContributorCollection(); + + list.Add(new Contributor("Christoph","Wille","Senior Project Wrangler",17,new DateTime(1960,12,8),"F")); + list.Add(new Contributor("Bernhard","Spuida","Senior Project Wrangler",25,new DateTime(1962,2,24),"D")); + + + list.Add(new Contributor("Daniel","Grunwald","Technical Lead",12,d1,"F")); + + list.Add(new Contributor("Matt","Ward","NUnit",7,d1,"F")); + list.Add(new Contributor("David","Srbecky","Debugger",1,d1,"C")); + list.Add(new Contributor("Peter","Forstmeier","SharpDevelop.Reports",7,d1,"D")); + + list.Add(new Contributor("Alexander","Zeitler","SharpDevelop.Reports",3,d2,"D")); + list.Add(new Contributor("Markus","Palme","Prg.",6,d2,"R")); + list.Add(new Contributor("Georg","Brandl","Prg.",5,d2,"R")); + list.Add(new Contributor("Roman","Taranchenko","",2,d2,"U")); + list.Add(new Contributor("Denis","Erchoff","",13,d2,"U")); + + list.Add(new Contributor("Ifko","Kovacka","",31,d3,"A")); + list.Add(new Contributor("Nathan","Allen","",5,d3,"A")); + list.Add(new Contributor("Dickon","Field","DBTools",10,d3,"U")); + + list.Add(new Contributor("Troy","Simpson","Prg.",9,d3,"C")); + list.Add(new Contributor("David","Alpert","Prg.",6,d3,"C")); + return list; + } + } + + public class ContributorCollection: List + { + } + + public class Contributor { + string last; + string first; + string job; + + int randomInt; + DateTime randomDate; + + public Contributor(string last, string first,string job,int randomInt,DateTime randomDate,string groupItem) + { + this.last = last; + this.first = first; + this.job = job; + this.randomDate = randomDate; + this.randomInt = randomInt; + this.GroupItem = groupItem; + } + + + public string Last { + get { + return last; + } + + } + + public string First { + get { + return first; + } + + } + + public string Job { + get { + return job; + } + } + + public int RandomInt { + get { return randomInt; } + } + + + public DateTime RandomDate { + get { return randomDate; } + } + + public string GroupItem {get; set;} + + public MyDummyClass DummyClass {get;set;} + + } + + public class MyDummyClass + { + public MyDummyClass() + { + + } + + public string DummyString {get;set;} + public int DummyInt {get;set;} + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/ContainerArrangeStrategyFixture.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/ContainerArrangeStrategyFixture.cs index 0b3e01fd97..6d850c6b2b 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/ContainerArrangeStrategyFixture.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/ContainerArrangeStrategyFixture.cs @@ -108,6 +108,7 @@ namespace ICSharpCode.Reporting.Test.PageBuilder Location = new Point(80,10), Size = new Size (20,70), DesiredSize = new Size (20,70), + CanGrow = true, Parent = container }; return secondItem; diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/SortColumn.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/SortColumn.cs index 80bd3d4814..7d7175d4a4 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/SortColumn.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/SortColumn.cs @@ -35,25 +35,16 @@ namespace ICSharpCode.Reports.Core public SortColumn(string columnName, ListSortDirection sortDirection, Type type,bool caseSensitive ):base (columnName,type) { - this.caseSensitive = caseSensitive; - this.sortDirection = sortDirection; + this.CaseSensitive = caseSensitive; + this.SortDirection = sortDirection; } #region properties - public ListSortDirection SortDirection { - get { - return sortDirection; - } - set{ - this.sortDirection = value; - } - } - public bool CaseSensitive { - get { - return caseSensitive; - } - } + public ListSortDirection SortDirection {get;set;} + + public bool CaseSensitive {get;set;} + #endregion } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/DataManager/ListStrategy/GroupListFixture.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/DataManager/ListStrategy/GroupListFixture.cs index 8521317946..d33dc22fb5 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/DataManager/ListStrategy/GroupListFixture.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Test/ICSharpCode.Reports.Core.Test/DataManager/ListStrategy/GroupListFixture.cs @@ -149,7 +149,7 @@ namespace ICSharpCode.Reports.Core.Test.DataManager.ListStrategy var itemDummy = (BaseDataItem)searchCol[0]; var itemLast = (BaseDataItem)searchCol[1]; var itemGroup = (BaseDataItem)searchCol[2]; -// Console.WriteLine ("\t{0} - {1} - {2}",itemDummy.DBValue,itemLast.DBValue,itemGroup.DBValue); + Console.WriteLine ("\t{0} - {1} - {2}",itemDummy.DBValue,itemLast.DBValue,itemGroup.DBValue); Assert.That(itemDummy.DBValue,Is.Not.Empty); Assert.That(itemLast.DBValue,Is.Not.Empty); Assert.That(itemGroup.DBValue,Is.Not.Empty); From 0808f8cb40c15c6a8b4f9f2f79fb7d385d018c3e Mon Sep 17 00:00:00 2001 From: Peter Forstmeier Date: Thu, 23 May 2013 20:39:22 +0200 Subject: [PATCH 28/33] DataSource, Sort by One Column --- .../ICSharpCode.Reporting.csproj | 2 + .../Src/BaseClasses/AbstractColumn.cs | 2 +- .../ICSharpCode.Reporting/Src/Collections.cs | 16 +- .../Listhandling/CollectionSource.cs | 156 +++++++++++++++++- .../Src/DataSource/Comparer/SortComparer.cs | 103 ++++++++++++ .../Src/DataSource/Comparer/SortExtension.cs | 32 ++++ .../Src/Interfaces/Data/IDataViewHandling.cs | 4 +- .../Src/Items/ReportSettings.cs | 5 +- .../DataSource/CollectionHandlingFixture.cs | 43 ++++- .../src/DataSource/ContributorsList.cs | 43 +---- 10 files changed, 346 insertions(+), 60 deletions(-) create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataSource/Comparer/SortComparer.cs create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataSource/Comparer/SortExtension.cs diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj index ae7d1cb23e..286a7a1951 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj @@ -81,6 +81,8 @@ + + diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/AbstractColumn.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/AbstractColumn.cs index 9702ffdf86..d737efca99 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/AbstractColumn.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/AbstractColumn.cs @@ -31,7 +31,7 @@ namespace ICSharpCode.Reporting.BaseClasses // } public AbstractColumn(string columnName, Type dataType){ - this.columnName = columnName; + this.ColumnName = columnName; this.dataType = dataType; } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Collections.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Collections.cs index 42ea5cecff..b0ac9014ae 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Collections.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Collections.cs @@ -62,14 +62,14 @@ namespace ICSharpCode.Reporting { } -// public new AbstractColumn Find (string columnName) -// { -// if (String.IsNullOrEmpty(columnName)) { -// throw new ArgumentNullException("columnName"); -// } -// -// return this.FirstOrDefault(x => 0 == String.Compare(x.ColumnName,columnName,true,CultureInfo.InvariantCulture)); -// } + public new AbstractColumn Find (string columnName) + { + if (String.IsNullOrEmpty(columnName)) { + throw new ArgumentNullException("columnName"); + } + + return this.FirstOrDefault(x => 0 == String.Compare(x.ColumnName,columnName,true,CultureInfo.InvariantCulture)); + } public void AddRange (IEnumerable items) diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataManager/Listhandling/CollectionSource.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataManager/Listhandling/CollectionSource.cs index afbd22e3e6..22a3ed0254 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataManager/Listhandling/CollectionSource.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataManager/Listhandling/CollectionSource.cs @@ -8,11 +8,15 @@ */ using System; using System.Collections; +using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; +using System.Globalization; +using System.Linq; using ICSharpCode.Reporting.BaseClasses; using ICSharpCode.Reporting.DataSource; +using ICSharpCode.Reporting.DataSource.Comparer; using ICSharpCode.Reporting.Interfaces.Data; using ICSharpCode.Reporting.Items; @@ -27,14 +31,12 @@ namespace ICSharpCode.Reporting.DataManager.Listhandling private PropertyDescriptorCollection listProperties; private DataCollection baseList; private ReportSettings reportSettings; - + private object current; public CollectionSource(IList list,ReportSettings reportSettings) { if (list.Count > 0) { -// firstItem = list[0]; - var itemType = list[0].GetType(); this.baseList = new DataCollection (itemType); this.baseList.AddRange(list); @@ -54,11 +56,11 @@ namespace ICSharpCode.Reporting.DataManager.Listhandling public Collection AvailableFields { get { // base.AvailableFields.Clear(); - var av = new Collection(); + var availableFields = new Collection(); foreach (PropertyDescriptor p in this.listProperties){ - av.Add (new AbstractColumn(p.Name,p.PropertyType)); + availableFields.Add (new AbstractColumn(p.Name,p.PropertyType)); } - return av; + return availableFields; } } @@ -68,11 +70,24 @@ namespace ICSharpCode.Reporting.DataManager.Listhandling } } + public void Bind() + { + Sort(); + Reset(); + } + public void Sort() { - throw new NotImplementedException(); + if ((this.reportSettings.SortColumnsCollection != null)) { + if (this.reportSettings.SortColumnsCollection.Count > 0) { + IndexList = this.BuildSortIndex (reportSettings.SortColumnsCollection); + } else { + IndexList = this.UnsortedIndexList(reportSettings.SortColumnsCollection); + } + } } + public bool MoveNext() { throw new NotImplementedException(); @@ -80,10 +95,135 @@ namespace ICSharpCode.Reporting.DataManager.Listhandling public void Reset() { - throw new NotImplementedException(); + this.CurrentPosition = 0; + this.IndexList.CurrentPosition = -1; } public IndexList IndexList {get; private set;} + + IndexList BuildSortIndex(SortColumnCollection sortColumnsCollection) + { + var indexList = new IndexList(); + PropertyDescriptor[] sortProperties = BuildSortProperties (sortColumnsCollection); + for (int rowIndex = 0; rowIndex < this.baseList.Count; rowIndex++){ + object rowItem = this.baseList[rowIndex]; + object[] values = new object[sortColumnsCollection.Count]; + + // Hier bereits Wertabruf um dies nicht während des Sortierens tun zu müssen. + for (int criteriaIndex = 0; criteriaIndex < sortProperties.Length; criteriaIndex++){ + object value = sortProperties[criteriaIndex].GetValue(rowItem); + // Hier auf Verträglichkeit testen um Vergleiche bei Sortierung zu vereinfachen. + // Muss IComparable und gleicher Typ sein. + + if (value != null && value != DBNull.Value) + { + if (!(value is IComparable)){ + throw new InvalidOperationException("ReportDataSource:BuildSortArray - > This type doesn't support IComparable." + value.ToString()); + } + + values[criteriaIndex] = value; + } + } + indexList.Add(new SortComparer(sortColumnsCollection, rowIndex, values)); + } + + if (indexList[0].ObjectArray.GetLength(0) == 1) { + + List sortedList = GenericSorter (indexList); + indexList.Clear(); + indexList.AddRange(sortedList); + } + else { + indexList.Sort(); + } + return indexList; + } + + #region Sorting delegates + + static List GenericSorter (List list) + { + + List sortedList = null; + ListSortDirection sortDirection = GetSortDirection(list); + + if (sortDirection == ListSortDirection.Ascending) { + sortedList = list.AsQueryable().AscendingOrder().ToList(); + } else { + + sortedList = list.AsQueryable().DescendingOrder().ToList(); + } + return sortedList; + } + + static ListSortDirection GetSortDirection(List list) + { + BaseComparer bc = list[0]; + SortColumn sortColumn = bc.ColumnCollection[0] as SortColumn; + ListSortDirection sd = sortColumn.SortDirection; + return sd; + } + + #endregion + private PropertyDescriptor[] BuildSortProperties (SortColumnCollection sortColumnCollection) + { + PropertyDescriptor[] sortProperties = new PropertyDescriptor[sortColumnCollection.Count]; + PropertyDescriptorCollection descriptorCollection = this.baseList.GetItemProperties(null); + + for (int criteriaIndex = 0; criteriaIndex < sortColumnCollection.Count; criteriaIndex++){ + PropertyDescriptor descriptor = descriptorCollection.Find (sortColumnCollection[criteriaIndex].ColumnName,true); + + if (descriptor == null){ + throw new InvalidOperationException(String.Format(CultureInfo.CurrentCulture, + "Die Liste enthält keine Spalte [{0}].", + sortColumnCollection[criteriaIndex].ColumnName)); + } + sortProperties[criteriaIndex] = descriptor; + } + return sortProperties; + } + + + IndexList UnsortedIndexList(SortColumnCollection sortColumnsCollection) + { + IndexList arrayList = new IndexList(); + for (int rowIndex = 0; rowIndex < this.baseList.Count; rowIndex++){ + object[] values = new object[1]; + arrayList.Add(new SortComparer(sortColumnsCollection, rowIndex, values)); + } + return arrayList; + } + + + public int CurrentPosition { + + get { + return IndexList.CurrentPosition; + } + set { + if ((value > -1)|| (value > this.IndexList.Count)){ + this.IndexList.CurrentPosition = value; + } +// var a = this.baseList[((BaseComparer)IndexList[value])]; + + BaseComparer bc = GetComparer(value); +// var bc = (BaseComparer)IndexList[value]; +// var i = bc.ListIndex; + + var myCurrent = baseList[bc.ListIndex]; + current = baseList[bc.ListIndex]; + +// current = this.baseList[((BaseComparer)IndexList[value]).ListIndex]; + } + } + + + BaseComparer GetComparer(int value) + { + var bc = (BaseComparer)IndexList[value]; +// var i = bc.ListIndex; + return bc; + } } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataSource/Comparer/SortComparer.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataSource/Comparer/SortComparer.cs new file mode 100644 index 0000000000..04f525b17f --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataSource/Comparer/SortComparer.cs @@ -0,0 +1,103 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 22.05.2013 + * Time: 20:06 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using System.ComponentModel; +using System.Globalization; + +using ICSharpCode.Reporting.BaseClasses; + +namespace ICSharpCode.Reporting.DataSource.Comparer +{ + /// + /// Description of SortComparer. + /// + public class SortComparer : BaseComparer { + + public SortComparer(ColumnCollection owner, int listIndex, object[] values):base(owner,listIndex,values) + { + } + + + internal int CompareTo(SortComparer value) + { + // we shouldn't get to this point + if (value == null) + throw new ArgumentNullException("value"); + + if (value.ObjectArray.Length != base.ObjectArray.Length) + throw new InvalidOperationException(); + + int compare = 0; + + for (int index = 0; index < base.ObjectArray.Length; index++) + { + object leftValue = base.ObjectArray[index]; + + object rightValue = value.ObjectArray[index]; + + // Indizes sind hier deckungsgleich + + SortColumn sortColumn = (SortColumn)base.ColumnCollection[index]; + + bool descending = (sortColumn.SortDirection == ListSortDirection.Descending); + + // null means equl + if (leftValue == null || leftValue == System.DBNull.Value) + { + if (rightValue != null && rightValue != System.DBNull.Value) + { + return (descending) ? 1 : -1; + } + + // Beide Null + continue; + } + + if (rightValue == null || rightValue == System.DBNull.Value) + { + return (descending) ? -1 : 1; + } + + + if (leftValue.GetType() != rightValue.GetType()){ + string s = String.Format(CultureInfo.CurrentCulture, + "{0} {1} {2}",this.GetType().ToString(), + leftValue.GetType().ToString(), + rightValue.GetType().ToString()); + + throw new ArgumentException(s); + } + if (leftValue.GetType() == typeof(string)) + { + compare = String.Compare((string)leftValue, (string)rightValue, + !sortColumn.CaseSensitive, CultureInfo.CurrentCulture); + } + else + { + compare = ((IComparable)leftValue).CompareTo(rightValue); + } + + // Sind ungleich, tauschen je nach Richtung + if (compare != 0) + { + return (descending) ? -compare : compare; + } + } + + // Gleich Werte, dann Index bercksichtigen + return this.ListIndex.CompareTo(value.ListIndex); + } + public override int CompareTo(object obj) { + base.CompareTo(obj); + return this.CompareTo((SortComparer)obj); + } + + + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataSource/Comparer/SortExtension.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataSource/Comparer/SortExtension.cs new file mode 100644 index 0000000000..831c2dcdd1 --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataSource/Comparer/SortExtension.cs @@ -0,0 +1,32 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 23.05.2013 + * Time: 19:51 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using System.Linq; +namespace ICSharpCode.Reporting.DataSource.Comparer +{ + /// + /// Description of SortExtension. + /// + internal static class SortExtension + { + + public static IOrderedQueryable AscendingOrder(this IQueryable source ) + { + + return source.OrderBy(x => x.ObjectArray[0]); + } + + public static IOrderedQueryable DescendingOrder(this IQueryable source ) + { + + return source.OrderByDescending(x => x.ObjectArray[0]); + } + } + +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/Data/IDataViewHandling.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/Data/IDataViewHandling.cs index 3c2e3e2b3a..6d9243728c 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/Data/IDataViewHandling.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/Data/IDataViewHandling.cs @@ -24,7 +24,7 @@ namespace ICSharpCode.Reporting.Interfaces.Data // void Group(); -// void Bind(); + void Bind(); // void Fill (int position,ReportItemCollection collection); @@ -42,7 +42,7 @@ namespace ICSharpCode.Reporting.Interfaces.Data int Count {get;} -// int CurrentPosition {get;set;} + int CurrentPosition {get;set;} // IExpressionEvaluatorFacade ExpressionEvaluator {get;} } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportSettings.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportSettings.cs index 90fe57248b..86b6b1c21d 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportSettings.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportSettings.cs @@ -50,7 +50,7 @@ namespace ICSharpCode.Reporting.Items // // this.availableFields = new AvailableFieldsCollection(); // this.groupingsCollection = new GroupColumnCollection(); -// this.sortingCollection = new SortColumnCollection(); + this.SortColumnsCollection = new SortColumnCollection(); // this.sqlParameters = new SqlParameterCollection(); // this.parameterCollection = new ParameterCollection(); // this.NoDataMessage = "No Data for this Report"; @@ -135,5 +135,8 @@ namespace ICSharpCode.Reporting.Items // [Browsable(true), Category("Base Settings")] public GlobalEnums.ReportType ReportType {get;set;} + + public SortColumnCollection SortColumnsCollection {get;private set;} + } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/DataSource/CollectionHandlingFixture.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/DataSource/CollectionHandlingFixture.cs index 6f656ccbad..8dbb167a0d 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/DataSource/CollectionHandlingFixture.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/DataSource/CollectionHandlingFixture.cs @@ -8,6 +8,9 @@ */ using System; using System.Collections.Generic; +using System.ComponentModel; + +using ICSharpCode.Reporting.BaseClasses; using ICSharpCode.Reporting.DataManager.Listhandling; using ICSharpCode.Reporting.DataSource; using ICSharpCode.Reporting.Items; @@ -39,15 +42,45 @@ namespace ICSharpCode.Reporting.Test.DataSource [Test] public void AvailableFieldsEqualContibutorsPropertyCount() { var collectionSource = new CollectionSource (list,new ReportSettings()); - Assert.That(collectionSource.AvailableFields.Count,Is.EqualTo(7)); + Assert.That(collectionSource.AvailableFields.Count,Is.EqualTo(6)); } + [Test] + public void CreateUnsortedIndex() { + var collectionSource = new CollectionSource (list,new ReportSettings()); + collectionSource.Bind(); + Assert.That(collectionSource.IndexList.Count,Is.EqualTo(collectionSource.Count)); + Assert.That(collectionSource.IndexList.CurrentPosition,Is.EqualTo(-1)); + } + + + [Test] + [ExpectedException(typeof(InvalidOperationException))] + public void SortColumnNotExist() { + var rs = new ReportSettings(); + rs.SortColumnsCollection.Add(new SortColumn("aa",ListSortDirection.Ascending)); + var collectionSource = new CollectionSource (list,rs); + collectionSource.Bind(); + Assert.That(collectionSource.IndexList,Is.Not.Null); + Assert.That(collectionSource.IndexList.Count,Is.EqualTo(0)); + } + + + [Test] + public void SortOneColumnAscending() { + var rs = new ReportSettings(); + rs.SortColumnsCollection.Add(new SortColumn("Lastname",ListSortDirection.Ascending)); + var collectionSource = new CollectionSource (list,rs); + collectionSource.Bind(); + string compare = collectionSource.IndexList[0].ObjectArray[0].ToString(); + foreach (var element in collectionSource.IndexList) { + Console.WriteLine(element.ObjectArray[0].ToString()); + Assert.That(compare,Is.LessThanOrEqualTo(element.ObjectArray[0].ToString())); + compare = element.ObjectArray[0].ToString(); + } + } -//http://stackoverflow.com/questions/5378293/simplest-way-to-filter-generic-list -//http://stackoverflow.com/questions/5378293/simplest-way-to-filter-generic-list -//http://netmatze.wordpress.com/2012/06/21/implementing-a-generic-iequalitycomparer-and-icomparer-class/ -// http://blog.velir.com/index.php/2011/02/17/ilistt-sorting-a-better-way/ [SetUp] public void CreateList() { var contributorList = new ContributorsList(); diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/DataSource/ContributorsList.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/DataSource/ContributorsList.cs index 365534fb6e..6ffb0f9ac7 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/DataSource/ContributorsList.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/DataSource/ContributorsList.cs @@ -66,43 +66,29 @@ namespace ICSharpCode.Reporting.Test.DataSource } public class Contributor { - string last; - string first; - string job; int randomInt; DateTime randomDate; - public Contributor(string last, string first,string job,int randomInt,DateTime randomDate,string groupItem) + public Contributor(string lastname, string firstname,string job,int randomInt,DateTime randomDate,string groupItem) { - this.last = last; - this.first = first; - this.job = job; + this.Lastname = lastname; + this.Firstname = firstname; + this.Job = job; this.randomDate = randomDate; this.randomInt = randomInt; this.GroupItem = groupItem; } - public string Last { - get { - return last; - } + public string Lastname {get;private set;} - } - public string First { - get { - return first; - } + public string Firstname {get;private set;} - } - public string Job { - get { - return job; - } - } + public string Job {get; private set;} + public int RandomInt { get { return randomInt; } @@ -115,18 +101,5 @@ namespace ICSharpCode.Reporting.Test.DataSource public string GroupItem {get; set;} - public MyDummyClass DummyClass {get;set;} - - } - - public class MyDummyClass - { - public MyDummyClass() - { - - } - - public string DummyString {get;set;} - public int DummyInt {get;set;} } } From 6307d68d90f71fe0746c06b5c827b7c957fa4ffd Mon Sep 17 00:00:00 2001 From: Peter Forstmeier Date: Sat, 25 May 2013 20:21:08 +0200 Subject: [PATCH 29/33] Grouping --- SharpDevelop.Tests.sln | 1171 ++++++++--------- .../SourceAnalysis/SourceAnalysis.csproj | 3 +- .../FSharpBinding/FSharpBinding.csproj | 4 +- .../WixBinding/Project/WixBinding.csproj | 14 +- .../ILSpyAddIn/ILSpyAddIn.csproj | 9 +- .../IconEditor/IconEditor.csproj | 8 +- .../AddInManager/Project/AddInManager.csproj | 12 +- .../Project/FiletypeRegisterer.csproj | 5 +- .../SharpDevelop.EnvDTE.vbproj | 8 +- .../ICSharpCode.Reporting.csproj | 2 + .../Src/Arrange/ArrangeStrategy.cs | 9 +- .../Src/BaseClasses/GroupColumn.cs | 38 + .../ICSharpCode.Reporting/Src/Collections.cs | 25 +- .../Listhandling/CollectionSource.cs | 141 +- .../Src/DataSource/Comparer/GroupComparer.cs | 27 + .../Src/Exporter/Visitors/WpfVisitor.cs | 2 +- .../Src/Interfaces/Data/IDataViewHandling.cs | 2 +- .../Src/Items/ReportSettings.cs | 2 + .../DataSource/CollectionHandlingFixture.cs | 39 +- .../src/DataSource/ContributorsList.cs | 19 +- .../ICSharpCode.Reports.Addin.csproj | 9 +- .../Project/SearchAndReplace.csproj | 12 +- .../SubversionAddIn/SubversionAddIn.csproj | 4 +- .../AvalonDock/AvalonDock/AvalonDock.csproj | 2 +- .../ICSharpCode.Core.WinForms.csproj | 32 +- 25 files changed, 909 insertions(+), 690 deletions(-) create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/GroupColumn.cs create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataSource/Comparer/GroupComparer.cs diff --git a/SharpDevelop.Tests.sln b/SharpDevelop.Tests.sln index 961f092f7c..3e53422fd3 100644 --- a/SharpDevelop.Tests.sln +++ b/SharpDevelop.Tests.sln @@ -1,16 +1,13 @@  -Microsoft Visual Studio Solution File, Format Version 11.00 -# Visual Studio 2010 -# SharpDevelop 4.3 +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2012 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Main", "Main", "{256F5C28-532C-44C0-8AB8-D8EC5E492E01}" - ProjectSection(SolutionItems) = postProject - EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop.BuildWorker35", "src\Main\ICSharpCode.SharpDevelop.BuildWorker35\ICSharpCode.SharpDevelop.BuildWorker35.csproj", "{B5F54272-49F0-40DB-845A-8D837875D3BA}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop.BuildWorker", "src\Main\ICSharpCode.SharpDevelop.BuildWorker\ICSharpCode.SharpDevelop.BuildWorker.csproj", "{C3CBC8E3-81D8-4C5B-9941-DCCD12D50B1F}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop.Tests", "src\Main\Base\Test\ICSharpCode.SharpDevelop.Tests.csproj", "{4980B743-B32F-4aba-AABD-45E2CAD3568D}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop.Tests", "src\Main\Base\Test\ICSharpCode.SharpDevelop.Tests.csproj", "{4980B743-B32F-4ABA-AABD-45E2CAD3568D}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Core.Tests", "src\Main\Core\Test\ICSharpCode.Core.Tests.csproj", "{AD6FAA08-D6F5-4DBA-AF85-F4DA9F40C3B5}" EndProject @@ -27,15 +24,13 @@ EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SharpDevelop", "src\Main\SharpDevelop\SharpDevelop.csproj", "{1152B71B-3C05-4598-B20D-823B5D40559E}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Libraries", "Libraries", "{2A232EF1-EB95-41C6-B63A-C106E0C95D3C}" - ProjectSection(SolutionItems) = postProject - EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mono.Cecil", "src\Libraries\cecil\Mono.Cecil.csproj", "{D68133BD-1E63-496E-9EDE-4FBDBF77B486}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.AvalonEdit.Tests", "src\Libraries\AvalonEdit\ICSharpCode.AvalonEdit.Tests\ICSharpCode.AvalonEdit.Tests.csproj", "{6222A3A1-83CE-47A3-A4E4-A018F82D44D8}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "NRefactory", "NRefactory", "{E5A0F4D8-37FD-4A30-BEB0-4409DC4E0865}" - ProjectSection(SolutionItems) = postProject + ProjectSection(SolutionItems) = preProject TODOnewNR.txt = TODOnewNR.txt EndProjectSection EndProject @@ -58,20 +53,14 @@ EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Decompiler", "src\Libraries\ICSharpCode.Decompiler\ICSharpCode.Decompiler.csproj", "{984CC812-9470-4A13-AFF9-CC44068D666C}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AddIns", "AddIns", "{39327899-ED91-4F7F-988C-4FE4E17C014D}" - ProjectSection(SolutionItems) = postProject - EndProjectSection EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Version Control", "Version Control", "{F208FF4F-E5D8-41D5-A7C7-B463976F156E}" - ProjectSection(SolutionItems) = postProject - EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GitAddIn", "src\AddIns\VersionControl\GitAddIn\GitAddIn.csproj", "{83F15BA7-8478-4664-81BB-A82F146D88B3}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SubversionAddIn", "src\AddIns\VersionControl\SubversionAddIn\SubversionAddIn.csproj", "{17F4D7E0-6933-4C2E-8714-FD7E98D625D5}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Language Bindings", "Language Bindings", "{E0646C25-36F2-4524-969F-FA621353AB94}" - ProjectSection(SolutionItems) = postProject - EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CSharpBinding", "src\AddIns\BackendBindings\CSharpBinding\Project\CSharpBinding.csproj", "{1F1AC7CD-D154-45BB-8EAF-804CA8055F5A}" EndProject @@ -87,7 +76,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AspNet.Mvc.Tests", "src\Add EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AspNet.Mvc", "src\AddIns\BackendBindings\AspNet.Mvc\Project\AspNet.Mvc.csproj", "{D781721F-C2A7-4E95-B76F-247170AC3B13}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WixBinding", "src\AddIns\BackendBindings\WixBinding\Project\WixBinding.csproj", "{e1b288a2-08ee-4318-8bbb-8ab72c69e33e}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WixBinding", "src\AddIns\BackendBindings\WixBinding\Project\WixBinding.csproj", "{E1B288A2-08EE-4318-8BBB-8AB72C69E33E}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WixBinding.Tests", "src\AddIns\BackendBindings\WixBinding\Test\WixBinding.Tests.csproj", "{388E7B64-0393-4EB4-A3E3-5C474F141853}" EndProject @@ -96,8 +85,6 @@ EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Scripting.Tests", "src\AddIns\BackendBindings\Scripting\Test\ICSharpCode.Scripting.Tests.csproj", "{85C09AD8-183B-403A-869A-7226646218A9}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Misc", "Misc", "{F3662720-9EA2-4591-BBC6-97361DCE50A9}" - ProjectSection(SolutionItems) = postProject - EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HelpViewer", "src\AddIns\Misc\HelpViewer\HelpViewer.csproj", "{80F76D10-0B44-4D55-B4BD-DAEB5464090C}" EndProject @@ -114,8 +101,6 @@ EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RegExpTk", "src\AddIns\Misc\RegExpTk\Project\RegExpTk.csproj", "{64A3E5E6-90BF-47F6-94DF-68C94B62C817}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "UsageDataCollector", "UsageDataCollector", "{DEFC8584-BEC3-4921-BD0F-40482E450B7B}" - ProjectSection(SolutionItems) = postProject - EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UsageDataCollector", "src\AddIns\Misc\UsageDataCollector\UsageDataCollector\UsageDataCollector.csproj", "{6B1CFE35-DA17-4DEB-9C6E-227E5E251DA0}" EndProject @@ -128,8 +113,6 @@ EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TextTemplating", "src\AddIns\Misc\TextTemplating\Project\TextTemplating.csproj", "{B5D8C3E6-42EC-4D4B-AD05-3644B32563EF}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "PackageManagement", "PackageManagement", "{485A4CCF-55CF-49F4-BD6D-A22B788C67DA}" - ProjectSection(SolutionItems) = postProject - EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PackageManagement", "src\AddIns\Misc\PackageManagement\Project\PackageManagement.csproj", "{AE4AB0FA-6087-4480-AF37-0FA1452B3DA1}" EndProject @@ -137,7 +120,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PackageManagement.Tests", " EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PackageManagement.PowerShell", "src\AddIns\Misc\PackageManagement\PowerShell\Project\PackageManagement.PowerShell.csproj", "{A406803B-C584-43A3-BCEE-A0BB3132CB5F}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "SharpDevelop.EnvDTE", "src\AddIns\Misc\PackageManagement\SharpDevelop.EnvDTE\SharpDevelop.EnvDTE.vbproj", "C3F15E22-5793-4129-AF8C-6229112B86D2" +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "SharpDevelop.EnvDTE", "src\AddIns\Misc\PackageManagement\SharpDevelop.EnvDTE\SharpDevelop.EnvDTE.vbproj", "{1B753D7F-7C77-4D5E-B928-02982690879C}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Reports.Core", "src\AddIns\Misc\Reports\ICSharpCode.Reports.Core\ICSharpCode.Reports.Core.csproj", "{4B2239FF-8FD6-431D-9D22-1B8049BA6917}" EndProject @@ -152,8 +135,6 @@ EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Reporting.Test", "src\AddIns\Misc\Reporting\ICSharpCode.Reporting\Test\ICSharpCode.Reporting.Test\ICSharpCode.Reporting.Test.csproj", "{97CA9CE5-B966-48DF-BB59-F00FFC534B1F}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Display Bindings", "Display Bindings", "{11BF9245-88A3-4A0A-9A8A-EC9D98036B0F}" - ProjectSection(SolutionItems) = postProject - EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AvalonEdit.AddIn", "src\AddIns\DisplayBindings\AvalonEdit.AddIn\AvalonEdit.AddIn.csproj", "{0162E499-42D0-409B-AA25-EED21F75336B}" EndProject @@ -168,8 +149,6 @@ EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ILSpyAddIn", "src\AddIns\DisplayBindings\ILSpyAddIn\ILSpyAddIn.csproj", "{8AA421C8-D7AF-4957-9F43-5135328ACB24}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Data", "Data", "{0F5192F2-0744-4BA9-A074-6BE82D111B8D}" - ProjectSection(SolutionItems) = postProject - EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Data.Addin", "src\AddIns\DisplayBindings\Data\ICSharpCode.Data.Addin\ICSharpCode.Data.Addin.csproj", "{A9F12710-24E4-46D4-832C-6ECB395B9EAD}" EndProject @@ -184,8 +163,6 @@ EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Data.SQLServer", "src\AddIns\DisplayBindings\Data\ICSharpCode.Data.SQLServer\ICSharpCode.Data.SQLServer.csproj", "{AFE34868-AFA1-4E1C-9450-47AB4BE329D5}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "WpfDesign", "WpfDesign", "{83BAB756-1010-4A2F-9B9D-7F9EBCB288F5}" - ProjectSection(SolutionItems) = postProject - EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WpfDesign", "src\AddIns\DisplayBindings\WpfDesign\WpfDesign\Project\WpfDesign.csproj", "{66A378A1-E9F4-4AD5-8946-D0EC06C2902F}" EndProject @@ -198,8 +175,6 @@ EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WpfDesign.XamlDom", "src\AddIns\DisplayBindings\WpfDesign\WpfDesign.XamlDom\Project\WpfDesign.XamlDom.csproj", "{88DA149F-21B2-48AB-82C4-28FB6BDFD783}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Debugger", "Debugger", "{AF5E0DC1-1FA0-4346-A436-0C817C68F7C1}" - ProjectSection(SolutionItems) = postProject - EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Debugger.Core", "src\AddIns\Debugger\Debugger.Core\Debugger.Core.csproj", "{1D18D788-F7EE-4585-A23B-34DC8EC63CB8}" EndProject @@ -208,8 +183,6 @@ EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Debugger.Tests", "src\AddIns\Debugger\Debugger.Tests\Debugger.Tests.csproj", "{A4C858C8-51B6-4265-A695-A20FCEBA1D19}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Analysis", "Analysis", "{B3352C08-3CB4-4DD9-996F-B9DCE4356BB9}" - ProjectSection(SolutionItems) = postProject - EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnitTesting", "src\AddIns\Analysis\UnitTesting\UnitTesting.csproj", "{1F261725-6318-4434-A1B1-6C70CE4CD324}" EndProject @@ -217,7 +190,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnitTesting.Tests", "src\Ad EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CodeAnalysis", "src\AddIns\Analysis\CodeAnalysis\CodeAnalysis.csproj", "{3EAA45A9-735C-4AC7-A799-947B93EA449D}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SourceAnalysis", "src\AddIns\Analysis\SourceAnalysis\SourceAnalysis.csproj", "DC88D67C-E6B5-4994-9FA9-D4AB0E162FB3" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SourceAnalysis", "src\AddIns\Analysis\SourceAnalysis\SourceAnalysis.csproj", "{C16BEA37-FEE8-4792-B860-48F5BFBD39A9}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CodeCoverage.Tests", "src\AddIns\Analysis\CodeCoverage\Test\CodeCoverage.Tests.csproj", "{A5C0E8F8-9D04-46ED-91D6-1DEF1575313B}" EndProject @@ -230,683 +203,675 @@ EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution + {B5F54272-49F0-40DB-845A-8D837875D3BA}.Debug|Any CPU.ActiveCfg = Debug|x86 + {B5F54272-49F0-40DB-845A-8D837875D3BA}.Debug|Any CPU.Build.0 = Debug|x86 + {B5F54272-49F0-40DB-845A-8D837875D3BA}.Debug|x86.ActiveCfg = Debug|x86 + {B5F54272-49F0-40DB-845A-8D837875D3BA}.Debug|x86.Build.0 = Debug|x86 + {B5F54272-49F0-40DB-845A-8D837875D3BA}.Release|Any CPU.ActiveCfg = Release|x86 + {B5F54272-49F0-40DB-845A-8D837875D3BA}.Release|Any CPU.Build.0 = Release|x86 + {B5F54272-49F0-40DB-845A-8D837875D3BA}.Release|x86.ActiveCfg = Release|x86 + {B5F54272-49F0-40DB-845A-8D837875D3BA}.Release|x86.Build.0 = Release|x86 + {C3CBC8E3-81D8-4C5B-9941-DCCD12D50B1F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C3CBC8E3-81D8-4C5B-9941-DCCD12D50B1F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C3CBC8E3-81D8-4C5B-9941-DCCD12D50B1F}.Debug|x86.ActiveCfg = Debug|Any CPU + {C3CBC8E3-81D8-4C5B-9941-DCCD12D50B1F}.Debug|x86.Build.0 = Debug|Any CPU + {C3CBC8E3-81D8-4C5B-9941-DCCD12D50B1F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C3CBC8E3-81D8-4C5B-9941-DCCD12D50B1F}.Release|Any CPU.Build.0 = Release|Any CPU + {C3CBC8E3-81D8-4C5B-9941-DCCD12D50B1F}.Release|x86.ActiveCfg = Release|Any CPU + {C3CBC8E3-81D8-4C5B-9941-DCCD12D50B1F}.Release|x86.Build.0 = Release|Any CPU + {4980B743-B32F-4ABA-AABD-45E2CAD3568D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4980B743-B32F-4ABA-AABD-45E2CAD3568D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4980B743-B32F-4ABA-AABD-45E2CAD3568D}.Debug|x86.ActiveCfg = Debug|Any CPU + {4980B743-B32F-4ABA-AABD-45E2CAD3568D}.Release|Any CPU.ActiveCfg = Debug|Any CPU + {4980B743-B32F-4ABA-AABD-45E2CAD3568D}.Release|Any CPU.Build.0 = Debug|Any CPU + {4980B743-B32F-4ABA-AABD-45E2CAD3568D}.Release|x86.ActiveCfg = Debug|Any CPU + {AD6FAA08-D6F5-4DBA-AF85-F4DA9F40C3B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AD6FAA08-D6F5-4DBA-AF85-F4DA9F40C3B5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AD6FAA08-D6F5-4DBA-AF85-F4DA9F40C3B5}.Debug|x86.ActiveCfg = Debug|Any CPU + {AD6FAA08-D6F5-4DBA-AF85-F4DA9F40C3B5}.Debug|x86.Build.0 = Debug|Any CPU + {AD6FAA08-D6F5-4DBA-AF85-F4DA9F40C3B5}.Release|Any CPU.ActiveCfg = Debug|Any CPU + {AD6FAA08-D6F5-4DBA-AF85-F4DA9F40C3B5}.Release|Any CPU.Build.0 = Debug|Any CPU + {AD6FAA08-D6F5-4DBA-AF85-F4DA9F40C3B5}.Release|x86.ActiveCfg = Debug|Any CPU + {AD6FAA08-D6F5-4DBA-AF85-F4DA9F40C3B5}.Release|x86.Build.0 = Debug|Any CPU {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}.Debug|x86.ActiveCfg = Debug|Any CPU + {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}.Debug|x86.Build.0 = Debug|Any CPU {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}.Release|Any CPU.ActiveCfg = Release|Any CPU {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}.Release|Any CPU.Build.0 = Release|Any CPU + {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}.Release|x86.ActiveCfg = Release|Any CPU + {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}.Release|x86.Build.0 = Release|Any CPU {7E4A7172-7FF5-48D0-B719-7CD959DD1AC9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {7E4A7172-7FF5-48D0-B719-7CD959DD1AC9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7E4A7172-7FF5-48D0-B719-7CD959DD1AC9}.Debug|x86.ActiveCfg = Debug|Any CPU + {7E4A7172-7FF5-48D0-B719-7CD959DD1AC9}.Debug|x86.Build.0 = Debug|Any CPU {7E4A7172-7FF5-48D0-B719-7CD959DD1AC9}.Release|Any CPU.ActiveCfg = Release|Any CPU {7E4A7172-7FF5-48D0-B719-7CD959DD1AC9}.Release|Any CPU.Build.0 = Release|Any CPU + {7E4A7172-7FF5-48D0-B719-7CD959DD1AC9}.Release|x86.ActiveCfg = Release|Any CPU + {7E4A7172-7FF5-48D0-B719-7CD959DD1AC9}.Release|x86.Build.0 = Release|Any CPU {857CA1A3-FC88-4BE0-AB6A-D1EE772AB288}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {857CA1A3-FC88-4BE0-AB6A-D1EE772AB288}.Debug|Any CPU.Build.0 = Debug|Any CPU + {857CA1A3-FC88-4BE0-AB6A-D1EE772AB288}.Debug|x86.ActiveCfg = Debug|Any CPU + {857CA1A3-FC88-4BE0-AB6A-D1EE772AB288}.Debug|x86.Build.0 = Debug|Any CPU {857CA1A3-FC88-4BE0-AB6A-D1EE772AB288}.Release|Any CPU.ActiveCfg = Release|Any CPU {857CA1A3-FC88-4BE0-AB6A-D1EE772AB288}.Release|Any CPU.Build.0 = Release|Any CPU + {857CA1A3-FC88-4BE0-AB6A-D1EE772AB288}.Release|x86.ActiveCfg = Release|Any CPU + {857CA1A3-FC88-4BE0-AB6A-D1EE772AB288}.Release|x86.Build.0 = Release|Any CPU {2748AD25-9C63-4E12-877B-4DCE96FBED54}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {2748AD25-9C63-4E12-877B-4DCE96FBED54}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2748AD25-9C63-4E12-877B-4DCE96FBED54}.Debug|x86.ActiveCfg = Debug|Any CPU + {2748AD25-9C63-4E12-877B-4DCE96FBED54}.Debug|x86.Build.0 = Debug|Any CPU {2748AD25-9C63-4E12-877B-4DCE96FBED54}.Release|Any CPU.ActiveCfg = Release|Any CPU {2748AD25-9C63-4E12-877B-4DCE96FBED54}.Release|Any CPU.Build.0 = Release|Any CPU + {2748AD25-9C63-4E12-877B-4DCE96FBED54}.Release|x86.ActiveCfg = Release|Any CPU + {2748AD25-9C63-4E12-877B-4DCE96FBED54}.Release|x86.Build.0 = Release|Any CPU {8035765F-D51F-4A0C-A746-2FD100E19419}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {8035765F-D51F-4A0C-A746-2FD100E19419}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8035765F-D51F-4A0C-A746-2FD100E19419}.Debug|x86.ActiveCfg = Debug|Any CPU + {8035765F-D51F-4A0C-A746-2FD100E19419}.Debug|x86.Build.0 = Debug|Any CPU {8035765F-D51F-4A0C-A746-2FD100E19419}.Release|Any CPU.ActiveCfg = Release|Any CPU {8035765F-D51F-4A0C-A746-2FD100E19419}.Release|Any CPU.Build.0 = Release|Any CPU + {8035765F-D51F-4A0C-A746-2FD100E19419}.Release|x86.ActiveCfg = Release|Any CPU + {8035765F-D51F-4A0C-A746-2FD100E19419}.Release|x86.Build.0 = Release|Any CPU + {1152B71B-3C05-4598-B20D-823B5D40559E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1152B71B-3C05-4598-B20D-823B5D40559E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1152B71B-3C05-4598-B20D-823B5D40559E}.Debug|x86.ActiveCfg = Debug|Any CPU + {1152B71B-3C05-4598-B20D-823B5D40559E}.Debug|x86.Build.0 = Debug|Any CPU + {1152B71B-3C05-4598-B20D-823B5D40559E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1152B71B-3C05-4598-B20D-823B5D40559E}.Release|Any CPU.Build.0 = Release|Any CPU + {1152B71B-3C05-4598-B20D-823B5D40559E}.Release|x86.ActiveCfg = Release|Any CPU + {1152B71B-3C05-4598-B20D-823B5D40559E}.Release|x86.Build.0 = Release|Any CPU + {D68133BD-1E63-496E-9EDE-4FBDBF77B486}.Debug|Any CPU.ActiveCfg = net_4_0_Debug|Any CPU + {D68133BD-1E63-496E-9EDE-4FBDBF77B486}.Debug|Any CPU.Build.0 = net_2_0_Debug|Any CPU + {D68133BD-1E63-496E-9EDE-4FBDBF77B486}.Debug|x86.ActiveCfg = net_4_0_Debug|Any CPU + {D68133BD-1E63-496E-9EDE-4FBDBF77B486}.Debug|x86.Build.0 = net_2_0_Debug|Any CPU + {D68133BD-1E63-496E-9EDE-4FBDBF77B486}.Release|Any CPU.ActiveCfg = net_4_0_Release|Any CPU + {D68133BD-1E63-496E-9EDE-4FBDBF77B486}.Release|Any CPU.Build.0 = net_2_0_Debug|Any CPU + {D68133BD-1E63-496E-9EDE-4FBDBF77B486}.Release|x86.ActiveCfg = net_4_0_Release|Any CPU + {D68133BD-1E63-496E-9EDE-4FBDBF77B486}.Release|x86.Build.0 = net_2_0_Debug|Any CPU + {6222A3A1-83CE-47A3-A4E4-A018F82D44D8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {6222A3A1-83CE-47A3-A4E4-A018F82D44D8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6222A3A1-83CE-47A3-A4E4-A018F82D44D8}.Debug|x86.ActiveCfg = Debug|Any CPU + {6222A3A1-83CE-47A3-A4E4-A018F82D44D8}.Debug|x86.Build.0 = Debug|Any CPU + {6222A3A1-83CE-47A3-A4E4-A018F82D44D8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {6222A3A1-83CE-47A3-A4E4-A018F82D44D8}.Release|Any CPU.Build.0 = Release|Any CPU + {6222A3A1-83CE-47A3-A4E4-A018F82D44D8}.Release|x86.ActiveCfg = Release|Any CPU + {6222A3A1-83CE-47A3-A4E4-A018F82D44D8}.Release|x86.Build.0 = Release|Any CPU + {3B2A5653-EC97-4001-BB9B-D90F1AF2C371}.Debug|Any CPU.ActiveCfg = net_4_5_Debug|Any CPU + {3B2A5653-EC97-4001-BB9B-D90F1AF2C371}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3B2A5653-EC97-4001-BB9B-D90F1AF2C371}.Debug|x86.ActiveCfg = net_4_5_Debug|Any CPU + {3B2A5653-EC97-4001-BB9B-D90F1AF2C371}.Debug|x86.Build.0 = Debug|Any CPU + {3B2A5653-EC97-4001-BB9B-D90F1AF2C371}.Release|Any CPU.ActiveCfg = net_4_5_Release|Any CPU + {3B2A5653-EC97-4001-BB9B-D90F1AF2C371}.Release|Any CPU.Build.0 = Release|Any CPU + {3B2A5653-EC97-4001-BB9B-D90F1AF2C371}.Release|x86.ActiveCfg = net_4_5_Release|Any CPU + {3B2A5653-EC97-4001-BB9B-D90F1AF2C371}.Release|x86.Build.0 = Release|Any CPU + {53DCA265-3C3C-42F9-B647-F72BA678122B}.Debug|Any CPU.ActiveCfg = net_4_5_Debug|Any CPU + {53DCA265-3C3C-42F9-B647-F72BA678122B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {53DCA265-3C3C-42F9-B647-F72BA678122B}.Debug|x86.ActiveCfg = net_4_5_Debug|Any CPU + {53DCA265-3C3C-42F9-B647-F72BA678122B}.Debug|x86.Build.0 = Debug|Any CPU + {53DCA265-3C3C-42F9-B647-F72BA678122B}.Release|Any CPU.ActiveCfg = net_4_5_Release|Any CPU + {53DCA265-3C3C-42F9-B647-F72BA678122B}.Release|Any CPU.Build.0 = Release|Any CPU + {53DCA265-3C3C-42F9-B647-F72BA678122B}.Release|x86.ActiveCfg = net_4_5_Release|Any CPU + {53DCA265-3C3C-42F9-B647-F72BA678122B}.Release|x86.Build.0 = Release|Any CPU + {DC393B66-92ED-4CAD-AB25-CFEF23F3D7C6}.Debug|Any CPU.ActiveCfg = net_4_5_Debug|Any CPU + {DC393B66-92ED-4CAD-AB25-CFEF23F3D7C6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DC393B66-92ED-4CAD-AB25-CFEF23F3D7C6}.Debug|x86.ActiveCfg = net_4_5_Debug|Any CPU + {DC393B66-92ED-4CAD-AB25-CFEF23F3D7C6}.Debug|x86.Build.0 = Debug|Any CPU + {DC393B66-92ED-4CAD-AB25-CFEF23F3D7C6}.Release|Any CPU.ActiveCfg = net_4_5_Release|Any CPU + {DC393B66-92ED-4CAD-AB25-CFEF23F3D7C6}.Release|Any CPU.Build.0 = Release|Any CPU + {DC393B66-92ED-4CAD-AB25-CFEF23F3D7C6}.Release|x86.ActiveCfg = net_4_5_Release|Any CPU + {DC393B66-92ED-4CAD-AB25-CFEF23F3D7C6}.Release|x86.Build.0 = Release|Any CPU + {63D3B27A-D966-4902-90B3-30290E1692F1}.Debug|Any CPU.ActiveCfg = net_4_5_Debug|Any CPU + {63D3B27A-D966-4902-90B3-30290E1692F1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {63D3B27A-D966-4902-90B3-30290E1692F1}.Debug|x86.ActiveCfg = net_4_5_Debug|x86 + {63D3B27A-D966-4902-90B3-30290E1692F1}.Debug|x86.Build.0 = Debug|x86 + {63D3B27A-D966-4902-90B3-30290E1692F1}.Release|Any CPU.ActiveCfg = net_4_5_Release|Any CPU + {63D3B27A-D966-4902-90B3-30290E1692F1}.Release|Any CPU.Build.0 = Release|Any CPU + {63D3B27A-D966-4902-90B3-30290E1692F1}.Release|x86.ActiveCfg = net_4_5_Release|x86 + {63D3B27A-D966-4902-90B3-30290E1692F1}.Release|x86.Build.0 = Release|x86 {2FF700C2-A38A-48BD-A637-8CAFD4FE6237}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {2FF700C2-A38A-48BD-A637-8CAFD4FE6237}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2FF700C2-A38A-48BD-A637-8CAFD4FE6237}.Debug|x86.ActiveCfg = Debug|Any CPU + {2FF700C2-A38A-48BD-A637-8CAFD4FE6237}.Debug|x86.Build.0 = Debug|Any CPU {2FF700C2-A38A-48BD-A637-8CAFD4FE6237}.Release|Any CPU.ActiveCfg = Release|Any CPU {2FF700C2-A38A-48BD-A637-8CAFD4FE6237}.Release|Any CPU.Build.0 = Release|Any CPU + {2FF700C2-A38A-48BD-A637-8CAFD4FE6237}.Release|x86.ActiveCfg = Release|Any CPU + {2FF700C2-A38A-48BD-A637-8CAFD4FE6237}.Release|x86.Build.0 = Release|Any CPU {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Debug|x86.ActiveCfg = Debug|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Debug|x86.Build.0 = Debug|Any CPU {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Release|Any CPU.ActiveCfg = Release|Any CPU {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Release|Any CPU.Build.0 = Release|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Release|x86.ActiveCfg = Release|Any CPU + {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Release|x86.Build.0 = Release|Any CPU {4139CCF6-FB49-4A9D-B2CF-331E9EA3198D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {4139CCF6-FB49-4A9D-B2CF-331E9EA3198D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4139CCF6-FB49-4A9D-B2CF-331E9EA3198D}.Debug|x86.ActiveCfg = Debug|Any CPU + {4139CCF6-FB49-4A9D-B2CF-331E9EA3198D}.Debug|x86.Build.0 = Debug|Any CPU {4139CCF6-FB49-4A9D-B2CF-331E9EA3198D}.Release|Any CPU.ActiveCfg = Release|Any CPU {4139CCF6-FB49-4A9D-B2CF-331E9EA3198D}.Release|Any CPU.Build.0 = Release|Any CPU + {4139CCF6-FB49-4A9D-B2CF-331E9EA3198D}.Release|x86.ActiveCfg = Release|Any CPU + {4139CCF6-FB49-4A9D-B2CF-331E9EA3198D}.Release|x86.Build.0 = Release|Any CPU + {DDE2A481-8271-4EAC-A330-8FA6A38D13D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DDE2A481-8271-4EAC-A330-8FA6A38D13D1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DDE2A481-8271-4EAC-A330-8FA6A38D13D1}.Debug|x86.ActiveCfg = Debug|Any CPU + {DDE2A481-8271-4EAC-A330-8FA6A38D13D1}.Debug|x86.Build.0 = Debug|Any CPU + {DDE2A481-8271-4EAC-A330-8FA6A38D13D1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DDE2A481-8271-4EAC-A330-8FA6A38D13D1}.Release|Any CPU.Build.0 = Release|Any CPU + {DDE2A481-8271-4EAC-A330-8FA6A38D13D1}.Release|x86.ActiveCfg = Release|Any CPU + {DDE2A481-8271-4EAC-A330-8FA6A38D13D1}.Release|x86.Build.0 = Release|Any CPU + {984CC812-9470-4A13-AFF9-CC44068D666C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {984CC812-9470-4A13-AFF9-CC44068D666C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {984CC812-9470-4A13-AFF9-CC44068D666C}.Debug|x86.ActiveCfg = Debug|Any CPU + {984CC812-9470-4A13-AFF9-CC44068D666C}.Debug|x86.Build.0 = Debug|Any CPU + {984CC812-9470-4A13-AFF9-CC44068D666C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {984CC812-9470-4A13-AFF9-CC44068D666C}.Release|Any CPU.Build.0 = Release|Any CPU + {984CC812-9470-4A13-AFF9-CC44068D666C}.Release|x86.ActiveCfg = Release|Any CPU + {984CC812-9470-4A13-AFF9-CC44068D666C}.Release|x86.Build.0 = Release|Any CPU + {83F15BA7-8478-4664-81BB-A82F146D88B3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {83F15BA7-8478-4664-81BB-A82F146D88B3}.Debug|Any CPU.Build.0 = Debug|Any CPU + {83F15BA7-8478-4664-81BB-A82F146D88B3}.Debug|x86.ActiveCfg = Debug|Any CPU + {83F15BA7-8478-4664-81BB-A82F146D88B3}.Debug|x86.Build.0 = Debug|Any CPU + {83F15BA7-8478-4664-81BB-A82F146D88B3}.Release|Any CPU.ActiveCfg = Release|Any CPU + {83F15BA7-8478-4664-81BB-A82F146D88B3}.Release|Any CPU.Build.0 = Release|Any CPU + {83F15BA7-8478-4664-81BB-A82F146D88B3}.Release|x86.ActiveCfg = Release|Any CPU + {83F15BA7-8478-4664-81BB-A82F146D88B3}.Release|x86.Build.0 = Release|Any CPU + {17F4D7E0-6933-4C2E-8714-FD7E98D625D5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {17F4D7E0-6933-4C2E-8714-FD7E98D625D5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {17F4D7E0-6933-4C2E-8714-FD7E98D625D5}.Debug|x86.ActiveCfg = Debug|Any CPU + {17F4D7E0-6933-4C2E-8714-FD7E98D625D5}.Debug|x86.Build.0 = Debug|Any CPU + {17F4D7E0-6933-4C2E-8714-FD7E98D625D5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {17F4D7E0-6933-4C2E-8714-FD7E98D625D5}.Release|Any CPU.Build.0 = Release|Any CPU + {17F4D7E0-6933-4C2E-8714-FD7E98D625D5}.Release|x86.ActiveCfg = Release|Any CPU + {17F4D7E0-6933-4C2E-8714-FD7E98D625D5}.Release|x86.Build.0 = Release|Any CPU {1F1AC7CD-D154-45BB-8EAF-804CA8055F5A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {1F1AC7CD-D154-45BB-8EAF-804CA8055F5A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1F1AC7CD-D154-45BB-8EAF-804CA8055F5A}.Debug|x86.ActiveCfg = Debug|Any CPU + {1F1AC7CD-D154-45BB-8EAF-804CA8055F5A}.Debug|x86.Build.0 = Debug|Any CPU {1F1AC7CD-D154-45BB-8EAF-804CA8055F5A}.Release|Any CPU.ActiveCfg = Release|Any CPU {1F1AC7CD-D154-45BB-8EAF-804CA8055F5A}.Release|Any CPU.Build.0 = Release|Any CPU + {1F1AC7CD-D154-45BB-8EAF-804CA8055F5A}.Release|x86.ActiveCfg = Release|Any CPU + {1F1AC7CD-D154-45BB-8EAF-804CA8055F5A}.Release|x86.Build.0 = Release|Any CPU + {E954F3CB-A446-492F-A664-2B376EBC86E8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E954F3CB-A446-492F-A664-2B376EBC86E8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E954F3CB-A446-492F-A664-2B376EBC86E8}.Debug|x86.ActiveCfg = Debug|Any CPU + {E954F3CB-A446-492F-A664-2B376EBC86E8}.Debug|x86.Build.0 = Debug|Any CPU + {E954F3CB-A446-492F-A664-2B376EBC86E8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E954F3CB-A446-492F-A664-2B376EBC86E8}.Release|Any CPU.Build.0 = Release|Any CPU + {E954F3CB-A446-492F-A664-2B376EBC86E8}.Release|x86.ActiveCfg = Release|Any CPU + {E954F3CB-A446-492F-A664-2B376EBC86E8}.Release|x86.Build.0 = Release|Any CPU + {70966F84-74C9-4067-A379-0C674A929233}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {70966F84-74C9-4067-A379-0C674A929233}.Debug|Any CPU.Build.0 = Debug|Any CPU + {70966F84-74C9-4067-A379-0C674A929233}.Debug|x86.ActiveCfg = Debug|Any CPU + {70966F84-74C9-4067-A379-0C674A929233}.Debug|x86.Build.0 = Debug|Any CPU + {70966F84-74C9-4067-A379-0C674A929233}.Release|Any CPU.ActiveCfg = Release|Any CPU + {70966F84-74C9-4067-A379-0C674A929233}.Release|Any CPU.Build.0 = Release|Any CPU + {70966F84-74C9-4067-A379-0C674A929233}.Release|x86.ActiveCfg = Release|Any CPU + {70966F84-74C9-4067-A379-0C674A929233}.Release|x86.Build.0 = Release|Any CPU + {52006F3F-3156-45DE-89D8-C4813694FBA4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {52006F3F-3156-45DE-89D8-C4813694FBA4}.Debug|Any CPU.Build.0 = Debug|Any CPU + {52006F3F-3156-45DE-89D8-C4813694FBA4}.Debug|x86.ActiveCfg = Debug|Any CPU + {52006F3F-3156-45DE-89D8-C4813694FBA4}.Debug|x86.Build.0 = Debug|Any CPU + {52006F3F-3156-45DE-89D8-C4813694FBA4}.Release|Any CPU.ActiveCfg = Release|Any CPU + {52006F3F-3156-45DE-89D8-C4813694FBA4}.Release|Any CPU.Build.0 = Release|Any CPU + {52006F3F-3156-45DE-89D8-C4813694FBA4}.Release|x86.ActiveCfg = Release|Any CPU + {52006F3F-3156-45DE-89D8-C4813694FBA4}.Release|x86.Build.0 = Release|Any CPU + {7C96B65D-28A5-4F28-A35B-8D83CE831EE8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7C96B65D-28A5-4F28-A35B-8D83CE831EE8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7C96B65D-28A5-4F28-A35B-8D83CE831EE8}.Debug|x86.ActiveCfg = Debug|Any CPU + {7C96B65D-28A5-4F28-A35B-8D83CE831EE8}.Debug|x86.Build.0 = Debug|Any CPU + {7C96B65D-28A5-4F28-A35B-8D83CE831EE8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7C96B65D-28A5-4F28-A35B-8D83CE831EE8}.Release|Any CPU.Build.0 = Release|Any CPU + {7C96B65D-28A5-4F28-A35B-8D83CE831EE8}.Release|x86.ActiveCfg = Release|Any CPU + {7C96B65D-28A5-4F28-A35B-8D83CE831EE8}.Release|x86.Build.0 = Release|Any CPU + {0B12A079-B2DB-42B9-8A8E-AA5CBC2B3225}.Debug|Any CPU.ActiveCfg = Debug|x86 + {0B12A079-B2DB-42B9-8A8E-AA5CBC2B3225}.Debug|Any CPU.Build.0 = Debug|x86 + {0B12A079-B2DB-42B9-8A8E-AA5CBC2B3225}.Debug|x86.ActiveCfg = Debug|x86 + {0B12A079-B2DB-42B9-8A8E-AA5CBC2B3225}.Debug|x86.Build.0 = Debug|x86 + {0B12A079-B2DB-42B9-8A8E-AA5CBC2B3225}.Release|Any CPU.ActiveCfg = Release|x86 + {0B12A079-B2DB-42B9-8A8E-AA5CBC2B3225}.Release|Any CPU.Build.0 = Release|x86 + {0B12A079-B2DB-42B9-8A8E-AA5CBC2B3225}.Release|x86.ActiveCfg = Release|x86 + {0B12A079-B2DB-42B9-8A8E-AA5CBC2B3225}.Release|x86.Build.0 = Release|x86 + {D781721F-C2A7-4E95-B76F-247170AC3B13}.Debug|Any CPU.ActiveCfg = Debug|x86 + {D781721F-C2A7-4E95-B76F-247170AC3B13}.Debug|Any CPU.Build.0 = Debug|x86 + {D781721F-C2A7-4E95-B76F-247170AC3B13}.Debug|x86.ActiveCfg = Debug|x86 + {D781721F-C2A7-4E95-B76F-247170AC3B13}.Debug|x86.Build.0 = Debug|x86 + {D781721F-C2A7-4E95-B76F-247170AC3B13}.Release|Any CPU.ActiveCfg = Release|x86 + {D781721F-C2A7-4E95-B76F-247170AC3B13}.Release|Any CPU.Build.0 = Release|x86 + {D781721F-C2A7-4E95-B76F-247170AC3B13}.Release|x86.ActiveCfg = Release|x86 + {D781721F-C2A7-4E95-B76F-247170AC3B13}.Release|x86.Build.0 = Release|x86 + {E1B288A2-08EE-4318-8BBB-8AB72C69E33E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E1B288A2-08EE-4318-8BBB-8AB72C69E33E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E1B288A2-08EE-4318-8BBB-8AB72C69E33E}.Debug|x86.ActiveCfg = Debug|Any CPU + {E1B288A2-08EE-4318-8BBB-8AB72C69E33E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E1B288A2-08EE-4318-8BBB-8AB72C69E33E}.Release|Any CPU.Build.0 = Release|Any CPU + {E1B288A2-08EE-4318-8BBB-8AB72C69E33E}.Release|x86.ActiveCfg = Release|Any CPU + {388E7B64-0393-4EB4-A3E3-5C474F141853}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {388E7B64-0393-4EB4-A3E3-5C474F141853}.Debug|Any CPU.Build.0 = Debug|Any CPU + {388E7B64-0393-4EB4-A3E3-5C474F141853}.Debug|x86.ActiveCfg = Debug|Any CPU + {388E7B64-0393-4EB4-A3E3-5C474F141853}.Debug|x86.Build.0 = Debug|Any CPU + {388E7B64-0393-4EB4-A3E3-5C474F141853}.Release|Any CPU.ActiveCfg = Release|Any CPU + {388E7B64-0393-4EB4-A3E3-5C474F141853}.Release|Any CPU.Build.0 = Release|Any CPU + {388E7B64-0393-4EB4-A3E3-5C474F141853}.Release|x86.ActiveCfg = Release|Any CPU + {388E7B64-0393-4EB4-A3E3-5C474F141853}.Release|x86.Build.0 = Release|Any CPU + {7048AE18-EB93-4A84-82D0-DD60EB58ADBD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7048AE18-EB93-4A84-82D0-DD60EB58ADBD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7048AE18-EB93-4A84-82D0-DD60EB58ADBD}.Debug|x86.ActiveCfg = Debug|x86 + {7048AE18-EB93-4A84-82D0-DD60EB58ADBD}.Debug|x86.Build.0 = Debug|x86 + {7048AE18-EB93-4A84-82D0-DD60EB58ADBD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7048AE18-EB93-4A84-82D0-DD60EB58ADBD}.Release|Any CPU.Build.0 = Release|Any CPU + {7048AE18-EB93-4A84-82D0-DD60EB58ADBD}.Release|x86.ActiveCfg = Release|x86 + {7048AE18-EB93-4A84-82D0-DD60EB58ADBD}.Release|x86.Build.0 = Release|x86 + {85C09AD8-183B-403A-869A-7226646218A9}.Debug|Any CPU.ActiveCfg = Debug|x86 + {85C09AD8-183B-403A-869A-7226646218A9}.Debug|Any CPU.Build.0 = Debug|x86 + {85C09AD8-183B-403A-869A-7226646218A9}.Debug|x86.ActiveCfg = Debug|x86 + {85C09AD8-183B-403A-869A-7226646218A9}.Debug|x86.Build.0 = Debug|x86 + {85C09AD8-183B-403A-869A-7226646218A9}.Release|Any CPU.ActiveCfg = Release|x86 + {85C09AD8-183B-403A-869A-7226646218A9}.Release|Any CPU.Build.0 = Release|x86 + {85C09AD8-183B-403A-869A-7226646218A9}.Release|x86.ActiveCfg = Release|x86 + {85C09AD8-183B-403A-869A-7226646218A9}.Release|x86.Build.0 = Release|x86 + {80F76D10-0B44-4D55-B4BD-DAEB5464090C}.Debug|Any CPU.ActiveCfg = Debug|x86 + {80F76D10-0B44-4D55-B4BD-DAEB5464090C}.Debug|Any CPU.Build.0 = Debug|x86 + {80F76D10-0B44-4D55-B4BD-DAEB5464090C}.Debug|x86.ActiveCfg = Debug|x86 + {80F76D10-0B44-4D55-B4BD-DAEB5464090C}.Debug|x86.Build.0 = Debug|x86 + {80F76D10-0B44-4D55-B4BD-DAEB5464090C}.Release|Any CPU.ActiveCfg = Release|x86 + {80F76D10-0B44-4D55-B4BD-DAEB5464090C}.Release|Any CPU.Build.0 = Release|x86 + {80F76D10-0B44-4D55-B4BD-DAEB5464090C}.Release|x86.ActiveCfg = Release|x86 + {80F76D10-0B44-4D55-B4BD-DAEB5464090C}.Release|x86.Build.0 = Release|x86 {9196DD8A-B4D4-4780-8742-C5762E547FC2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {9196DD8A-B4D4-4780-8742-C5762E547FC2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9196DD8A-B4D4-4780-8742-C5762E547FC2}.Debug|x86.ActiveCfg = Debug|Any CPU + {9196DD8A-B4D4-4780-8742-C5762E547FC2}.Debug|x86.Build.0 = Debug|Any CPU {9196DD8A-B4D4-4780-8742-C5762E547FC2}.Release|Any CPU.ActiveCfg = Release|Any CPU {9196DD8A-B4D4-4780-8742-C5762E547FC2}.Release|Any CPU.Build.0 = Release|Any CPU + {9196DD8A-B4D4-4780-8742-C5762E547FC2}.Release|x86.ActiveCfg = Release|Any CPU + {9196DD8A-B4D4-4780-8742-C5762E547FC2}.Release|x86.Build.0 = Release|Any CPU {7D5C266F-D6FF-4D14-B315-0C0FC6C4EF51}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {7D5C266F-D6FF-4D14-B315-0C0FC6C4EF51}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7D5C266F-D6FF-4D14-B315-0C0FC6C4EF51}.Debug|x86.ActiveCfg = Debug|Any CPU + {7D5C266F-D6FF-4D14-B315-0C0FC6C4EF51}.Debug|x86.Build.0 = Debug|Any CPU {7D5C266F-D6FF-4D14-B315-0C0FC6C4EF51}.Release|Any CPU.ActiveCfg = Release|Any CPU {7D5C266F-D6FF-4D14-B315-0C0FC6C4EF51}.Release|Any CPU.Build.0 = Release|Any CPU + {7D5C266F-D6FF-4D14-B315-0C0FC6C4EF51}.Release|x86.ActiveCfg = Release|Any CPU + {7D5C266F-D6FF-4D14-B315-0C0FC6C4EF51}.Release|x86.Build.0 = Release|Any CPU {F93E52FD-DA66-4CE5-A0CB-BCD902811122}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {F93E52FD-DA66-4CE5-A0CB-BCD902811122}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F93E52FD-DA66-4CE5-A0CB-BCD902811122}.Debug|x86.ActiveCfg = Debug|Any CPU + {F93E52FD-DA66-4CE5-A0CB-BCD902811122}.Debug|x86.Build.0 = Debug|Any CPU {F93E52FD-DA66-4CE5-A0CB-BCD902811122}.Release|Any CPU.ActiveCfg = Release|Any CPU {F93E52FD-DA66-4CE5-A0CB-BCD902811122}.Release|Any CPU.Build.0 = Release|Any CPU + {F93E52FD-DA66-4CE5-A0CB-BCD902811122}.Release|x86.ActiveCfg = Release|Any CPU + {F93E52FD-DA66-4CE5-A0CB-BCD902811122}.Release|x86.Build.0 = Release|Any CPU {4B8F0F98-8BE1-402B-AA8B-C8D548577B38}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {4B8F0F98-8BE1-402B-AA8B-C8D548577B38}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4B8F0F98-8BE1-402B-AA8B-C8D548577B38}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4B8F0F98-8BE1-402B-AA8B-C8D548577B38}.Debug|x86.ActiveCfg = Debug|Any CPU + {4B8F0F98-8BE1-402B-AA8B-C8D548577B38}.Debug|x86.Build.0 = Debug|Any CPU + {4B8F0F98-8BE1-402B-AA8B-C8D548577B38}.Release|Any CPU.ActiveCfg = Release|Any CPU {4B8F0F98-8BE1-402B-AA8B-C8D548577B38}.Release|Any CPU.Build.0 = Release|Any CPU + {4B8F0F98-8BE1-402B-AA8B-C8D548577B38}.Release|x86.ActiveCfg = Release|Any CPU + {4B8F0F98-8BE1-402B-AA8B-C8D548577B38}.Release|x86.Build.0 = Release|Any CPU {D022A6CE-7438-41E8-AC64-F2DE18EC54C6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {D022A6CE-7438-41E8-AC64-F2DE18EC54C6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D022A6CE-7438-41E8-AC64-F2DE18EC54C6}.Debug|x86.ActiveCfg = Debug|Any CPU + {D022A6CE-7438-41E8-AC64-F2DE18EC54C6}.Debug|x86.Build.0 = Debug|Any CPU {D022A6CE-7438-41E8-AC64-F2DE18EC54C6}.Release|Any CPU.ActiveCfg = Release|Any CPU {D022A6CE-7438-41E8-AC64-F2DE18EC54C6}.Release|Any CPU.Build.0 = Release|Any CPU + {D022A6CE-7438-41E8-AC64-F2DE18EC54C6}.Release|x86.ActiveCfg = Release|Any CPU + {D022A6CE-7438-41E8-AC64-F2DE18EC54C6}.Release|x86.Build.0 = Release|Any CPU {64A3E5E6-90BF-47F6-94DF-68C94B62C817}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {64A3E5E6-90BF-47F6-94DF-68C94B62C817}.Debug|Any CPU.Build.0 = Debug|Any CPU + {64A3E5E6-90BF-47F6-94DF-68C94B62C817}.Debug|x86.ActiveCfg = Debug|Any CPU + {64A3E5E6-90BF-47F6-94DF-68C94B62C817}.Debug|x86.Build.0 = Debug|Any CPU {64A3E5E6-90BF-47F6-94DF-68C94B62C817}.Release|Any CPU.ActiveCfg = Release|Any CPU {64A3E5E6-90BF-47F6-94DF-68C94B62C817}.Release|Any CPU.Build.0 = Release|Any CPU - {0162E499-42D0-409B-AA25-EED21F75336B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0162E499-42D0-409B-AA25-EED21F75336B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0162E499-42D0-409B-AA25-EED21F75336B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0162E499-42D0-409B-AA25-EED21F75336B}.Release|Any CPU.Build.0 = Release|Any CPU - {E618A9CD-A39F-4925-A538-E8A3FEF24E54}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E618A9CD-A39F-4925-A538-E8A3FEF24E54}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E618A9CD-A39F-4925-A538-E8A3FEF24E54}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E618A9CD-A39F-4925-A538-E8A3FEF24E54}.Release|Any CPU.Build.0 = Release|Any CPU - {3DF4060F-5EE0-41CF-8096-F27355FD5511}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3DF4060F-5EE0-41CF-8096-F27355FD5511}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3DF4060F-5EE0-41CF-8096-F27355FD5511}.Release|Any CPU.Build.0 = Release|Any CPU - {3DF4060F-5EE0-41CF-8096-F27355FD5511}.Release|Any CPU.ActiveCfg = Release|Any CPU - {AD6FAA08-D6F5-4DBA-AF85-F4DA9F40C3B5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {AD6FAA08-D6F5-4DBA-AF85-F4DA9F40C3B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {AD6FAA08-D6F5-4DBA-AF85-F4DA9F40C3B5}.Release|Any CPU.Build.0 = Release|Any CPU - {AD6FAA08-D6F5-4DBA-AF85-F4DA9F40C3B5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4980B743-B32F-4ABA-AABD-45E2CAD3568D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4980B743-B32F-4ABA-AABD-45E2CAD3568D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4980B743-B32F-4ABA-AABD-45E2CAD3568D}.Release|Any CPU.Build.0 = Release|Any CPU - {4980B743-B32F-4ABA-AABD-45E2CAD3568D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6222A3A1-83CE-47A3-A4E4-A018F82D44D8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6222A3A1-83CE-47A3-A4E4-A018F82D44D8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6222A3A1-83CE-47A3-A4E4-A018F82D44D8}.Release|Any CPU.Build.0 = Release|Any CPU - {6222A3A1-83CE-47A3-A4E4-A018F82D44D8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DDE2A481-8271-4EAC-A330-8FA6A38D13D1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DDE2A481-8271-4EAC-A330-8FA6A38D13D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DDE2A481-8271-4EAC-A330-8FA6A38D13D1}.Release|Any CPU.Build.0 = Release|Any CPU - {DDE2A481-8271-4EAC-A330-8FA6A38D13D1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6B1CFE35-DA17-4DEB-9C6E-227E5E251DA0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {64A3E5E6-90BF-47F6-94DF-68C94B62C817}.Release|x86.ActiveCfg = Release|Any CPU + {64A3E5E6-90BF-47F6-94DF-68C94B62C817}.Release|x86.Build.0 = Release|Any CPU {6B1CFE35-DA17-4DEB-9C6E-227E5E251DA0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6B1CFE35-DA17-4DEB-9C6E-227E5E251DA0}.Release|Any CPU.Build.0 = Release|Any CPU + {6B1CFE35-DA17-4DEB-9C6E-227E5E251DA0}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6B1CFE35-DA17-4DEB-9C6E-227E5E251DA0}.Debug|x86.ActiveCfg = Debug|Any CPU + {6B1CFE35-DA17-4DEB-9C6E-227E5E251DA0}.Debug|x86.Build.0 = Debug|Any CPU {6B1CFE35-DA17-4DEB-9C6E-227E5E251DA0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0008FCE9-9EB4-4E2E-979B-553278E5BBA6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {6B1CFE35-DA17-4DEB-9C6E-227E5E251DA0}.Release|Any CPU.Build.0 = Release|Any CPU + {6B1CFE35-DA17-4DEB-9C6E-227E5E251DA0}.Release|x86.ActiveCfg = Release|Any CPU + {6B1CFE35-DA17-4DEB-9C6E-227E5E251DA0}.Release|x86.Build.0 = Release|Any CPU {0008FCE9-9EB4-4E2E-979B-553278E5BBA6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0008FCE9-9EB4-4E2E-979B-553278E5BBA6}.Release|Any CPU.Build.0 = Release|Any CPU + {0008FCE9-9EB4-4E2E-979B-553278E5BBA6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0008FCE9-9EB4-4E2E-979B-553278E5BBA6}.Debug|x86.ActiveCfg = Debug|Any CPU + {0008FCE9-9EB4-4E2E-979B-553278E5BBA6}.Debug|x86.Build.0 = Debug|Any CPU {0008FCE9-9EB4-4E2E-979B-553278E5BBA6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E954F3CB-A446-492F-A664-2B376EBC86E8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E954F3CB-A446-492F-A664-2B376EBC86E8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E954F3CB-A446-492F-A664-2B376EBC86E8}.Debug|x86.Build.0 = Debug|Any CPU - {E954F3CB-A446-492F-A664-2B376EBC86E8}.Debug|x86.ActiveCfg = Debug|Any CPU - {E954F3CB-A446-492F-A664-2B376EBC86E8}.Release|Any CPU.Build.0 = Release|Any CPU - {E954F3CB-A446-492F-A664-2B376EBC86E8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E954F3CB-A446-492F-A664-2B376EBC86E8}.Release|x86.Build.0 = Release|Any CPU - {E954F3CB-A446-492F-A664-2B376EBC86E8}.Release|x86.ActiveCfg = Release|Any CPU - {C3CBC8E3-81D8-4C5B-9941-DCCD12D50B1F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C3CBC8E3-81D8-4C5B-9941-DCCD12D50B1F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C3CBC8E3-81D8-4C5B-9941-DCCD12D50B1F}.Debug|x86.Build.0 = Debug|Any CPU - {C3CBC8E3-81D8-4C5B-9941-DCCD12D50B1F}.Debug|x86.ActiveCfg = Debug|Any CPU - {C3CBC8E3-81D8-4C5B-9941-DCCD12D50B1F}.Release|Any CPU.Build.0 = Release|Any CPU - {C3CBC8E3-81D8-4C5B-9941-DCCD12D50B1F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C3CBC8E3-81D8-4C5B-9941-DCCD12D50B1F}.Release|x86.Build.0 = Release|Any CPU - {C3CBC8E3-81D8-4C5B-9941-DCCD12D50B1F}.Release|x86.ActiveCfg = Release|Any CPU - {B5F54272-49F0-40DB-845A-8D837875D3BA}.Debug|Any CPU.Build.0 = Debug|x86 - {B5F54272-49F0-40DB-845A-8D837875D3BA}.Debug|Any CPU.ActiveCfg = Debug|x86 - {B5F54272-49F0-40DB-845A-8D837875D3BA}.Debug|x86.Build.0 = Debug|x86 - {B5F54272-49F0-40DB-845A-8D837875D3BA}.Debug|x86.ActiveCfg = Debug|x86 - {B5F54272-49F0-40DB-845A-8D837875D3BA}.Release|Any CPU.Build.0 = Release|x86 - {B5F54272-49F0-40DB-845A-8D837875D3BA}.Release|Any CPU.ActiveCfg = Release|x86 - {B5F54272-49F0-40DB-845A-8D837875D3BA}.Release|x86.Build.0 = Release|x86 - {B5F54272-49F0-40DB-845A-8D837875D3BA}.Release|x86.ActiveCfg = Release|x86 - {80F76D10-0B44-4D55-B4BD-DAEB5464090C}.Debug|Any CPU.Build.0 = Debug|x86 - {80F76D10-0B44-4D55-B4BD-DAEB5464090C}.Debug|Any CPU.ActiveCfg = Debug|x86 - {80F76D10-0B44-4D55-B4BD-DAEB5464090C}.Debug|x86.Build.0 = Debug|x86 - {80F76D10-0B44-4D55-B4BD-DAEB5464090C}.Debug|x86.ActiveCfg = Debug|x86 - {80F76D10-0B44-4D55-B4BD-DAEB5464090C}.Release|Any CPU.Build.0 = Release|x86 - {80F76D10-0B44-4D55-B4BD-DAEB5464090C}.Release|Any CPU.ActiveCfg = Release|x86 - {80F76D10-0B44-4D55-B4BD-DAEB5464090C}.Release|x86.Build.0 = Release|x86 - {80F76D10-0B44-4D55-B4BD-DAEB5464090C}.Release|x86.ActiveCfg = Release|x86 - {17F4D7E0-6933-4C2E-8714-FD7E98D625D5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {17F4D7E0-6933-4C2E-8714-FD7E98D625D5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {17F4D7E0-6933-4C2E-8714-FD7E98D625D5}.Debug|x86.Build.0 = Debug|Any CPU - {17F4D7E0-6933-4C2E-8714-FD7E98D625D5}.Debug|x86.ActiveCfg = Debug|Any CPU - {17F4D7E0-6933-4C2E-8714-FD7E98D625D5}.Release|Any CPU.Build.0 = Release|Any CPU - {17F4D7E0-6933-4C2E-8714-FD7E98D625D5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {17F4D7E0-6933-4C2E-8714-FD7E98D625D5}.Release|x86.Build.0 = Release|Any CPU - {17F4D7E0-6933-4C2E-8714-FD7E98D625D5}.Release|x86.ActiveCfg = Release|Any CPU - {83F15BA7-8478-4664-81BB-A82F146D88B3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {83F15BA7-8478-4664-81BB-A82F146D88B3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {83F15BA7-8478-4664-81BB-A82F146D88B3}.Debug|x86.Build.0 = Debug|Any CPU - {83F15BA7-8478-4664-81BB-A82F146D88B3}.Debug|x86.ActiveCfg = Debug|Any CPU - {83F15BA7-8478-4664-81BB-A82F146D88B3}.Release|Any CPU.Build.0 = Release|Any CPU - {83F15BA7-8478-4664-81BB-A82F146D88B3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {83F15BA7-8478-4664-81BB-A82F146D88B3}.Release|x86.Build.0 = Release|Any CPU - {83F15BA7-8478-4664-81BB-A82F146D88B3}.Release|x86.ActiveCfg = Release|Any CPU - {D68133BD-1E63-496E-9EDE-4FBDBF77B486}.Debug|Any CPU.Build.0 = net_2_0_Debug|Any CPU - {D68133BD-1E63-496E-9EDE-4FBDBF77B486}.Debug|Any CPU.ActiveCfg = net_4_0_Debug|Any CPU - {D68133BD-1E63-496E-9EDE-4FBDBF77B486}.Debug|x86.Build.0 = net_2_0_Debug|Any CPU - {D68133BD-1E63-496E-9EDE-4FBDBF77B486}.Debug|x86.ActiveCfg = net_4_0_Debug|Any CPU - {D68133BD-1E63-496E-9EDE-4FBDBF77B486}.Release|Any CPU.Build.0 = net_2_0_Debug|Any CPU - {D68133BD-1E63-496E-9EDE-4FBDBF77B486}.Release|Any CPU.ActiveCfg = net_4_0_Release|Any CPU - {D68133BD-1E63-496E-9EDE-4FBDBF77B486}.Release|x86.Build.0 = net_2_0_Debug|Any CPU - {D68133BD-1E63-496E-9EDE-4FBDBF77B486}.Release|x86.ActiveCfg = net_4_0_Release|Any CPU - {70966F84-74C9-4067-A379-0C674A929233}.Debug|Any CPU.Build.0 = Debug|Any CPU - {70966F84-74C9-4067-A379-0C674A929233}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {70966F84-74C9-4067-A379-0C674A929233}.Debug|x86.Build.0 = Debug|Any CPU - {70966F84-74C9-4067-A379-0C674A929233}.Debug|x86.ActiveCfg = Debug|Any CPU - {70966F84-74C9-4067-A379-0C674A929233}.Release|Any CPU.Build.0 = Release|Any CPU - {70966F84-74C9-4067-A379-0C674A929233}.Release|Any CPU.ActiveCfg = Release|Any CPU - {70966F84-74C9-4067-A379-0C674A929233}.Release|x86.Build.0 = Release|Any CPU - {70966F84-74C9-4067-A379-0C674A929233}.Release|x86.ActiveCfg = Release|Any CPU - {3B2A5653-EC97-4001-BB9B-D90F1AF2C371}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3B2A5653-EC97-4001-BB9B-D90F1AF2C371}.Debug|Any CPU.ActiveCfg = net_4_5_Debug|Any CPU - {3B2A5653-EC97-4001-BB9B-D90F1AF2C371}.Debug|x86.Build.0 = Debug|Any CPU - {3B2A5653-EC97-4001-BB9B-D90F1AF2C371}.Debug|x86.ActiveCfg = net_4_5_Debug|Any CPU - {3B2A5653-EC97-4001-BB9B-D90F1AF2C371}.Release|Any CPU.Build.0 = Release|Any CPU - {3B2A5653-EC97-4001-BB9B-D90F1AF2C371}.Release|Any CPU.ActiveCfg = net_4_5_Release|Any CPU - {3B2A5653-EC97-4001-BB9B-D90F1AF2C371}.Release|x86.Build.0 = Release|Any CPU - {3B2A5653-EC97-4001-BB9B-D90F1AF2C371}.Release|x86.ActiveCfg = net_4_5_Release|Any CPU - {53DCA265-3C3C-42F9-B647-F72BA678122B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {53DCA265-3C3C-42F9-B647-F72BA678122B}.Debug|Any CPU.ActiveCfg = net_4_5_Debug|Any CPU - {53DCA265-3C3C-42F9-B647-F72BA678122B}.Debug|x86.Build.0 = Debug|Any CPU - {53DCA265-3C3C-42F9-B647-F72BA678122B}.Debug|x86.ActiveCfg = net_4_5_Debug|Any CPU - {53DCA265-3C3C-42F9-B647-F72BA678122B}.Release|Any CPU.Build.0 = Release|Any CPU - {53DCA265-3C3C-42F9-B647-F72BA678122B}.Release|Any CPU.ActiveCfg = net_4_5_Release|Any CPU - {53DCA265-3C3C-42F9-B647-F72BA678122B}.Release|x86.Build.0 = Release|Any CPU - {53DCA265-3C3C-42F9-B647-F72BA678122B}.Release|x86.ActiveCfg = net_4_5_Release|Any CPU - {DC393B66-92ED-4CAD-AB25-CFEF23F3D7C6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DC393B66-92ED-4CAD-AB25-CFEF23F3D7C6}.Debug|Any CPU.ActiveCfg = net_4_5_Debug|Any CPU - {DC393B66-92ED-4CAD-AB25-CFEF23F3D7C6}.Debug|x86.Build.0 = Debug|Any CPU - {DC393B66-92ED-4CAD-AB25-CFEF23F3D7C6}.Debug|x86.ActiveCfg = net_4_5_Debug|Any CPU - {DC393B66-92ED-4CAD-AB25-CFEF23F3D7C6}.Release|Any CPU.Build.0 = Release|Any CPU - {DC393B66-92ED-4CAD-AB25-CFEF23F3D7C6}.Release|Any CPU.ActiveCfg = net_4_5_Release|Any CPU - {DC393B66-92ED-4CAD-AB25-CFEF23F3D7C6}.Release|x86.Build.0 = Release|Any CPU - {DC393B66-92ED-4CAD-AB25-CFEF23F3D7C6}.Release|x86.ActiveCfg = net_4_5_Release|Any CPU - {63D3B27A-D966-4902-90B3-30290E1692F1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {63D3B27A-D966-4902-90B3-30290E1692F1}.Debug|Any CPU.ActiveCfg = net_4_5_Debug|Any CPU - {63D3B27A-D966-4902-90B3-30290E1692F1}.Debug|x86.Build.0 = Debug|x86 - {63D3B27A-D966-4902-90B3-30290E1692F1}.Debug|x86.ActiveCfg = net_4_5_Debug|x86 - {63D3B27A-D966-4902-90B3-30290E1692F1}.Release|Any CPU.Build.0 = Release|Any CPU - {63D3B27A-D966-4902-90B3-30290E1692F1}.Release|Any CPU.ActiveCfg = net_4_5_Release|Any CPU - {63D3B27A-D966-4902-90B3-30290E1692F1}.Release|x86.Build.0 = Release|x86 - {63D3B27A-D966-4902-90B3-30290E1692F1}.Release|x86.ActiveCfg = net_4_5_Release|x86 - {52006F3F-3156-45DE-89D8-C4813694FBA4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {52006F3F-3156-45DE-89D8-C4813694FBA4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {52006F3F-3156-45DE-89D8-C4813694FBA4}.Debug|x86.Build.0 = Debug|Any CPU - {52006F3F-3156-45DE-89D8-C4813694FBA4}.Debug|x86.ActiveCfg = Debug|Any CPU - {52006F3F-3156-45DE-89D8-C4813694FBA4}.Release|Any CPU.Build.0 = Release|Any CPU - {52006F3F-3156-45DE-89D8-C4813694FBA4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {52006F3F-3156-45DE-89D8-C4813694FBA4}.Release|x86.Build.0 = Release|Any CPU - {52006F3F-3156-45DE-89D8-C4813694FBA4}.Release|x86.ActiveCfg = Release|Any CPU - {DCA2703D-250A-463E-A68A-07ED105AE6BD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DCA2703D-250A-463E-A68A-07ED105AE6BD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DCA2703D-250A-463E-A68A-07ED105AE6BD}.Debug|x86.Build.0 = Debug|Any CPU - {DCA2703D-250A-463E-A68A-07ED105AE6BD}.Debug|x86.ActiveCfg = Debug|Any CPU - {DCA2703D-250A-463E-A68A-07ED105AE6BD}.Release|Any CPU.Build.0 = Release|Any CPU - {DCA2703D-250A-463E-A68A-07ED105AE6BD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DCA2703D-250A-463E-A68A-07ED105AE6BD}.Release|x86.Build.0 = Release|Any CPU - {DCA2703D-250A-463E-A68A-07ED105AE6BD}.Release|x86.ActiveCfg = Release|Any CPU - {7C96B65D-28A5-4F28-A35B-8D83CE831EE8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7C96B65D-28A5-4F28-A35B-8D83CE831EE8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7C96B65D-28A5-4F28-A35B-8D83CE831EE8}.Debug|x86.Build.0 = Debug|Any CPU - {7C96B65D-28A5-4F28-A35B-8D83CE831EE8}.Debug|x86.ActiveCfg = Debug|Any CPU - {7C96B65D-28A5-4F28-A35B-8D83CE831EE8}.Release|Any CPU.Build.0 = Release|Any CPU - {7C96B65D-28A5-4F28-A35B-8D83CE831EE8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7C96B65D-28A5-4F28-A35B-8D83CE831EE8}.Release|x86.Build.0 = Release|Any CPU - {7C96B65D-28A5-4F28-A35B-8D83CE831EE8}.Release|x86.ActiveCfg = Release|Any CPU - {FC0FE702-A87D-4D70-A9B6-1ECCD611125F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {FC0FE702-A87D-4D70-A9B6-1ECCD611125F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {FC0FE702-A87D-4D70-A9B6-1ECCD611125F}.Debug|x86.Build.0 = Debug|Any CPU - {FC0FE702-A87D-4D70-A9B6-1ECCD611125F}.Debug|x86.ActiveCfg = Debug|Any CPU - {FC0FE702-A87D-4D70-A9B6-1ECCD611125F}.Release|Any CPU.Build.0 = Release|Any CPU - {FC0FE702-A87D-4D70-A9B6-1ECCD611125F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {FC0FE702-A87D-4D70-A9B6-1ECCD611125F}.Release|x86.Build.0 = Release|Any CPU - {FC0FE702-A87D-4D70-A9B6-1ECCD611125F}.Release|x86.ActiveCfg = Release|Any CPU - {A569DCC1-C608-45FD-B770-4F79335EF154}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0008FCE9-9EB4-4E2E-979B-553278E5BBA6}.Release|Any CPU.Build.0 = Release|Any CPU + {0008FCE9-9EB4-4E2E-979B-553278E5BBA6}.Release|x86.ActiveCfg = Release|Any CPU + {0008FCE9-9EB4-4E2E-979B-553278E5BBA6}.Release|x86.Build.0 = Release|Any CPU {A569DCC1-C608-45FD-B770-4F79335EF154}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A569DCC1-C608-45FD-B770-4F79335EF154}.Debug|x86.Build.0 = Debug|Any CPU + {A569DCC1-C608-45FD-B770-4F79335EF154}.Debug|Any CPU.Build.0 = Debug|Any CPU {A569DCC1-C608-45FD-B770-4F79335EF154}.Debug|x86.ActiveCfg = Debug|Any CPU - {A569DCC1-C608-45FD-B770-4F79335EF154}.Release|Any CPU.Build.0 = Release|Any CPU + {A569DCC1-C608-45FD-B770-4F79335EF154}.Debug|x86.Build.0 = Debug|Any CPU {A569DCC1-C608-45FD-B770-4F79335EF154}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A569DCC1-C608-45FD-B770-4F79335EF154}.Release|x86.Build.0 = Release|Any CPU + {A569DCC1-C608-45FD-B770-4F79335EF154}.Release|Any CPU.Build.0 = Release|Any CPU {A569DCC1-C608-45FD-B770-4F79335EF154}.Release|x86.ActiveCfg = Release|Any CPU - {1152B71B-3C05-4598-B20D-823B5D40559E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1152B71B-3C05-4598-B20D-823B5D40559E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1152B71B-3C05-4598-B20D-823B5D40559E}.Debug|x86.Build.0 = Debug|Any CPU - {1152B71B-3C05-4598-B20D-823B5D40559E}.Debug|x86.ActiveCfg = Debug|Any CPU - {1152B71B-3C05-4598-B20D-823B5D40559E}.Release|Any CPU.Build.0 = Release|Any CPU - {1152B71B-3C05-4598-B20D-823B5D40559E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1152B71B-3C05-4598-B20D-823B5D40559E}.Release|x86.Build.0 = Release|Any CPU - {1152B71B-3C05-4598-B20D-823B5D40559E}.Release|x86.ActiveCfg = Release|Any CPU - {3DF4060F-5EE0-41CF-8096-F27355FD5511}.Debug|x86.Build.0 = Debug|Any CPU - {3DF4060F-5EE0-41CF-8096-F27355FD5511}.Debug|x86.ActiveCfg = Debug|Any CPU - {3DF4060F-5EE0-41CF-8096-F27355FD5511}.Release|x86.Build.0 = Release|Any CPU - {3DF4060F-5EE0-41CF-8096-F27355FD5511}.Release|x86.ActiveCfg = Release|Any CPU - {E618A9CD-A39F-4925-A538-E8A3FEF24E54}.Debug|x86.Build.0 = Debug|Any CPU - {E618A9CD-A39F-4925-A538-E8A3FEF24E54}.Debug|x86.ActiveCfg = Debug|Any CPU - {E618A9CD-A39F-4925-A538-E8A3FEF24E54}.Release|x86.Build.0 = Release|Any CPU - {E618A9CD-A39F-4925-A538-E8A3FEF24E54}.Release|x86.ActiveCfg = Release|Any CPU - {0162E499-42D0-409B-AA25-EED21F75336B}.Debug|x86.Build.0 = Debug|Any CPU - {0162E499-42D0-409B-AA25-EED21F75336B}.Debug|x86.ActiveCfg = Debug|Any CPU - {0162E499-42D0-409B-AA25-EED21F75336B}.Release|x86.Build.0 = Release|Any CPU - {0162E499-42D0-409B-AA25-EED21F75336B}.Release|x86.ActiveCfg = Release|Any CPU - {0008FCE9-9EB4-4E2E-979B-553278E5BBA6}.Debug|x86.Build.0 = Debug|Any CPU - {0008FCE9-9EB4-4E2E-979B-553278E5BBA6}.Debug|x86.ActiveCfg = Debug|Any CPU - {0008FCE9-9EB4-4E2E-979B-553278E5BBA6}.Release|x86.Build.0 = Release|Any CPU - {0008FCE9-9EB4-4E2E-979B-553278E5BBA6}.Release|x86.ActiveCfg = Release|Any CPU - {6B1CFE35-DA17-4DEB-9C6E-227E5E251DA0}.Debug|x86.Build.0 = Debug|Any CPU - {6B1CFE35-DA17-4DEB-9C6E-227E5E251DA0}.Debug|x86.ActiveCfg = Debug|Any CPU - {6B1CFE35-DA17-4DEB-9C6E-227E5E251DA0}.Release|x86.Build.0 = Release|Any CPU - {6B1CFE35-DA17-4DEB-9C6E-227E5E251DA0}.Release|x86.ActiveCfg = Release|Any CPU - {64A3E5E6-90BF-47F6-94DF-68C94B62C817}.Debug|x86.Build.0 = Debug|Any CPU - {64A3E5E6-90BF-47F6-94DF-68C94B62C817}.Debug|x86.ActiveCfg = Debug|Any CPU - {64A3E5E6-90BF-47F6-94DF-68C94B62C817}.Release|x86.Build.0 = Release|Any CPU - {64A3E5E6-90BF-47F6-94DF-68C94B62C817}.Release|x86.ActiveCfg = Release|Any CPU - {D022A6CE-7438-41E8-AC64-F2DE18EC54C6}.Debug|x86.Build.0 = Debug|Any CPU - {D022A6CE-7438-41E8-AC64-F2DE18EC54C6}.Debug|x86.ActiveCfg = Debug|Any CPU - {D022A6CE-7438-41E8-AC64-F2DE18EC54C6}.Release|x86.Build.0 = Release|Any CPU - {D022A6CE-7438-41E8-AC64-F2DE18EC54C6}.Release|x86.ActiveCfg = Release|Any CPU - {4B8F0F98-8BE1-402B-AA8B-C8D548577B38}.Debug|x86.Build.0 = Debug|Any CPU - {4B8F0F98-8BE1-402B-AA8B-C8D548577B38}.Debug|x86.ActiveCfg = Debug|Any CPU - {4B8F0F98-8BE1-402B-AA8B-C8D548577B38}.Release|x86.Build.0 = Release|Any CPU - {4B8F0F98-8BE1-402B-AA8B-C8D548577B38}.Release|x86.ActiveCfg = Release|Any CPU - {F93E52FD-DA66-4CE5-A0CB-BCD902811122}.Debug|x86.Build.0 = Debug|Any CPU - {F93E52FD-DA66-4CE5-A0CB-BCD902811122}.Debug|x86.ActiveCfg = Debug|Any CPU - {F93E52FD-DA66-4CE5-A0CB-BCD902811122}.Release|x86.Build.0 = Release|Any CPU - {F93E52FD-DA66-4CE5-A0CB-BCD902811122}.Release|x86.ActiveCfg = Release|Any CPU - {7D5C266F-D6FF-4D14-B315-0C0FC6C4EF51}.Debug|x86.Build.0 = Debug|Any CPU - {7D5C266F-D6FF-4D14-B315-0C0FC6C4EF51}.Debug|x86.ActiveCfg = Debug|Any CPU - {7D5C266F-D6FF-4D14-B315-0C0FC6C4EF51}.Release|x86.Build.0 = Release|Any CPU - {7D5C266F-D6FF-4D14-B315-0C0FC6C4EF51}.Release|x86.ActiveCfg = Release|Any CPU - {9196DD8A-B4D4-4780-8742-C5762E547FC2}.Debug|x86.Build.0 = Debug|Any CPU - {9196DD8A-B4D4-4780-8742-C5762E547FC2}.Debug|x86.ActiveCfg = Debug|Any CPU - {9196DD8A-B4D4-4780-8742-C5762E547FC2}.Release|x86.Build.0 = Release|Any CPU - {9196DD8A-B4D4-4780-8742-C5762E547FC2}.Release|x86.ActiveCfg = Release|Any CPU - {1F1AC7CD-D154-45BB-8EAF-804CA8055F5A}.Debug|x86.Build.0 = Debug|Any CPU - {1F1AC7CD-D154-45BB-8EAF-804CA8055F5A}.Debug|x86.ActiveCfg = Debug|Any CPU - {1F1AC7CD-D154-45BB-8EAF-804CA8055F5A}.Release|x86.Build.0 = Release|Any CPU - {1F1AC7CD-D154-45BB-8EAF-804CA8055F5A}.Release|x86.ActiveCfg = Release|Any CPU - {DDE2A481-8271-4EAC-A330-8FA6A38D13D1}.Debug|x86.Build.0 = Debug|Any CPU - {DDE2A481-8271-4EAC-A330-8FA6A38D13D1}.Debug|x86.ActiveCfg = Debug|Any CPU - {DDE2A481-8271-4EAC-A330-8FA6A38D13D1}.Release|x86.Build.0 = Release|Any CPU - {DDE2A481-8271-4EAC-A330-8FA6A38D13D1}.Release|x86.ActiveCfg = Release|Any CPU - {4139CCF6-FB49-4A9D-B2CF-331E9EA3198D}.Debug|x86.Build.0 = Debug|Any CPU - {4139CCF6-FB49-4A9D-B2CF-331E9EA3198D}.Debug|x86.ActiveCfg = Debug|Any CPU - {4139CCF6-FB49-4A9D-B2CF-331E9EA3198D}.Release|x86.Build.0 = Release|Any CPU - {4139CCF6-FB49-4A9D-B2CF-331E9EA3198D}.Release|x86.ActiveCfg = Release|Any CPU - {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Debug|x86.Build.0 = Debug|Any CPU - {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Debug|x86.ActiveCfg = Debug|Any CPU - {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Release|x86.Build.0 = Release|Any CPU - {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1}.Release|x86.ActiveCfg = Release|Any CPU - {2FF700C2-A38A-48BD-A637-8CAFD4FE6237}.Debug|x86.Build.0 = Debug|Any CPU - {2FF700C2-A38A-48BD-A637-8CAFD4FE6237}.Debug|x86.ActiveCfg = Debug|Any CPU - {2FF700C2-A38A-48BD-A637-8CAFD4FE6237}.Release|x86.Build.0 = Release|Any CPU - {2FF700C2-A38A-48BD-A637-8CAFD4FE6237}.Release|x86.ActiveCfg = Release|Any CPU - {6222A3A1-83CE-47A3-A4E4-A018F82D44D8}.Debug|x86.Build.0 = Debug|Any CPU - {6222A3A1-83CE-47A3-A4E4-A018F82D44D8}.Debug|x86.ActiveCfg = Debug|Any CPU - {6222A3A1-83CE-47A3-A4E4-A018F82D44D8}.Release|x86.Build.0 = Release|Any CPU - {6222A3A1-83CE-47A3-A4E4-A018F82D44D8}.Release|x86.ActiveCfg = Release|Any CPU - {8035765F-D51F-4A0C-A746-2FD100E19419}.Debug|x86.Build.0 = Debug|Any CPU - {8035765F-D51F-4A0C-A746-2FD100E19419}.Debug|x86.ActiveCfg = Debug|Any CPU - {8035765F-D51F-4A0C-A746-2FD100E19419}.Release|x86.Build.0 = Release|Any CPU - {8035765F-D51F-4A0C-A746-2FD100E19419}.Release|x86.ActiveCfg = Release|Any CPU - {2748AD25-9C63-4E12-877B-4DCE96FBED54}.Debug|x86.Build.0 = Debug|Any CPU - {2748AD25-9C63-4E12-877B-4DCE96FBED54}.Debug|x86.ActiveCfg = Debug|Any CPU - {2748AD25-9C63-4E12-877B-4DCE96FBED54}.Release|x86.Build.0 = Release|Any CPU - {2748AD25-9C63-4E12-877B-4DCE96FBED54}.Release|x86.ActiveCfg = Release|Any CPU - {857CA1A3-FC88-4BE0-AB6A-D1EE772AB288}.Debug|x86.Build.0 = Debug|Any CPU - {857CA1A3-FC88-4BE0-AB6A-D1EE772AB288}.Debug|x86.ActiveCfg = Debug|Any CPU - {857CA1A3-FC88-4BE0-AB6A-D1EE772AB288}.Release|x86.Build.0 = Release|Any CPU - {857CA1A3-FC88-4BE0-AB6A-D1EE772AB288}.Release|x86.ActiveCfg = Release|Any CPU - {7E4A7172-7FF5-48D0-B719-7CD959DD1AC9}.Debug|x86.Build.0 = Debug|Any CPU - {7E4A7172-7FF5-48D0-B719-7CD959DD1AC9}.Debug|x86.ActiveCfg = Debug|Any CPU - {7E4A7172-7FF5-48D0-B719-7CD959DD1AC9}.Release|x86.Build.0 = Release|Any CPU - {7E4A7172-7FF5-48D0-B719-7CD959DD1AC9}.Release|x86.ActiveCfg = Release|Any CPU - {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}.Debug|x86.Build.0 = Debug|Any CPU - {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}.Debug|x86.ActiveCfg = Debug|Any CPU - {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}.Release|x86.Build.0 = Release|Any CPU - {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C}.Release|x86.ActiveCfg = Release|Any CPU - {AD6FAA08-D6F5-4DBA-AF85-F4DA9F40C3B5}.Debug|x86.Build.0 = Debug|Any CPU - {AD6FAA08-D6F5-4DBA-AF85-F4DA9F40C3B5}.Debug|x86.ActiveCfg = Debug|Any CPU - {AD6FAA08-D6F5-4DBA-AF85-F4DA9F40C3B5}.Release|x86.Build.0 = Debug|Any CPU - {AD6FAA08-D6F5-4DBA-AF85-F4DA9F40C3B5}.Release|x86.ActiveCfg = Debug|Any CPU - {4980B743-B32F-4aba-AABD-45E2CAD3568D}.Debug|x86.Build.0 = Debug|Any CPU - {4980B743-B32F-4aba-AABD-45E2CAD3568D}.Debug|x86.ActiveCfg = Debug|Any CPU - {4980B743-B32F-4aba-AABD-45E2CAD3568D}.Release|x86.Build.0 = Debug|Any CPU - {4980B743-B32F-4aba-AABD-45E2CAD3568D}.Release|x86.ActiveCfg = Debug|Any CPU - {1D18D788-F7EE-4585-A23B-34DC8EC63CB8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1D18D788-F7EE-4585-A23B-34DC8EC63CB8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1D18D788-F7EE-4585-A23B-34DC8EC63CB8}.Debug|x86.Build.0 = Debug|Any CPU - {1D18D788-F7EE-4585-A23B-34DC8EC63CB8}.Debug|x86.ActiveCfg = Debug|Any CPU - {1D18D788-F7EE-4585-A23B-34DC8EC63CB8}.Release|Any CPU.Build.0 = Release|Any CPU - {1D18D788-F7EE-4585-A23B-34DC8EC63CB8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1D18D788-F7EE-4585-A23B-34DC8EC63CB8}.Release|x86.Build.0 = Release|Any CPU - {1D18D788-F7EE-4585-A23B-34DC8EC63CB8}.Release|x86.ActiveCfg = Release|Any CPU - {EC06F96A-AEEC-49D6-B03D-AB87C6EB674C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {EC06F96A-AEEC-49D6-B03D-AB87C6EB674C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EC06F96A-AEEC-49D6-B03D-AB87C6EB674C}.Debug|x86.Build.0 = Debug|Any CPU - {EC06F96A-AEEC-49D6-B03D-AB87C6EB674C}.Debug|x86.ActiveCfg = Debug|Any CPU - {EC06F96A-AEEC-49D6-B03D-AB87C6EB674C}.Release|Any CPU.Build.0 = Release|Any CPU - {EC06F96A-AEEC-49D6-B03D-AB87C6EB674C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {EC06F96A-AEEC-49D6-B03D-AB87C6EB674C}.Release|x86.Build.0 = Release|Any CPU - {EC06F96A-AEEC-49D6-B03D-AB87C6EB674C}.Release|x86.ActiveCfg = Release|Any CPU - {A4C858C8-51B6-4265-A695-A20FCEBA1D19}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A4C858C8-51B6-4265-A695-A20FCEBA1D19}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A4C858C8-51B6-4265-A695-A20FCEBA1D19}.Debug|x86.Build.0 = Debug|Any CPU - {A4C858C8-51B6-4265-A695-A20FCEBA1D19}.Debug|x86.ActiveCfg = Debug|Any CPU - {A4C858C8-51B6-4265-A695-A20FCEBA1D19}.Release|Any CPU.Build.0 = Release|Any CPU - {A4C858C8-51B6-4265-A695-A20FCEBA1D19}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A4C858C8-51B6-4265-A695-A20FCEBA1D19}.Release|x86.Build.0 = Release|Any CPU - {A4C858C8-51B6-4265-A695-A20FCEBA1D19}.Release|x86.ActiveCfg = Release|Any CPU - {1F261725-6318-4434-A1B1-6C70CE4CD324}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1F261725-6318-4434-A1B1-6C70CE4CD324}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1F261725-6318-4434-A1B1-6C70CE4CD324}.Debug|x86.Build.0 = Debug|Any CPU - {1F261725-6318-4434-A1B1-6C70CE4CD324}.Debug|x86.ActiveCfg = Debug|Any CPU - {1F261725-6318-4434-A1B1-6C70CE4CD324}.Release|Any CPU.Build.0 = Release|Any CPU - {1F261725-6318-4434-A1B1-6C70CE4CD324}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1F261725-6318-4434-A1B1-6C70CE4CD324}.Release|x86.Build.0 = Release|Any CPU - {1F261725-6318-4434-A1B1-6C70CE4CD324}.Release|x86.ActiveCfg = Release|Any CPU - {DFB936AD-90EE-4B4F-941E-4F4A636F0D92}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DFB936AD-90EE-4B4F-941E-4F4A636F0D92}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DFB936AD-90EE-4B4F-941E-4F4A636F0D92}.Debug|x86.Build.0 = Debug|Any CPU - {DFB936AD-90EE-4B4F-941E-4F4A636F0D92}.Debug|x86.ActiveCfg = Debug|Any CPU - {DFB936AD-90EE-4B4F-941E-4F4A636F0D92}.Release|Any CPU.Build.0 = Release|Any CPU - {DFB936AD-90EE-4B4F-941E-4F4A636F0D92}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DFB936AD-90EE-4B4F-941E-4F4A636F0D92}.Release|x86.Build.0 = Release|Any CPU - {DFB936AD-90EE-4B4F-941E-4F4A636F0D92}.Release|x86.ActiveCfg = Release|Any CPU - {8AA421C8-D7AF-4957-9F43-5135328ACB24}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8AA421C8-D7AF-4957-9F43-5135328ACB24}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8AA421C8-D7AF-4957-9F43-5135328ACB24}.Debug|x86.Build.0 = Debug|Any CPU - {8AA421C8-D7AF-4957-9F43-5135328ACB24}.Debug|x86.ActiveCfg = Debug|Any CPU - {8AA421C8-D7AF-4957-9F43-5135328ACB24}.Release|Any CPU.Build.0 = Release|Any CPU - {8AA421C8-D7AF-4957-9F43-5135328ACB24}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8AA421C8-D7AF-4957-9F43-5135328ACB24}.Release|x86.Build.0 = Release|Any CPU - {8AA421C8-D7AF-4957-9F43-5135328ACB24}.Release|x86.ActiveCfg = Release|Any CPU - {984CC812-9470-4A13-AFF9-CC44068D666C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {984CC812-9470-4A13-AFF9-CC44068D666C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {984CC812-9470-4A13-AFF9-CC44068D666C}.Debug|x86.Build.0 = Debug|Any CPU - {984CC812-9470-4A13-AFF9-CC44068D666C}.Debug|x86.ActiveCfg = Debug|Any CPU - {984CC812-9470-4A13-AFF9-CC44068D666C}.Release|Any CPU.Build.0 = Release|Any CPU - {984CC812-9470-4A13-AFF9-CC44068D666C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {984CC812-9470-4A13-AFF9-CC44068D666C}.Release|x86.Build.0 = Release|Any CPU - {984CC812-9470-4A13-AFF9-CC44068D666C}.Release|x86.ActiveCfg = Release|Any CPU - {44A8DE09-CAB9-49D8-9CFC-5EB0A552F181}.Debug|Any CPU.Build.0 = Debug|Any CPU - {44A8DE09-CAB9-49D8-9CFC-5EB0A552F181}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {44A8DE09-CAB9-49D8-9CFC-5EB0A552F181}.Debug|x86.Build.0 = Debug|Any CPU - {44A8DE09-CAB9-49D8-9CFC-5EB0A552F181}.Debug|x86.ActiveCfg = Debug|Any CPU - {44A8DE09-CAB9-49D8-9CFC-5EB0A552F181}.Release|Any CPU.Build.0 = Release|Any CPU - {44A8DE09-CAB9-49D8-9CFC-5EB0A552F181}.Release|Any CPU.ActiveCfg = Release|Any CPU - {44A8DE09-CAB9-49D8-9CFC-5EB0A552F181}.Release|x86.Build.0 = Release|Any CPU - {44A8DE09-CAB9-49D8-9CFC-5EB0A552F181}.Release|x86.ActiveCfg = Release|Any CPU - {E2FD63DA-8478-4066-934C-DA82A852C83A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E2FD63DA-8478-4066-934C-DA82A852C83A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E2FD63DA-8478-4066-934C-DA82A852C83A}.Debug|x86.Build.0 = Debug|Any CPU - {E2FD63DA-8478-4066-934C-DA82A852C83A}.Debug|x86.ActiveCfg = Debug|Any CPU - {E2FD63DA-8478-4066-934C-DA82A852C83A}.Release|Any CPU.Build.0 = Release|Any CPU - {E2FD63DA-8478-4066-934C-DA82A852C83A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E2FD63DA-8478-4066-934C-DA82A852C83A}.Release|x86.Build.0 = Release|Any CPU - {E2FD63DA-8478-4066-934C-DA82A852C83A}.Release|x86.ActiveCfg = Release|Any CPU - {5186325C-DD7F-4246-9BE7-3F384EFBF5A6}.Debug|Any CPU.Build.0 = Debug|x86 + {A569DCC1-C608-45FD-B770-4F79335EF154}.Release|x86.Build.0 = Release|Any CPU {5186325C-DD7F-4246-9BE7-3F384EFBF5A6}.Debug|Any CPU.ActiveCfg = Debug|x86 - {5186325C-DD7F-4246-9BE7-3F384EFBF5A6}.Debug|x86.Build.0 = Debug|x86 + {5186325C-DD7F-4246-9BE7-3F384EFBF5A6}.Debug|Any CPU.Build.0 = Debug|x86 {5186325C-DD7F-4246-9BE7-3F384EFBF5A6}.Debug|x86.ActiveCfg = Debug|x86 - {5186325C-DD7F-4246-9BE7-3F384EFBF5A6}.Release|Any CPU.Build.0 = Release|x86 + {5186325C-DD7F-4246-9BE7-3F384EFBF5A6}.Debug|x86.Build.0 = Debug|x86 {5186325C-DD7F-4246-9BE7-3F384EFBF5A6}.Release|Any CPU.ActiveCfg = Release|x86 - {5186325C-DD7F-4246-9BE7-3F384EFBF5A6}.Release|x86.Build.0 = Release|x86 + {5186325C-DD7F-4246-9BE7-3F384EFBF5A6}.Release|Any CPU.Build.0 = Release|x86 {5186325C-DD7F-4246-9BE7-3F384EFBF5A6}.Release|x86.ActiveCfg = Release|x86 - {B5D8C3E6-42EC-4D4B-AD05-3644B32563EF}.Debug|Any CPU.Build.0 = Debug|x86 + {5186325C-DD7F-4246-9BE7-3F384EFBF5A6}.Release|x86.Build.0 = Release|x86 {B5D8C3E6-42EC-4D4B-AD05-3644B32563EF}.Debug|Any CPU.ActiveCfg = Debug|x86 - {B5D8C3E6-42EC-4D4B-AD05-3644B32563EF}.Debug|x86.Build.0 = Debug|x86 + {B5D8C3E6-42EC-4D4B-AD05-3644B32563EF}.Debug|Any CPU.Build.0 = Debug|x86 {B5D8C3E6-42EC-4D4B-AD05-3644B32563EF}.Debug|x86.ActiveCfg = Debug|x86 - {B5D8C3E6-42EC-4D4B-AD05-3644B32563EF}.Release|Any CPU.Build.0 = Release|x86 + {B5D8C3E6-42EC-4D4B-AD05-3644B32563EF}.Debug|x86.Build.0 = Debug|x86 {B5D8C3E6-42EC-4D4B-AD05-3644B32563EF}.Release|Any CPU.ActiveCfg = Release|x86 - {B5D8C3E6-42EC-4D4B-AD05-3644B32563EF}.Release|x86.Build.0 = Release|x86 + {B5D8C3E6-42EC-4D4B-AD05-3644B32563EF}.Release|Any CPU.Build.0 = Release|x86 {B5D8C3E6-42EC-4D4B-AD05-3644B32563EF}.Release|x86.ActiveCfg = Release|x86 - {3EAA45A9-735C-4AC7-A799-947B93EA449D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3EAA45A9-735C-4AC7-A799-947B93EA449D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3EAA45A9-735C-4AC7-A799-947B93EA449D}.Debug|x86.Build.0 = Debug|Any CPU - {3EAA45A9-735C-4AC7-A799-947B93EA449D}.Debug|x86.ActiveCfg = Debug|Any CPU - {3EAA45A9-735C-4AC7-A799-947B93EA449D}.Release|Any CPU.Build.0 = Release|Any CPU - {3EAA45A9-735C-4AC7-A799-947B93EA449D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3EAA45A9-735C-4AC7-A799-947B93EA449D}.Release|x86.Build.0 = Release|Any CPU - {3EAA45A9-735C-4AC7-A799-947B93EA449D}.Release|x86.ActiveCfg = Release|Any CPU - DC88D67C-E6B5-4994-9FA9-D4AB0E162FB3.Debug|Any CPU.Build.0 = Debug|Any CPU - DC88D67C-E6B5-4994-9FA9-D4AB0E162FB3.Debug|Any CPU.ActiveCfg = Debug|Any CPU - DC88D67C-E6B5-4994-9FA9-D4AB0E162FB3.Debug|x86.Build.0 = Debug|Any CPU - DC88D67C-E6B5-4994-9FA9-D4AB0E162FB3.Debug|x86.ActiveCfg = Debug|Any CPU - DC88D67C-E6B5-4994-9FA9-D4AB0E162FB3.Release|Any CPU.Build.0 = Release|Any CPU - DC88D67C-E6B5-4994-9FA9-D4AB0E162FB3.Release|Any CPU.ActiveCfg = Release|Any CPU - DC88D67C-E6B5-4994-9FA9-D4AB0E162FB3.Release|x86.Build.0 = Release|Any CPU - DC88D67C-E6B5-4994-9FA9-D4AB0E162FB3.Release|x86.ActiveCfg = Release|Any CPU - {66A378A1-E9F4-4AD5-8946-D0EC06C2902F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {66A378A1-E9F4-4AD5-8946-D0EC06C2902F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {66A378A1-E9F4-4AD5-8946-D0EC06C2902F}.Debug|x86.Build.0 = Debug|Any CPU - {66A378A1-E9F4-4AD5-8946-D0EC06C2902F}.Debug|x86.ActiveCfg = Debug|Any CPU - {66A378A1-E9F4-4AD5-8946-D0EC06C2902F}.Release|Any CPU.Build.0 = Release|Any CPU - {66A378A1-E9F4-4AD5-8946-D0EC06C2902F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {66A378A1-E9F4-4AD5-8946-D0EC06C2902F}.Release|x86.Build.0 = Release|Any CPU - {66A378A1-E9F4-4AD5-8946-D0EC06C2902F}.Release|x86.ActiveCfg = Release|Any CPU - {9A9D6FD4-6A2E-455D-ACC3-DDA775FE9865}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9A9D6FD4-6A2E-455D-ACC3-DDA775FE9865}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9A9D6FD4-6A2E-455D-ACC3-DDA775FE9865}.Debug|x86.Build.0 = Debug|Any CPU - {9A9D6FD4-6A2E-455D-ACC3-DDA775FE9865}.Debug|x86.ActiveCfg = Debug|Any CPU - {9A9D6FD4-6A2E-455D-ACC3-DDA775FE9865}.Release|Any CPU.Build.0 = Release|Any CPU - {9A9D6FD4-6A2E-455D-ACC3-DDA775FE9865}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9A9D6FD4-6A2E-455D-ACC3-DDA775FE9865}.Release|x86.Build.0 = Release|Any CPU - {9A9D6FD4-6A2E-455D-ACC3-DDA775FE9865}.Release|x86.ActiveCfg = Release|Any CPU - {943DBBB3-E84E-4CF4-917C-C05AFA8743C1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {943DBBB3-E84E-4CF4-917C-C05AFA8743C1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {943DBBB3-E84E-4CF4-917C-C05AFA8743C1}.Debug|x86.Build.0 = Debug|Any CPU - {943DBBB3-E84E-4CF4-917C-C05AFA8743C1}.Debug|x86.ActiveCfg = Debug|Any CPU - {943DBBB3-E84E-4CF4-917C-C05AFA8743C1}.Release|Any CPU.Build.0 = Release|Any CPU - {943DBBB3-E84E-4CF4-917C-C05AFA8743C1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {943DBBB3-E84E-4CF4-917C-C05AFA8743C1}.Release|x86.Build.0 = Release|Any CPU - {943DBBB3-E84E-4CF4-917C-C05AFA8743C1}.Release|x86.ActiveCfg = Release|Any CPU - {78CC29AC-CC79-4355-B1F2-97936DF198AC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {78CC29AC-CC79-4355-B1F2-97936DF198AC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {78CC29AC-CC79-4355-B1F2-97936DF198AC}.Debug|x86.Build.0 = Debug|Any CPU - {78CC29AC-CC79-4355-B1F2-97936DF198AC}.Debug|x86.ActiveCfg = Debug|Any CPU - {78CC29AC-CC79-4355-B1F2-97936DF198AC}.Release|Any CPU.Build.0 = Release|Any CPU - {78CC29AC-CC79-4355-B1F2-97936DF198AC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {78CC29AC-CC79-4355-B1F2-97936DF198AC}.Release|x86.Build.0 = Release|Any CPU - {78CC29AC-CC79-4355-B1F2-97936DF198AC}.Release|x86.ActiveCfg = Release|Any CPU - {88DA149F-21B2-48AB-82C4-28FB6BDFD783}.Debug|Any CPU.Build.0 = Debug|Any CPU - {88DA149F-21B2-48AB-82C4-28FB6BDFD783}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {88DA149F-21B2-48AB-82C4-28FB6BDFD783}.Debug|x86.Build.0 = Debug|Any CPU - {88DA149F-21B2-48AB-82C4-28FB6BDFD783}.Debug|x86.ActiveCfg = Debug|Any CPU - {88DA149F-21B2-48AB-82C4-28FB6BDFD783}.Release|Any CPU.Build.0 = Release|Any CPU - {88DA149F-21B2-48AB-82C4-28FB6BDFD783}.Release|Any CPU.ActiveCfg = Release|Any CPU - {88DA149F-21B2-48AB-82C4-28FB6BDFD783}.Release|x86.Build.0 = Release|Any CPU - {88DA149F-21B2-48AB-82C4-28FB6BDFD783}.Release|x86.ActiveCfg = Release|Any CPU - {0B12A079-B2DB-42B9-8A8E-AA5CBC2B3225}.Debug|Any CPU.Build.0 = Debug|x86 - {0B12A079-B2DB-42B9-8A8E-AA5CBC2B3225}.Debug|Any CPU.ActiveCfg = Debug|x86 - {0B12A079-B2DB-42B9-8A8E-AA5CBC2B3225}.Debug|x86.Build.0 = Debug|x86 - {0B12A079-B2DB-42B9-8A8E-AA5CBC2B3225}.Debug|x86.ActiveCfg = Debug|x86 - {0B12A079-B2DB-42B9-8A8E-AA5CBC2B3225}.Release|Any CPU.Build.0 = Release|x86 - {0B12A079-B2DB-42B9-8A8E-AA5CBC2B3225}.Release|Any CPU.ActiveCfg = Release|x86 - {0B12A079-B2DB-42B9-8A8E-AA5CBC2B3225}.Release|x86.Build.0 = Release|x86 - {0B12A079-B2DB-42B9-8A8E-AA5CBC2B3225}.Release|x86.ActiveCfg = Release|x86 - {D781721F-C2A7-4E95-B76F-247170AC3B13}.Debug|Any CPU.Build.0 = Debug|x86 - {D781721F-C2A7-4E95-B76F-247170AC3B13}.Debug|Any CPU.ActiveCfg = Debug|x86 - {D781721F-C2A7-4E95-B76F-247170AC3B13}.Debug|x86.Build.0 = Debug|x86 - {D781721F-C2A7-4E95-B76F-247170AC3B13}.Debug|x86.ActiveCfg = Debug|x86 - {D781721F-C2A7-4E95-B76F-247170AC3B13}.Release|Any CPU.Build.0 = Release|x86 - {D781721F-C2A7-4E95-B76F-247170AC3B13}.Release|Any CPU.ActiveCfg = Release|x86 - {D781721F-C2A7-4E95-B76F-247170AC3B13}.Release|x86.Build.0 = Release|x86 - {D781721F-C2A7-4E95-B76F-247170AC3B13}.Release|x86.ActiveCfg = Release|x86 - {A9F12710-24E4-46D4-832C-6ECB395B9EAD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B5D8C3E6-42EC-4D4B-AD05-3644B32563EF}.Release|x86.Build.0 = Release|x86 + {AE4AB0FA-6087-4480-AF37-0FA1452B3DA1}.Debug|Any CPU.ActiveCfg = Debug|x86 + {AE4AB0FA-6087-4480-AF37-0FA1452B3DA1}.Debug|Any CPU.Build.0 = Debug|x86 + {AE4AB0FA-6087-4480-AF37-0FA1452B3DA1}.Debug|x86.ActiveCfg = Debug|x86 + {AE4AB0FA-6087-4480-AF37-0FA1452B3DA1}.Debug|x86.Build.0 = Debug|x86 + {AE4AB0FA-6087-4480-AF37-0FA1452B3DA1}.Release|Any CPU.ActiveCfg = Release|x86 + {AE4AB0FA-6087-4480-AF37-0FA1452B3DA1}.Release|Any CPU.Build.0 = Release|x86 + {AE4AB0FA-6087-4480-AF37-0FA1452B3DA1}.Release|x86.ActiveCfg = Release|x86 + {AE4AB0FA-6087-4480-AF37-0FA1452B3DA1}.Release|x86.Build.0 = Release|x86 + {56E98A01-8398-4A08-9578-C7337711A52B}.Debug|Any CPU.ActiveCfg = Debug|x86 + {56E98A01-8398-4A08-9578-C7337711A52B}.Debug|Any CPU.Build.0 = Debug|x86 + {56E98A01-8398-4A08-9578-C7337711A52B}.Debug|x86.ActiveCfg = Debug|x86 + {56E98A01-8398-4A08-9578-C7337711A52B}.Debug|x86.Build.0 = Debug|x86 + {56E98A01-8398-4A08-9578-C7337711A52B}.Release|Any CPU.ActiveCfg = Release|x86 + {56E98A01-8398-4A08-9578-C7337711A52B}.Release|Any CPU.Build.0 = Release|x86 + {56E98A01-8398-4A08-9578-C7337711A52B}.Release|x86.ActiveCfg = Release|x86 + {56E98A01-8398-4A08-9578-C7337711A52B}.Release|x86.Build.0 = Release|x86 + {A406803B-C584-43A3-BCEE-A0BB3132CB5F}.Debug|Any CPU.ActiveCfg = Debug|x86 + {A406803B-C584-43A3-BCEE-A0BB3132CB5F}.Debug|Any CPU.Build.0 = Debug|x86 + {A406803B-C584-43A3-BCEE-A0BB3132CB5F}.Debug|x86.ActiveCfg = Debug|x86 + {A406803B-C584-43A3-BCEE-A0BB3132CB5F}.Debug|x86.Build.0 = Debug|x86 + {A406803B-C584-43A3-BCEE-A0BB3132CB5F}.Release|Any CPU.ActiveCfg = Release|x86 + {A406803B-C584-43A3-BCEE-A0BB3132CB5F}.Release|Any CPU.Build.0 = Release|x86 + {A406803B-C584-43A3-BCEE-A0BB3132CB5F}.Release|x86.ActiveCfg = Release|x86 + {A406803B-C584-43A3-BCEE-A0BB3132CB5F}.Release|x86.Build.0 = Release|x86 + {1B753D7F-7C77-4D5E-B928-02982690879C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1B753D7F-7C77-4D5E-B928-02982690879C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1B753D7F-7C77-4D5E-B928-02982690879C}.Debug|x86.ActiveCfg = Debug|Any CPU + {1B753D7F-7C77-4D5E-B928-02982690879C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1B753D7F-7C77-4D5E-B928-02982690879C}.Release|Any CPU.Build.0 = Release|Any CPU + {1B753D7F-7C77-4D5E-B928-02982690879C}.Release|x86.ActiveCfg = Release|Any CPU + {4B2239FF-8FD6-431D-9D22-1B8049BA6917}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {4B2239FF-8FD6-431D-9D22-1B8049BA6917}.Debug|Any CPU.Build.0 = Debug|Any CPU + {4B2239FF-8FD6-431D-9D22-1B8049BA6917}.Debug|x86.ActiveCfg = Debug|Any CPU + {4B2239FF-8FD6-431D-9D22-1B8049BA6917}.Debug|x86.Build.0 = Debug|Any CPU + {4B2239FF-8FD6-431D-9D22-1B8049BA6917}.Release|Any CPU.ActiveCfg = Release|Any CPU + {4B2239FF-8FD6-431D-9D22-1B8049BA6917}.Release|Any CPU.Build.0 = Release|Any CPU + {4B2239FF-8FD6-431D-9D22-1B8049BA6917}.Release|x86.ActiveCfg = Release|Any CPU + {4B2239FF-8FD6-431D-9D22-1B8049BA6917}.Release|x86.Build.0 = Release|Any CPU + {E16B73CA-3603-47EE-915E-6F8B2A07304B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E16B73CA-3603-47EE-915E-6F8B2A07304B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E16B73CA-3603-47EE-915E-6F8B2A07304B}.Debug|x86.ActiveCfg = Debug|Any CPU + {E16B73CA-3603-47EE-915E-6F8B2A07304B}.Debug|x86.Build.0 = Debug|Any CPU + {E16B73CA-3603-47EE-915E-6F8B2A07304B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E16B73CA-3603-47EE-915E-6F8B2A07304B}.Release|Any CPU.Build.0 = Release|Any CPU + {E16B73CA-3603-47EE-915E-6F8B2A07304B}.Release|x86.ActiveCfg = Release|Any CPU + {E16B73CA-3603-47EE-915E-6F8B2A07304B}.Release|x86.Build.0 = Release|Any CPU + {35D002D7-C78B-44FB-92AA-104BEB431678}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {35D002D7-C78B-44FB-92AA-104BEB431678}.Debug|Any CPU.Build.0 = Debug|Any CPU + {35D002D7-C78B-44FB-92AA-104BEB431678}.Debug|x86.ActiveCfg = Debug|Any CPU + {35D002D7-C78B-44FB-92AA-104BEB431678}.Debug|x86.Build.0 = Debug|Any CPU + {35D002D7-C78B-44FB-92AA-104BEB431678}.Release|Any CPU.ActiveCfg = Release|Any CPU + {35D002D7-C78B-44FB-92AA-104BEB431678}.Release|Any CPU.Build.0 = Release|Any CPU + {35D002D7-C78B-44FB-92AA-104BEB431678}.Release|x86.ActiveCfg = Release|Any CPU + {35D002D7-C78B-44FB-92AA-104BEB431678}.Release|x86.Build.0 = Release|Any CPU + {2B232C7E-CFB6-4B73-A1B8-134A8A2ED4F7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {2B232C7E-CFB6-4B73-A1B8-134A8A2ED4F7}.Debug|Any CPU.Build.0 = Debug|Any CPU + {2B232C7E-CFB6-4B73-A1B8-134A8A2ED4F7}.Debug|x86.ActiveCfg = Debug|Any CPU + {2B232C7E-CFB6-4B73-A1B8-134A8A2ED4F7}.Debug|x86.Build.0 = Debug|Any CPU + {2B232C7E-CFB6-4B73-A1B8-134A8A2ED4F7}.Release|Any CPU.ActiveCfg = Release|Any CPU + {2B232C7E-CFB6-4B73-A1B8-134A8A2ED4F7}.Release|Any CPU.Build.0 = Release|Any CPU + {2B232C7E-CFB6-4B73-A1B8-134A8A2ED4F7}.Release|x86.ActiveCfg = Release|Any CPU + {2B232C7E-CFB6-4B73-A1B8-134A8A2ED4F7}.Release|x86.Build.0 = Release|Any CPU + {40CA84D4-ACFC-4646-9CDD-B87262D34093}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {40CA84D4-ACFC-4646-9CDD-B87262D34093}.Debug|Any CPU.Build.0 = Debug|Any CPU + {40CA84D4-ACFC-4646-9CDD-B87262D34093}.Debug|x86.ActiveCfg = Debug|Any CPU + {40CA84D4-ACFC-4646-9CDD-B87262D34093}.Debug|x86.Build.0 = Debug|Any CPU + {40CA84D4-ACFC-4646-9CDD-B87262D34093}.Release|Any CPU.ActiveCfg = Release|Any CPU + {40CA84D4-ACFC-4646-9CDD-B87262D34093}.Release|Any CPU.Build.0 = Release|Any CPU + {40CA84D4-ACFC-4646-9CDD-B87262D34093}.Release|x86.ActiveCfg = Release|Any CPU + {40CA84D4-ACFC-4646-9CDD-B87262D34093}.Release|x86.Build.0 = Release|Any CPU + {97CA9CE5-B966-48DF-BB59-F00FFC534B1F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {97CA9CE5-B966-48DF-BB59-F00FFC534B1F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {97CA9CE5-B966-48DF-BB59-F00FFC534B1F}.Debug|x86.ActiveCfg = Debug|Any CPU + {97CA9CE5-B966-48DF-BB59-F00FFC534B1F}.Debug|x86.Build.0 = Debug|Any CPU + {97CA9CE5-B966-48DF-BB59-F00FFC534B1F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {97CA9CE5-B966-48DF-BB59-F00FFC534B1F}.Release|Any CPU.Build.0 = Release|Any CPU + {97CA9CE5-B966-48DF-BB59-F00FFC534B1F}.Release|x86.ActiveCfg = Release|Any CPU + {97CA9CE5-B966-48DF-BB59-F00FFC534B1F}.Release|x86.Build.0 = Release|Any CPU + {0162E499-42D0-409B-AA25-EED21F75336B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0162E499-42D0-409B-AA25-EED21F75336B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0162E499-42D0-409B-AA25-EED21F75336B}.Debug|x86.ActiveCfg = Debug|Any CPU + {0162E499-42D0-409B-AA25-EED21F75336B}.Debug|x86.Build.0 = Debug|Any CPU + {0162E499-42D0-409B-AA25-EED21F75336B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0162E499-42D0-409B-AA25-EED21F75336B}.Release|Any CPU.Build.0 = Release|Any CPU + {0162E499-42D0-409B-AA25-EED21F75336B}.Release|x86.ActiveCfg = Release|Any CPU + {0162E499-42D0-409B-AA25-EED21F75336B}.Release|x86.Build.0 = Release|Any CPU + {E618A9CD-A39F-4925-A538-E8A3FEF24E54}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E618A9CD-A39F-4925-A538-E8A3FEF24E54}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E618A9CD-A39F-4925-A538-E8A3FEF24E54}.Debug|x86.ActiveCfg = Debug|Any CPU + {E618A9CD-A39F-4925-A538-E8A3FEF24E54}.Debug|x86.Build.0 = Debug|Any CPU + {E618A9CD-A39F-4925-A538-E8A3FEF24E54}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E618A9CD-A39F-4925-A538-E8A3FEF24E54}.Release|Any CPU.Build.0 = Release|Any CPU + {E618A9CD-A39F-4925-A538-E8A3FEF24E54}.Release|x86.ActiveCfg = Release|Any CPU + {E618A9CD-A39F-4925-A538-E8A3FEF24E54}.Release|x86.Build.0 = Release|Any CPU + {DCA2703D-250A-463E-A68A-07ED105AE6BD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DCA2703D-250A-463E-A68A-07ED105AE6BD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DCA2703D-250A-463E-A68A-07ED105AE6BD}.Debug|x86.ActiveCfg = Debug|Any CPU + {DCA2703D-250A-463E-A68A-07ED105AE6BD}.Debug|x86.Build.0 = Debug|Any CPU + {DCA2703D-250A-463E-A68A-07ED105AE6BD}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DCA2703D-250A-463E-A68A-07ED105AE6BD}.Release|Any CPU.Build.0 = Release|Any CPU + {DCA2703D-250A-463E-A68A-07ED105AE6BD}.Release|x86.ActiveCfg = Release|Any CPU + {DCA2703D-250A-463E-A68A-07ED105AE6BD}.Release|x86.Build.0 = Release|Any CPU + {FC0FE702-A87D-4D70-A9B6-1ECCD611125F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {FC0FE702-A87D-4D70-A9B6-1ECCD611125F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {FC0FE702-A87D-4D70-A9B6-1ECCD611125F}.Debug|x86.ActiveCfg = Debug|Any CPU + {FC0FE702-A87D-4D70-A9B6-1ECCD611125F}.Debug|x86.Build.0 = Debug|Any CPU + {FC0FE702-A87D-4D70-A9B6-1ECCD611125F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {FC0FE702-A87D-4D70-A9B6-1ECCD611125F}.Release|Any CPU.Build.0 = Release|Any CPU + {FC0FE702-A87D-4D70-A9B6-1ECCD611125F}.Release|x86.ActiveCfg = Release|Any CPU + {FC0FE702-A87D-4D70-A9B6-1ECCD611125F}.Release|x86.Build.0 = Release|Any CPU + {DFB936AD-90EE-4B4F-941E-4F4A636F0D92}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {DFB936AD-90EE-4B4F-941E-4F4A636F0D92}.Debug|Any CPU.Build.0 = Debug|Any CPU + {DFB936AD-90EE-4B4F-941E-4F4A636F0D92}.Debug|x86.ActiveCfg = Debug|Any CPU + {DFB936AD-90EE-4B4F-941E-4F4A636F0D92}.Debug|x86.Build.0 = Debug|Any CPU + {DFB936AD-90EE-4B4F-941E-4F4A636F0D92}.Release|Any CPU.ActiveCfg = Release|Any CPU + {DFB936AD-90EE-4B4F-941E-4F4A636F0D92}.Release|Any CPU.Build.0 = Release|Any CPU + {DFB936AD-90EE-4B4F-941E-4F4A636F0D92}.Release|x86.ActiveCfg = Release|Any CPU + {DFB936AD-90EE-4B4F-941E-4F4A636F0D92}.Release|x86.Build.0 = Release|Any CPU + {8AA421C8-D7AF-4957-9F43-5135328ACB24}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8AA421C8-D7AF-4957-9F43-5135328ACB24}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8AA421C8-D7AF-4957-9F43-5135328ACB24}.Debug|x86.ActiveCfg = Debug|Any CPU + {8AA421C8-D7AF-4957-9F43-5135328ACB24}.Debug|x86.Build.0 = Debug|Any CPU + {8AA421C8-D7AF-4957-9F43-5135328ACB24}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8AA421C8-D7AF-4957-9F43-5135328ACB24}.Release|Any CPU.Build.0 = Release|Any CPU + {8AA421C8-D7AF-4957-9F43-5135328ACB24}.Release|x86.ActiveCfg = Release|Any CPU + {8AA421C8-D7AF-4957-9F43-5135328ACB24}.Release|x86.Build.0 = Release|Any CPU {A9F12710-24E4-46D4-832C-6ECB395B9EAD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A9F12710-24E4-46D4-832C-6ECB395B9EAD}.Debug|x86.Build.0 = Debug|Any CPU + {A9F12710-24E4-46D4-832C-6ECB395B9EAD}.Debug|Any CPU.Build.0 = Debug|Any CPU {A9F12710-24E4-46D4-832C-6ECB395B9EAD}.Debug|x86.ActiveCfg = Debug|Any CPU - {A9F12710-24E4-46D4-832C-6ECB395B9EAD}.Release|Any CPU.Build.0 = Release|Any CPU + {A9F12710-24E4-46D4-832C-6ECB395B9EAD}.Debug|x86.Build.0 = Debug|Any CPU {A9F12710-24E4-46D4-832C-6ECB395B9EAD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A9F12710-24E4-46D4-832C-6ECB395B9EAD}.Release|x86.Build.0 = Release|Any CPU + {A9F12710-24E4-46D4-832C-6ECB395B9EAD}.Release|Any CPU.Build.0 = Release|Any CPU {A9F12710-24E4-46D4-832C-6ECB395B9EAD}.Release|x86.ActiveCfg = Release|Any CPU - {B7823AE9-4B43-4859-8796-2EBDC116FBB8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A9F12710-24E4-46D4-832C-6ECB395B9EAD}.Release|x86.Build.0 = Release|Any CPU {B7823AE9-4B43-4859-8796-2EBDC116FBB8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B7823AE9-4B43-4859-8796-2EBDC116FBB8}.Debug|x86.Build.0 = Debug|Any CPU + {B7823AE9-4B43-4859-8796-2EBDC116FBB8}.Debug|Any CPU.Build.0 = Debug|Any CPU {B7823AE9-4B43-4859-8796-2EBDC116FBB8}.Debug|x86.ActiveCfg = Debug|Any CPU - {B7823AE9-4B43-4859-8796-2EBDC116FBB8}.Release|Any CPU.Build.0 = Release|Any CPU + {B7823AE9-4B43-4859-8796-2EBDC116FBB8}.Debug|x86.Build.0 = Debug|Any CPU {B7823AE9-4B43-4859-8796-2EBDC116FBB8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B7823AE9-4B43-4859-8796-2EBDC116FBB8}.Release|x86.Build.0 = Release|Any CPU + {B7823AE9-4B43-4859-8796-2EBDC116FBB8}.Release|Any CPU.Build.0 = Release|Any CPU {B7823AE9-4B43-4859-8796-2EBDC116FBB8}.Release|x86.ActiveCfg = Release|Any CPU - {BAD94D6E-4159-4CB6-B991-486F412D9BB6}.Debug|Any CPU.Build.0 = Debug|Any CPU + {B7823AE9-4B43-4859-8796-2EBDC116FBB8}.Release|x86.Build.0 = Release|Any CPU {BAD94D6E-4159-4CB6-B991-486F412D9BB6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BAD94D6E-4159-4CB6-B991-486F412D9BB6}.Debug|x86.Build.0 = Debug|Any CPU + {BAD94D6E-4159-4CB6-B991-486F412D9BB6}.Debug|Any CPU.Build.0 = Debug|Any CPU {BAD94D6E-4159-4CB6-B991-486F412D9BB6}.Debug|x86.ActiveCfg = Debug|Any CPU - {BAD94D6E-4159-4CB6-B991-486F412D9BB6}.Release|Any CPU.Build.0 = Release|Any CPU + {BAD94D6E-4159-4CB6-B991-486F412D9BB6}.Debug|x86.Build.0 = Debug|Any CPU {BAD94D6E-4159-4CB6-B991-486F412D9BB6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BAD94D6E-4159-4CB6-B991-486F412D9BB6}.Release|x86.Build.0 = Release|Any CPU + {BAD94D6E-4159-4CB6-B991-486F412D9BB6}.Release|Any CPU.Build.0 = Release|Any CPU {BAD94D6E-4159-4CB6-B991-486F412D9BB6}.Release|x86.ActiveCfg = Release|Any CPU - {5C70D6AB-0A33-43F9-B8B5-54558C35BBB1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {BAD94D6E-4159-4CB6-B991-486F412D9BB6}.Release|x86.Build.0 = Release|Any CPU {5C70D6AB-0A33-43F9-B8B5-54558C35BBB1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5C70D6AB-0A33-43F9-B8B5-54558C35BBB1}.Debug|x86.Build.0 = Debug|Any CPU + {5C70D6AB-0A33-43F9-B8B5-54558C35BBB1}.Debug|Any CPU.Build.0 = Debug|Any CPU {5C70D6AB-0A33-43F9-B8B5-54558C35BBB1}.Debug|x86.ActiveCfg = Debug|Any CPU - {5C70D6AB-0A33-43F9-B8B5-54558C35BBB1}.Release|Any CPU.Build.0 = Release|Any CPU + {5C70D6AB-0A33-43F9-B8B5-54558C35BBB1}.Debug|x86.Build.0 = Debug|Any CPU {5C70D6AB-0A33-43F9-B8B5-54558C35BBB1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5C70D6AB-0A33-43F9-B8B5-54558C35BBB1}.Release|x86.Build.0 = Release|Any CPU + {5C70D6AB-0A33-43F9-B8B5-54558C35BBB1}.Release|Any CPU.Build.0 = Release|Any CPU {5C70D6AB-0A33-43F9-B8B5-54558C35BBB1}.Release|x86.ActiveCfg = Release|Any CPU - {EEF5E054-4192-4A57-8FBF-E860D808A51D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {5C70D6AB-0A33-43F9-B8B5-54558C35BBB1}.Release|x86.Build.0 = Release|Any CPU {EEF5E054-4192-4A57-8FBF-E860D808A51D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EEF5E054-4192-4A57-8FBF-E860D808A51D}.Debug|x86.Build.0 = Debug|Any CPU + {EEF5E054-4192-4A57-8FBF-E860D808A51D}.Debug|Any CPU.Build.0 = Debug|Any CPU {EEF5E054-4192-4A57-8FBF-E860D808A51D}.Debug|x86.ActiveCfg = Debug|Any CPU - {EEF5E054-4192-4A57-8FBF-E860D808A51D}.Release|Any CPU.Build.0 = Release|Any CPU + {EEF5E054-4192-4A57-8FBF-E860D808A51D}.Debug|x86.Build.0 = Debug|Any CPU {EEF5E054-4192-4A57-8FBF-E860D808A51D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {EEF5E054-4192-4A57-8FBF-E860D808A51D}.Release|x86.Build.0 = Release|Any CPU + {EEF5E054-4192-4A57-8FBF-E860D808A51D}.Release|Any CPU.Build.0 = Release|Any CPU {EEF5E054-4192-4A57-8FBF-E860D808A51D}.Release|x86.ActiveCfg = Release|Any CPU - {AFE34868-AFA1-4E1C-9450-47AB4BE329D5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EEF5E054-4192-4A57-8FBF-E860D808A51D}.Release|x86.Build.0 = Release|Any CPU {AFE34868-AFA1-4E1C-9450-47AB4BE329D5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {AFE34868-AFA1-4E1C-9450-47AB4BE329D5}.Debug|x86.Build.0 = Debug|Any CPU + {AFE34868-AFA1-4E1C-9450-47AB4BE329D5}.Debug|Any CPU.Build.0 = Debug|Any CPU {AFE34868-AFA1-4E1C-9450-47AB4BE329D5}.Debug|x86.ActiveCfg = Debug|Any CPU - {AFE34868-AFA1-4E1C-9450-47AB4BE329D5}.Release|Any CPU.Build.0 = Release|Any CPU + {AFE34868-AFA1-4E1C-9450-47AB4BE329D5}.Debug|x86.Build.0 = Debug|Any CPU {AFE34868-AFA1-4E1C-9450-47AB4BE329D5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {AFE34868-AFA1-4E1C-9450-47AB4BE329D5}.Release|x86.Build.0 = Release|Any CPU + {AFE34868-AFA1-4E1C-9450-47AB4BE329D5}.Release|Any CPU.Build.0 = Release|Any CPU {AFE34868-AFA1-4E1C-9450-47AB4BE329D5}.Release|x86.ActiveCfg = Release|Any CPU - {e1b288a2-08ee-4318-8bbb-8ab72c69e33e}.Debug|Any CPU.Build.0 = Debug|Any CPU - {e1b288a2-08ee-4318-8bbb-8ab72c69e33e}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {e1b288a2-08ee-4318-8bbb-8ab72c69e33e}.Debug|x86.Build.0 = Debug|Any CPU - {e1b288a2-08ee-4318-8bbb-8ab72c69e33e}.Debug|x86.ActiveCfg = Debug|Any CPU - {e1b288a2-08ee-4318-8bbb-8ab72c69e33e}.Release|Any CPU.Build.0 = Release|Any CPU - {e1b288a2-08ee-4318-8bbb-8ab72c69e33e}.Release|Any CPU.ActiveCfg = Release|Any CPU - {e1b288a2-08ee-4318-8bbb-8ab72c69e33e}.Release|x86.Build.0 = Release|Any CPU - {e1b288a2-08ee-4318-8bbb-8ab72c69e33e}.Release|x86.ActiveCfg = Release|Any CPU - {388E7B64-0393-4EB4-A3E3-5C474F141853}.Debug|Any CPU.Build.0 = Debug|Any CPU - {388E7B64-0393-4EB4-A3E3-5C474F141853}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {388E7B64-0393-4EB4-A3E3-5C474F141853}.Debug|x86.Build.0 = Debug|Any CPU - {388E7B64-0393-4EB4-A3E3-5C474F141853}.Debug|x86.ActiveCfg = Debug|Any CPU - {388E7B64-0393-4EB4-A3E3-5C474F141853}.Release|Any CPU.Build.0 = Release|Any CPU - {388E7B64-0393-4EB4-A3E3-5C474F141853}.Release|Any CPU.ActiveCfg = Release|Any CPU - {388E7B64-0393-4EB4-A3E3-5C474F141853}.Release|x86.Build.0 = Release|Any CPU - {388E7B64-0393-4EB4-A3E3-5C474F141853}.Release|x86.ActiveCfg = Release|Any CPU - {AE4AB0FA-6087-4480-AF37-0FA1452B3DA1}.Debug|Any CPU.Build.0 = Debug|x86 - {AE4AB0FA-6087-4480-AF37-0FA1452B3DA1}.Debug|Any CPU.ActiveCfg = Debug|x86 - {AE4AB0FA-6087-4480-AF37-0FA1452B3DA1}.Debug|x86.Build.0 = Debug|x86 - {AE4AB0FA-6087-4480-AF37-0FA1452B3DA1}.Debug|x86.ActiveCfg = Debug|x86 - {AE4AB0FA-6087-4480-AF37-0FA1452B3DA1}.Release|Any CPU.Build.0 = Release|x86 - {AE4AB0FA-6087-4480-AF37-0FA1452B3DA1}.Release|Any CPU.ActiveCfg = Release|x86 - {AE4AB0FA-6087-4480-AF37-0FA1452B3DA1}.Release|x86.Build.0 = Release|x86 - {AE4AB0FA-6087-4480-AF37-0FA1452B3DA1}.Release|x86.ActiveCfg = Release|x86 - {56E98A01-8398-4A08-9578-C7337711A52B}.Debug|Any CPU.Build.0 = Debug|x86 - {56E98A01-8398-4A08-9578-C7337711A52B}.Debug|Any CPU.ActiveCfg = Debug|x86 - {56E98A01-8398-4A08-9578-C7337711A52B}.Debug|x86.Build.0 = Debug|x86 - {56E98A01-8398-4A08-9578-C7337711A52B}.Debug|x86.ActiveCfg = Debug|x86 - {56E98A01-8398-4A08-9578-C7337711A52B}.Release|Any CPU.Build.0 = Release|x86 - {56E98A01-8398-4A08-9578-C7337711A52B}.Release|Any CPU.ActiveCfg = Release|x86 - {56E98A01-8398-4A08-9578-C7337711A52B}.Release|x86.Build.0 = Release|x86 - {56E98A01-8398-4A08-9578-C7337711A52B}.Release|x86.ActiveCfg = Release|x86 - {A5C0E8F8-9D04-46ED-91D6-1DEF1575313B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AFE34868-AFA1-4E1C-9450-47AB4BE329D5}.Release|x86.Build.0 = Release|Any CPU + {66A378A1-E9F4-4AD5-8946-D0EC06C2902F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {66A378A1-E9F4-4AD5-8946-D0EC06C2902F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {66A378A1-E9F4-4AD5-8946-D0EC06C2902F}.Debug|x86.ActiveCfg = Debug|Any CPU + {66A378A1-E9F4-4AD5-8946-D0EC06C2902F}.Debug|x86.Build.0 = Debug|Any CPU + {66A378A1-E9F4-4AD5-8946-D0EC06C2902F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {66A378A1-E9F4-4AD5-8946-D0EC06C2902F}.Release|Any CPU.Build.0 = Release|Any CPU + {66A378A1-E9F4-4AD5-8946-D0EC06C2902F}.Release|x86.ActiveCfg = Release|Any CPU + {66A378A1-E9F4-4AD5-8946-D0EC06C2902F}.Release|x86.Build.0 = Release|Any CPU + {9A9D6FD4-6A2E-455D-ACC3-DDA775FE9865}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9A9D6FD4-6A2E-455D-ACC3-DDA775FE9865}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9A9D6FD4-6A2E-455D-ACC3-DDA775FE9865}.Debug|x86.ActiveCfg = Debug|Any CPU + {9A9D6FD4-6A2E-455D-ACC3-DDA775FE9865}.Debug|x86.Build.0 = Debug|Any CPU + {9A9D6FD4-6A2E-455D-ACC3-DDA775FE9865}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9A9D6FD4-6A2E-455D-ACC3-DDA775FE9865}.Release|Any CPU.Build.0 = Release|Any CPU + {9A9D6FD4-6A2E-455D-ACC3-DDA775FE9865}.Release|x86.ActiveCfg = Release|Any CPU + {9A9D6FD4-6A2E-455D-ACC3-DDA775FE9865}.Release|x86.Build.0 = Release|Any CPU + {943DBBB3-E84E-4CF4-917C-C05AFA8743C1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {943DBBB3-E84E-4CF4-917C-C05AFA8743C1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {943DBBB3-E84E-4CF4-917C-C05AFA8743C1}.Debug|x86.ActiveCfg = Debug|Any CPU + {943DBBB3-E84E-4CF4-917C-C05AFA8743C1}.Debug|x86.Build.0 = Debug|Any CPU + {943DBBB3-E84E-4CF4-917C-C05AFA8743C1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {943DBBB3-E84E-4CF4-917C-C05AFA8743C1}.Release|Any CPU.Build.0 = Release|Any CPU + {943DBBB3-E84E-4CF4-917C-C05AFA8743C1}.Release|x86.ActiveCfg = Release|Any CPU + {943DBBB3-E84E-4CF4-917C-C05AFA8743C1}.Release|x86.Build.0 = Release|Any CPU + {78CC29AC-CC79-4355-B1F2-97936DF198AC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {78CC29AC-CC79-4355-B1F2-97936DF198AC}.Debug|Any CPU.Build.0 = Debug|Any CPU + {78CC29AC-CC79-4355-B1F2-97936DF198AC}.Debug|x86.ActiveCfg = Debug|Any CPU + {78CC29AC-CC79-4355-B1F2-97936DF198AC}.Debug|x86.Build.0 = Debug|Any CPU + {78CC29AC-CC79-4355-B1F2-97936DF198AC}.Release|Any CPU.ActiveCfg = Release|Any CPU + {78CC29AC-CC79-4355-B1F2-97936DF198AC}.Release|Any CPU.Build.0 = Release|Any CPU + {78CC29AC-CC79-4355-B1F2-97936DF198AC}.Release|x86.ActiveCfg = Release|Any CPU + {78CC29AC-CC79-4355-B1F2-97936DF198AC}.Release|x86.Build.0 = Release|Any CPU + {88DA149F-21B2-48AB-82C4-28FB6BDFD783}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {88DA149F-21B2-48AB-82C4-28FB6BDFD783}.Debug|Any CPU.Build.0 = Debug|Any CPU + {88DA149F-21B2-48AB-82C4-28FB6BDFD783}.Debug|x86.ActiveCfg = Debug|Any CPU + {88DA149F-21B2-48AB-82C4-28FB6BDFD783}.Debug|x86.Build.0 = Debug|Any CPU + {88DA149F-21B2-48AB-82C4-28FB6BDFD783}.Release|Any CPU.ActiveCfg = Release|Any CPU + {88DA149F-21B2-48AB-82C4-28FB6BDFD783}.Release|Any CPU.Build.0 = Release|Any CPU + {88DA149F-21B2-48AB-82C4-28FB6BDFD783}.Release|x86.ActiveCfg = Release|Any CPU + {88DA149F-21B2-48AB-82C4-28FB6BDFD783}.Release|x86.Build.0 = Release|Any CPU + {1D18D788-F7EE-4585-A23B-34DC8EC63CB8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1D18D788-F7EE-4585-A23B-34DC8EC63CB8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1D18D788-F7EE-4585-A23B-34DC8EC63CB8}.Debug|x86.ActiveCfg = Debug|Any CPU + {1D18D788-F7EE-4585-A23B-34DC8EC63CB8}.Debug|x86.Build.0 = Debug|Any CPU + {1D18D788-F7EE-4585-A23B-34DC8EC63CB8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1D18D788-F7EE-4585-A23B-34DC8EC63CB8}.Release|Any CPU.Build.0 = Release|Any CPU + {1D18D788-F7EE-4585-A23B-34DC8EC63CB8}.Release|x86.ActiveCfg = Release|Any CPU + {1D18D788-F7EE-4585-A23B-34DC8EC63CB8}.Release|x86.Build.0 = Release|Any CPU + {EC06F96A-AEEC-49D6-B03D-AB87C6EB674C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {EC06F96A-AEEC-49D6-B03D-AB87C6EB674C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {EC06F96A-AEEC-49D6-B03D-AB87C6EB674C}.Debug|x86.ActiveCfg = Debug|Any CPU + {EC06F96A-AEEC-49D6-B03D-AB87C6EB674C}.Debug|x86.Build.0 = Debug|Any CPU + {EC06F96A-AEEC-49D6-B03D-AB87C6EB674C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {EC06F96A-AEEC-49D6-B03D-AB87C6EB674C}.Release|Any CPU.Build.0 = Release|Any CPU + {EC06F96A-AEEC-49D6-B03D-AB87C6EB674C}.Release|x86.ActiveCfg = Release|Any CPU + {EC06F96A-AEEC-49D6-B03D-AB87C6EB674C}.Release|x86.Build.0 = Release|Any CPU + {A4C858C8-51B6-4265-A695-A20FCEBA1D19}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {A4C858C8-51B6-4265-A695-A20FCEBA1D19}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A4C858C8-51B6-4265-A695-A20FCEBA1D19}.Debug|x86.ActiveCfg = Debug|Any CPU + {A4C858C8-51B6-4265-A695-A20FCEBA1D19}.Debug|x86.Build.0 = Debug|Any CPU + {A4C858C8-51B6-4265-A695-A20FCEBA1D19}.Release|Any CPU.ActiveCfg = Release|Any CPU + {A4C858C8-51B6-4265-A695-A20FCEBA1D19}.Release|Any CPU.Build.0 = Release|Any CPU + {A4C858C8-51B6-4265-A695-A20FCEBA1D19}.Release|x86.ActiveCfg = Release|Any CPU + {A4C858C8-51B6-4265-A695-A20FCEBA1D19}.Release|x86.Build.0 = Release|Any CPU + {1F261725-6318-4434-A1B1-6C70CE4CD324}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1F261725-6318-4434-A1B1-6C70CE4CD324}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1F261725-6318-4434-A1B1-6C70CE4CD324}.Debug|x86.ActiveCfg = Debug|Any CPU + {1F261725-6318-4434-A1B1-6C70CE4CD324}.Debug|x86.Build.0 = Debug|Any CPU + {1F261725-6318-4434-A1B1-6C70CE4CD324}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1F261725-6318-4434-A1B1-6C70CE4CD324}.Release|Any CPU.Build.0 = Release|Any CPU + {1F261725-6318-4434-A1B1-6C70CE4CD324}.Release|x86.ActiveCfg = Release|Any CPU + {1F261725-6318-4434-A1B1-6C70CE4CD324}.Release|x86.Build.0 = Release|Any CPU + {44A8DE09-CAB9-49D8-9CFC-5EB0A552F181}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {44A8DE09-CAB9-49D8-9CFC-5EB0A552F181}.Debug|Any CPU.Build.0 = Debug|Any CPU + {44A8DE09-CAB9-49D8-9CFC-5EB0A552F181}.Debug|x86.ActiveCfg = Debug|Any CPU + {44A8DE09-CAB9-49D8-9CFC-5EB0A552F181}.Debug|x86.Build.0 = Debug|Any CPU + {44A8DE09-CAB9-49D8-9CFC-5EB0A552F181}.Release|Any CPU.ActiveCfg = Release|Any CPU + {44A8DE09-CAB9-49D8-9CFC-5EB0A552F181}.Release|Any CPU.Build.0 = Release|Any CPU + {44A8DE09-CAB9-49D8-9CFC-5EB0A552F181}.Release|x86.ActiveCfg = Release|Any CPU + {44A8DE09-CAB9-49D8-9CFC-5EB0A552F181}.Release|x86.Build.0 = Release|Any CPU + {3EAA45A9-735C-4AC7-A799-947B93EA449D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3EAA45A9-735C-4AC7-A799-947B93EA449D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3EAA45A9-735C-4AC7-A799-947B93EA449D}.Debug|x86.ActiveCfg = Debug|Any CPU + {3EAA45A9-735C-4AC7-A799-947B93EA449D}.Debug|x86.Build.0 = Debug|Any CPU + {3EAA45A9-735C-4AC7-A799-947B93EA449D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3EAA45A9-735C-4AC7-A799-947B93EA449D}.Release|Any CPU.Build.0 = Release|Any CPU + {3EAA45A9-735C-4AC7-A799-947B93EA449D}.Release|x86.ActiveCfg = Release|Any CPU + {3EAA45A9-735C-4AC7-A799-947B93EA449D}.Release|x86.Build.0 = Release|Any CPU + {C16BEA37-FEE8-4792-B860-48F5BFBD39A9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C16BEA37-FEE8-4792-B860-48F5BFBD39A9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C16BEA37-FEE8-4792-B860-48F5BFBD39A9}.Debug|x86.ActiveCfg = Debug|Any CPU + {C16BEA37-FEE8-4792-B860-48F5BFBD39A9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C16BEA37-FEE8-4792-B860-48F5BFBD39A9}.Release|Any CPU.Build.0 = Release|Any CPU + {C16BEA37-FEE8-4792-B860-48F5BFBD39A9}.Release|x86.ActiveCfg = Release|Any CPU {A5C0E8F8-9D04-46ED-91D6-1DEF1575313B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A5C0E8F8-9D04-46ED-91D6-1DEF1575313B}.Debug|x86.Build.0 = Debug|Any CPU + {A5C0E8F8-9D04-46ED-91D6-1DEF1575313B}.Debug|Any CPU.Build.0 = Debug|Any CPU {A5C0E8F8-9D04-46ED-91D6-1DEF1575313B}.Debug|x86.ActiveCfg = Debug|Any CPU - {A5C0E8F8-9D04-46ED-91D6-1DEF1575313B}.Release|Any CPU.Build.0 = Release|Any CPU + {A5C0E8F8-9D04-46ED-91D6-1DEF1575313B}.Debug|x86.Build.0 = Debug|Any CPU {A5C0E8F8-9D04-46ED-91D6-1DEF1575313B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A5C0E8F8-9D04-46ED-91D6-1DEF1575313B}.Release|x86.Build.0 = Release|Any CPU + {A5C0E8F8-9D04-46ED-91D6-1DEF1575313B}.Release|Any CPU.Build.0 = Release|Any CPU {A5C0E8F8-9D04-46ED-91D6-1DEF1575313B}.Release|x86.ActiveCfg = Release|Any CPU - {08CE9972-283B-44F4-82FA-966F7DFA6B7A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {A5C0E8F8-9D04-46ED-91D6-1DEF1575313B}.Release|x86.Build.0 = Release|Any CPU {08CE9972-283B-44F4-82FA-966F7DFA6B7A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {08CE9972-283B-44F4-82FA-966F7DFA6B7A}.Debug|x86.Build.0 = Debug|Any CPU + {08CE9972-283B-44F4-82FA-966F7DFA6B7A}.Debug|Any CPU.Build.0 = Debug|Any CPU {08CE9972-283B-44F4-82FA-966F7DFA6B7A}.Debug|x86.ActiveCfg = Debug|Any CPU - {08CE9972-283B-44F4-82FA-966F7DFA6B7A}.Release|Any CPU.Build.0 = Release|Any CPU + {08CE9972-283B-44F4-82FA-966F7DFA6B7A}.Debug|x86.Build.0 = Debug|Any CPU {08CE9972-283B-44F4-82FA-966F7DFA6B7A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {08CE9972-283B-44F4-82FA-966F7DFA6B7A}.Release|x86.Build.0 = Release|Any CPU + {08CE9972-283B-44F4-82FA-966F7DFA6B7A}.Release|Any CPU.Build.0 = Release|Any CPU {08CE9972-283B-44F4-82FA-966F7DFA6B7A}.Release|x86.ActiveCfg = Release|Any CPU - {A406803B-C584-43A3-BCEE-A0BB3132CB5F}.Debug|Any CPU.Build.0 = Debug|x86 - {A406803B-C584-43A3-BCEE-A0BB3132CB5F}.Debug|Any CPU.ActiveCfg = Debug|x86 - {A406803B-C584-43A3-BCEE-A0BB3132CB5F}.Debug|x86.Build.0 = Debug|x86 - {A406803B-C584-43A3-BCEE-A0BB3132CB5F}.Debug|x86.ActiveCfg = Debug|x86 - {A406803B-C584-43A3-BCEE-A0BB3132CB5F}.Release|Any CPU.Build.0 = Release|x86 - {A406803B-C584-43A3-BCEE-A0BB3132CB5F}.Release|Any CPU.ActiveCfg = Release|x86 - {A406803B-C584-43A3-BCEE-A0BB3132CB5F}.Release|x86.Build.0 = Release|x86 - {A406803B-C584-43A3-BCEE-A0BB3132CB5F}.Release|x86.ActiveCfg = Release|x86 - C3F15E22-5793-4129-AF8C-6229112B86D2.Debug|Any CPU.Build.0 = Debug|Any CPU - C3F15E22-5793-4129-AF8C-6229112B86D2.Debug|Any CPU.ActiveCfg = Debug|Any CPU - C3F15E22-5793-4129-AF8C-6229112B86D2.Debug|x86.Build.0 = Debug|Any CPU - C3F15E22-5793-4129-AF8C-6229112B86D2.Debug|x86.ActiveCfg = Debug|Any CPU - C3F15E22-5793-4129-AF8C-6229112B86D2.Release|Any CPU.Build.0 = Release|Any CPU - C3F15E22-5793-4129-AF8C-6229112B86D2.Release|Any CPU.ActiveCfg = Release|Any CPU - C3F15E22-5793-4129-AF8C-6229112B86D2.Release|x86.Build.0 = Release|Any CPU - C3F15E22-5793-4129-AF8C-6229112B86D2.Release|x86.ActiveCfg = Release|Any CPU - {7048AE18-EB93-4A84-82D0-DD60EB58ADBD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {7048AE18-EB93-4A84-82D0-DD60EB58ADBD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {7048AE18-EB93-4A84-82D0-DD60EB58ADBD}.Debug|x86.Build.0 = Debug|x86 - {7048AE18-EB93-4A84-82D0-DD60EB58ADBD}.Debug|x86.ActiveCfg = Debug|x86 - {7048AE18-EB93-4A84-82D0-DD60EB58ADBD}.Release|Any CPU.Build.0 = Release|Any CPU - {7048AE18-EB93-4A84-82D0-DD60EB58ADBD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {7048AE18-EB93-4A84-82D0-DD60EB58ADBD}.Release|x86.Build.0 = Release|x86 - {7048AE18-EB93-4A84-82D0-DD60EB58ADBD}.Release|x86.ActiveCfg = Release|x86 - {85C09AD8-183B-403A-869A-7226646218A9}.Debug|Any CPU.Build.0 = Debug|x86 - {85C09AD8-183B-403A-869A-7226646218A9}.Debug|Any CPU.ActiveCfg = Debug|x86 - {85C09AD8-183B-403A-869A-7226646218A9}.Debug|x86.Build.0 = Debug|x86 - {85C09AD8-183B-403A-869A-7226646218A9}.Debug|x86.ActiveCfg = Debug|x86 - {85C09AD8-183B-403A-869A-7226646218A9}.Release|Any CPU.Build.0 = Release|x86 - {85C09AD8-183B-403A-869A-7226646218A9}.Release|Any CPU.ActiveCfg = Release|x86 - {85C09AD8-183B-403A-869A-7226646218A9}.Release|x86.Build.0 = Release|x86 - {85C09AD8-183B-403A-869A-7226646218A9}.Release|x86.ActiveCfg = Release|x86 - {4B2239FF-8FD6-431D-9D22-1B8049BA6917}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4B2239FF-8FD6-431D-9D22-1B8049BA6917}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4B2239FF-8FD6-431D-9D22-1B8049BA6917}.Debug|x86.Build.0 = Debug|Any CPU - {4B2239FF-8FD6-431D-9D22-1B8049BA6917}.Debug|x86.ActiveCfg = Debug|Any CPU - {4B2239FF-8FD6-431D-9D22-1B8049BA6917}.Release|Any CPU.Build.0 = Release|Any CPU - {4B2239FF-8FD6-431D-9D22-1B8049BA6917}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4B2239FF-8FD6-431D-9D22-1B8049BA6917}.Release|x86.Build.0 = Release|Any CPU - {4B2239FF-8FD6-431D-9D22-1B8049BA6917}.Release|x86.ActiveCfg = Release|Any CPU - {E16B73CA-3603-47EE-915E-6F8B2A07304B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E16B73CA-3603-47EE-915E-6F8B2A07304B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E16B73CA-3603-47EE-915E-6F8B2A07304B}.Debug|x86.Build.0 = Debug|Any CPU - {E16B73CA-3603-47EE-915E-6F8B2A07304B}.Debug|x86.ActiveCfg = Debug|Any CPU - {E16B73CA-3603-47EE-915E-6F8B2A07304B}.Release|Any CPU.Build.0 = Release|Any CPU - {E16B73CA-3603-47EE-915E-6F8B2A07304B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E16B73CA-3603-47EE-915E-6F8B2A07304B}.Release|x86.Build.0 = Release|Any CPU - {E16B73CA-3603-47EE-915E-6F8B2A07304B}.Release|x86.ActiveCfg = Release|Any CPU - {35D002D7-C78B-44FB-92AA-104BEB431678}.Debug|Any CPU.Build.0 = Debug|Any CPU - {35D002D7-C78B-44FB-92AA-104BEB431678}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {35D002D7-C78B-44FB-92AA-104BEB431678}.Debug|x86.Build.0 = Debug|Any CPU - {35D002D7-C78B-44FB-92AA-104BEB431678}.Debug|x86.ActiveCfg = Debug|Any CPU - {35D002D7-C78B-44FB-92AA-104BEB431678}.Release|Any CPU.Build.0 = Release|Any CPU - {35D002D7-C78B-44FB-92AA-104BEB431678}.Release|Any CPU.ActiveCfg = Release|Any CPU - {35D002D7-C78B-44FB-92AA-104BEB431678}.Release|x86.Build.0 = Release|Any CPU - {35D002D7-C78B-44FB-92AA-104BEB431678}.Release|x86.ActiveCfg = Release|Any CPU - {2B232C7E-CFB6-4B73-A1B8-134A8A2ED4F7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2B232C7E-CFB6-4B73-A1B8-134A8A2ED4F7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2B232C7E-CFB6-4B73-A1B8-134A8A2ED4F7}.Debug|x86.Build.0 = Debug|Any CPU - {2B232C7E-CFB6-4B73-A1B8-134A8A2ED4F7}.Debug|x86.ActiveCfg = Debug|Any CPU - {2B232C7E-CFB6-4B73-A1B8-134A8A2ED4F7}.Release|Any CPU.Build.0 = Release|Any CPU - {2B232C7E-CFB6-4B73-A1B8-134A8A2ED4F7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2B232C7E-CFB6-4B73-A1B8-134A8A2ED4F7}.Release|x86.Build.0 = Release|Any CPU - {2B232C7E-CFB6-4B73-A1B8-134A8A2ED4F7}.Release|x86.ActiveCfg = Release|Any CPU - {40CA84D4-ACFC-4646-9CDD-B87262D34093}.Debug|Any CPU.Build.0 = Debug|Any CPU - {40CA84D4-ACFC-4646-9CDD-B87262D34093}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {40CA84D4-ACFC-4646-9CDD-B87262D34093}.Debug|x86.Build.0 = Debug|Any CPU - {40CA84D4-ACFC-4646-9CDD-B87262D34093}.Debug|x86.ActiveCfg = Debug|Any CPU - {40CA84D4-ACFC-4646-9CDD-B87262D34093}.Release|Any CPU.Build.0 = Release|Any CPU - {40CA84D4-ACFC-4646-9CDD-B87262D34093}.Release|Any CPU.ActiveCfg = Release|Any CPU - {40CA84D4-ACFC-4646-9CDD-B87262D34093}.Release|x86.Build.0 = Release|Any CPU - {40CA84D4-ACFC-4646-9CDD-B87262D34093}.Release|x86.ActiveCfg = Release|Any CPU - {97CA9CE5-B966-48DF-BB59-F00FFC534B1F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {97CA9CE5-B966-48DF-BB59-F00FFC534B1F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {97CA9CE5-B966-48DF-BB59-F00FFC534B1F}.Debug|x86.Build.0 = Debug|Any CPU - {97CA9CE5-B966-48DF-BB59-F00FFC534B1F}.Debug|x86.ActiveCfg = Debug|Any CPU - {97CA9CE5-B966-48DF-BB59-F00FFC534B1F}.Release|Any CPU.Build.0 = Release|Any CPU - {97CA9CE5-B966-48DF-BB59-F00FFC534B1F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {97CA9CE5-B966-48DF-BB59-F00FFC534B1F}.Release|x86.Build.0 = Release|Any CPU - {97CA9CE5-B966-48DF-BB59-F00FFC534B1F}.Release|x86.ActiveCfg = Release|Any CPU + {08CE9972-283B-44F4-82FA-966F7DFA6B7A}.Release|x86.Build.0 = Release|Any CPU + {E2FD63DA-8478-4066-934C-DA82A852C83A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E2FD63DA-8478-4066-934C-DA82A852C83A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E2FD63DA-8478-4066-934C-DA82A852C83A}.Debug|x86.ActiveCfg = Debug|Any CPU + {E2FD63DA-8478-4066-934C-DA82A852C83A}.Debug|x86.Build.0 = Debug|Any CPU + {E2FD63DA-8478-4066-934C-DA82A852C83A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E2FD63DA-8478-4066-934C-DA82A852C83A}.Release|Any CPU.Build.0 = Release|Any CPU + {E2FD63DA-8478-4066-934C-DA82A852C83A}.Release|x86.ActiveCfg = Release|Any CPU + {E2FD63DA-8478-4066-934C-DA82A852C83A}.Release|x86.Build.0 = Release|Any CPU + {3DF4060F-5EE0-41CF-8096-F27355FD5511}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3DF4060F-5EE0-41CF-8096-F27355FD5511}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3DF4060F-5EE0-41CF-8096-F27355FD5511}.Debug|x86.ActiveCfg = Debug|Any CPU + {3DF4060F-5EE0-41CF-8096-F27355FD5511}.Debug|x86.Build.0 = Debug|Any CPU + {3DF4060F-5EE0-41CF-8096-F27355FD5511}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3DF4060F-5EE0-41CF-8096-F27355FD5511}.Release|Any CPU.Build.0 = Release|Any CPU + {3DF4060F-5EE0-41CF-8096-F27355FD5511}.Release|x86.ActiveCfg = Release|Any CPU + {3DF4060F-5EE0-41CF-8096-F27355FD5511}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -914,7 +879,7 @@ Global GlobalSection(NestedProjects) = preSolution {B5F54272-49F0-40DB-845A-8D837875D3BA} = {256F5C28-532C-44C0-8AB8-D8EC5E492E01} {C3CBC8E3-81D8-4C5B-9941-DCCD12D50B1F} = {256F5C28-532C-44C0-8AB8-D8EC5E492E01} - {4980B743-B32F-4aba-AABD-45E2CAD3568D} = {256F5C28-532C-44C0-8AB8-D8EC5E492E01} + {4980B743-B32F-4ABA-AABD-45E2CAD3568D} = {256F5C28-532C-44C0-8AB8-D8EC5E492E01} {AD6FAA08-D6F5-4DBA-AF85-F4DA9F40C3B5} = {256F5C28-532C-44C0-8AB8-D8EC5E492E01} {35CEF10F-2D4C-45F2-9DD1-161E0FEC583C} = {256F5C28-532C-44C0-8AB8-D8EC5E492E01} {7E4A7172-7FF5-48D0-B719-7CD959DD1AC9} = {256F5C28-532C-44C0-8AB8-D8EC5E492E01} @@ -950,7 +915,7 @@ Global {7C96B65D-28A5-4F28-A35B-8D83CE831EE8} = {E0646C25-36F2-4524-969F-FA621353AB94} {0B12A079-B2DB-42B9-8A8E-AA5CBC2B3225} = {E0646C25-36F2-4524-969F-FA621353AB94} {D781721F-C2A7-4E95-B76F-247170AC3B13} = {E0646C25-36F2-4524-969F-FA621353AB94} - {e1b288a2-08ee-4318-8bbb-8ab72c69e33e} = {E0646C25-36F2-4524-969F-FA621353AB94} + {E1B288A2-08EE-4318-8BBB-8AB72C69E33E} = {E0646C25-36F2-4524-969F-FA621353AB94} {388E7B64-0393-4EB4-A3E3-5C474F141853} = {E0646C25-36F2-4524-969F-FA621353AB94} {7048AE18-EB93-4A84-82D0-DD60EB58ADBD} = {E0646C25-36F2-4524-969F-FA621353AB94} {85C09AD8-183B-403A-869A-7226646218A9} = {E0646C25-36F2-4524-969F-FA621353AB94} @@ -977,7 +942,6 @@ Global {AE4AB0FA-6087-4480-AF37-0FA1452B3DA1} = {485A4CCF-55CF-49F4-BD6D-A22B788C67DA} {56E98A01-8398-4A08-9578-C7337711A52B} = {485A4CCF-55CF-49F4-BD6D-A22B788C67DA} {A406803B-C584-43A3-BCEE-A0BB3132CB5F} = {485A4CCF-55CF-49F4-BD6D-A22B788C67DA} - C3F15E22-5793-4129-AF8C-6229112B86D2 = {485A4CCF-55CF-49F4-BD6D-A22B788C67DA} {0162E499-42D0-409B-AA25-EED21F75336B} = {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F} {E618A9CD-A39F-4925-A538-E8A3FEF24E54} = {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F} {DCA2703D-250A-463E-A68A-07ED105AE6BD} = {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F} @@ -1003,7 +967,6 @@ Global {1F261725-6318-4434-A1B1-6C70CE4CD324} = {B3352C08-3CB4-4DD9-996F-B9DCE4356BB9} {44A8DE09-CAB9-49D8-9CFC-5EB0A552F181} = {B3352C08-3CB4-4DD9-996F-B9DCE4356BB9} {3EAA45A9-735C-4AC7-A799-947B93EA449D} = {B3352C08-3CB4-4DD9-996F-B9DCE4356BB9} - DC88D67C-E6B5-4994-9FA9-D4AB0E162FB3 = {B3352C08-3CB4-4DD9-996F-B9DCE4356BB9} {A5C0E8F8-9D04-46ED-91D6-1DEF1575313B} = {B3352C08-3CB4-4DD9-996F-B9DCE4356BB9} {08CE9972-283B-44F4-82FA-966F7DFA6B7A} = {B3352C08-3CB4-4DD9-996F-B9DCE4356BB9} EndGlobalSection diff --git a/src/AddIns/Analysis/SourceAnalysis/SourceAnalysis.csproj b/src/AddIns/Analysis/SourceAnalysis/SourceAnalysis.csproj index 9993f1164c..d0b10ce5d3 100644 --- a/src/AddIns/Analysis/SourceAnalysis/SourceAnalysis.csproj +++ b/src/AddIns/Analysis/SourceAnalysis/SourceAnalysis.csproj @@ -6,7 +6,7 @@ SourceAnalysis Debug AnyCPU - {3EAA45A9-735C-4AC7-A799-947B93EA449D} + {C16BEA37-FEE8-4792-B860-48F5BFBD39A9} ..\..\..\..\AddIns\Analysis\SourceAnalysis False False @@ -83,7 +83,6 @@ - {2748AD25-9C63-4E12-877B-4DCE96FBED54} ICSharpCode.SharpDevelop diff --git a/src/AddIns/BackendBindings/FSharpBinding/FSharpBinding.csproj b/src/AddIns/BackendBindings/FSharpBinding/FSharpBinding.csproj index fe893eddfb..9373227426 100644 --- a/src/AddIns/BackendBindings/FSharpBinding/FSharpBinding.csproj +++ b/src/AddIns/BackendBindings/FSharpBinding/FSharpBinding.csproj @@ -62,7 +62,9 @@ - + + UserControl + diff --git a/src/AddIns/BackendBindings/WixBinding/Project/WixBinding.csproj b/src/AddIns/BackendBindings/WixBinding/Project/WixBinding.csproj index 9812228760..bf45f26cb4 100644 --- a/src/AddIns/BackendBindings/WixBinding/Project/WixBinding.csproj +++ b/src/AddIns/BackendBindings/WixBinding/Project/WixBinding.csproj @@ -5,7 +5,7 @@ AnyCPU 8.0.40607 2.0 - {e1b288a2-08ee-4318-8bbb-8ab72c69e33e} + {E1B288A2-08EE-4318-8BBB-8AB72C69E33E} ICSharpCode.WixBinding WixBinding Library @@ -107,7 +107,9 @@ - + + Component + @@ -127,7 +129,9 @@ - + + Component + @@ -225,9 +229,6 @@ ICSharpCode.Core False - - - {0162E499-42D0-409B-AA25-EED21F75336B} AvalonEdit.AddIn @@ -245,7 +246,6 @@ Always - {8035765F-D51F-4A0C-A746-2FD100E19419} ICSharpCode.SharpDevelop.Widgets diff --git a/src/AddIns/DisplayBindings/ILSpyAddIn/ILSpyAddIn.csproj b/src/AddIns/DisplayBindings/ILSpyAddIn/ILSpyAddIn.csproj index e0218efa12..869677d37e 100644 --- a/src/AddIns/DisplayBindings/ILSpyAddIn/ILSpyAddIn.csproj +++ b/src/AddIns/DisplayBindings/ILSpyAddIn/ILSpyAddIn.csproj @@ -71,7 +71,9 @@ - + + Form + SetILSpyPathDialog.cs @@ -129,8 +131,5 @@ False - - - - + \ No newline at end of file diff --git a/src/AddIns/DisplayBindings/IconEditor/IconEditor.csproj b/src/AddIns/DisplayBindings/IconEditor/IconEditor.csproj index 291f643110..7bd11dabd3 100644 --- a/src/AddIns/DisplayBindings/IconEditor/IconEditor.csproj +++ b/src/AddIns/DisplayBindings/IconEditor/IconEditor.csproj @@ -52,7 +52,9 @@ IconPanel.cs - + + UserControl + PickFormatDialog.cs @@ -61,7 +63,9 @@ EditorPanel.cs - + + UserControl + Always diff --git a/src/AddIns/Misc/AddInManager/Project/AddInManager.csproj b/src/AddIns/Misc/AddInManager/Project/AddInManager.csproj index 3f4f669cda..ba33653564 100644 --- a/src/AddIns/Misc/AddInManager/Project/AddInManager.csproj +++ b/src/AddIns/Misc/AddInManager/Project/AddInManager.csproj @@ -53,13 +53,19 @@ - + + Form + ManagerForm.cs - + + Component + - + + Form + AboutForm.cs diff --git a/src/AddIns/Misc/FiletypeRegisterer/Project/FiletypeRegisterer.csproj b/src/AddIns/Misc/FiletypeRegisterer/Project/FiletypeRegisterer.csproj index 488a198197..5c44cb08f4 100644 --- a/src/AddIns/Misc/FiletypeRegisterer/Project/FiletypeRegisterer.csproj +++ b/src/AddIns/Misc/FiletypeRegisterer/Project/FiletypeRegisterer.csproj @@ -79,7 +79,9 @@ Configuration\GlobalAssemblyInfo.cs - + + UserControl + RegisterFiletypesPanel.cs @@ -95,7 +97,6 @@ ICSharpCode.Core False - Always diff --git a/src/AddIns/Misc/PackageManagement/SharpDevelop.EnvDTE/SharpDevelop.EnvDTE.vbproj b/src/AddIns/Misc/PackageManagement/SharpDevelop.EnvDTE/SharpDevelop.EnvDTE.vbproj index e002abf0b0..cd33019d03 100644 --- a/src/AddIns/Misc/PackageManagement/SharpDevelop.EnvDTE/SharpDevelop.EnvDTE.vbproj +++ b/src/AddIns/Misc/PackageManagement/SharpDevelop.EnvDTE/SharpDevelop.EnvDTE.vbproj @@ -1,7 +1,7 @@  - {6FB1260D-68A2-41A0-BB09-F5F710842E99} + {1B753D7F-7C77-4D5E-B928-02982690879C} Debug AnyCPU Library @@ -121,11 +121,7 @@ - - - - - + diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj index 286a7a1951..863553ae25 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj @@ -73,6 +73,7 @@ + @@ -81,6 +82,7 @@ + diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Arrange/ArrangeStrategy.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Arrange/ArrangeStrategy.cs index d70eddcc96..b05d3d0acc 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Arrange/ArrangeStrategy.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Arrange/ArrangeStrategy.cs @@ -43,13 +43,8 @@ namespace ICSharpCode.Reporting.Arrange var resizeable = from resize in container.ExportedItems where ((resize.CanGrow == true)) select resize; - - - if (resizeable.Count() > 0) { - - - - + + if (resizeable.Any()) { if (!BiggestRectangle.IsEmpty) { var containerRectangle = new Rectangle(container.Location,container.Size); var desiredRectangle = Rectangle.Union(containerRectangle,BiggestRectangle); diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/GroupColumn.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/GroupColumn.cs new file mode 100644 index 0000000000..a11b4f896a --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/GroupColumn.cs @@ -0,0 +1,38 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 24.05.2013 + * Time: 20:10 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using System.ComponentModel; + +namespace ICSharpCode.Reporting.BaseClasses +{ + /// + /// Description of GroupColumn. + /// + public class GroupColumn : SortColumn + { + + public GroupColumn():this("",0,ListSortDirection.Ascending) + { + } + + public GroupColumn(string columnName,int groupLevel, ListSortDirection sortDirection):base(columnName,sortDirection) + { + if (GroupLevel < 0) { + throw new ArgumentException("groupLevel"); + } + this.GroupLevel = groupLevel; + + } + + + public int GroupLevel {get;private set; + + } + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Collections.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Collections.cs index b0ac9014ae..c0e83f2281 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Collections.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Collections.cs @@ -78,15 +78,22 @@ namespace ICSharpCode.Reporting this.Add(item); } } + } + + + public class GroupColumnCollection: SortColumnCollection + { + public GroupColumnCollection() + { + } - - /// - /// The Culture is used for direct String Comparison - /// - -// public new static CultureInfo Culture -// { -// get { return CultureInfo.CurrentCulture;} -// } + public new AbstractColumn Find (string columnName) + { + if (String.IsNullOrEmpty(columnName)) { + throw new ArgumentNullException("columnName"); + } + + return this.FirstOrDefault(x => 0 == String.Compare(x.ColumnName,columnName,true,CultureInfo.InvariantCulture)); + } } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataManager/Listhandling/CollectionSource.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataManager/Listhandling/CollectionSource.cs index 22a3ed0254..d1b93eae9f 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataManager/Listhandling/CollectionSource.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataManager/Listhandling/CollectionSource.cs @@ -55,7 +55,6 @@ namespace ICSharpCode.Reporting.DataManager.Listhandling public Collection AvailableFields { get { -// base.AvailableFields.Clear(); var availableFields = new Collection(); foreach (PropertyDescriptor p in this.listProperties){ availableFields.Add (new AbstractColumn(p.Name,p.PropertyType)); @@ -72,10 +71,119 @@ namespace ICSharpCode.Reporting.DataManager.Listhandling public void Bind() { - Sort(); + if (reportSettings.GroupColumnCollection.Any()) { + this.Group(); + } else { + this.Sort (); + } Reset(); } + #region Grouping + + public void Group() + { + var sortedList = this.BuildSortIndex (reportSettings.GroupColumnCollection); + IndexList = BuildGroup(sortedList); + +// ShowIndexList(gl); + } + + /* + private Dictionary BuildGroup (IndexList list) { + var dictionary = new Dictionary(); + foreach (var element in list) { + string groupValue = ExtractValue (element); + if (!dictionary.ContainsKey(groupValue)) { + dictionary[groupValue] = new IndexList(); + } + + dictionary[groupValue].Add(element); + } + foreach (var el in dictionary) { + Console.WriteLine (el.Key.ToString()); + } + return dictionary; + } + */ + private IndexList BuildGroup (IndexList list) + { + string compareValue = String.Empty; + var idlist = new IndexList(); +// GroupComparer groupComparer = null; + /* + foreach (BaseComparer element in list) + { + var groupValue = ExtractValue (element); + + if (compareValue != groupValue) { + groupComparer = CreateGroupHeader(element); + idlist.Add(groupComparer); + } + groupComparer.IndexList.Add(element); + compareValue = groupValue; + } + */ + + + GroupInternal(compareValue, ref idlist, list); + + + ShowGrouping(ref idlist); +// ShowIndexList(IndexList); + return idlist; + } + + void ShowGrouping(ref IndexList idlist) + { + Console.WriteLine("----ShowGrouping---"); + foreach (GroupComparer el in idlist) { + Console.WriteLine("{0}", el.ToString()); + if (el.IndexList.Any()) { + foreach (var element in el.IndexList) { + Console.WriteLine("--{0}", element.ToString()); + } + } + } + } + + + void GroupInternal(string compareValue, ref IndexList idlist, IndexList list) + { + GroupComparer groupComparer = null; + foreach (BaseComparer element in list) { + var groupValue = ExtractValue(element); + if (compareValue != groupValue) { + groupComparer = CreateGroupHeader(element); + idlist.Add(groupComparer); + } + groupComparer.IndexList.Add(element); + compareValue = groupValue; + } + } + + + static string ExtractValue(BaseComparer element) + { +// string val = String.Empty; +// GroupColumn gc = element.ColumnCollection[0] as GroupColumn; +// if (gc != null) { +// val = element.ObjectArray[0].ToString(); +// } +// return val; + return element.ObjectArray[0].ToString(); + } + + + protected GroupComparer CreateGroupHeader (BaseComparer sc) + { + var gc = new GroupComparer(sc.ColumnCollection,sc.ListIndex,sc.ObjectArray); + gc.IndexList = new IndexList(); + return gc; + } + + #endregion + public void Sort() { if ((this.reportSettings.SortColumnsCollection != null)) { @@ -102,6 +210,8 @@ namespace ICSharpCode.Reporting.DataManager.Listhandling public IndexList IndexList {get; private set;} + + IndexList BuildSortIndex(SortColumnCollection sortColumnsCollection) { var indexList = new IndexList(); @@ -166,6 +276,8 @@ namespace ICSharpCode.Reporting.DataManager.Listhandling } #endregion + + private PropertyDescriptor[] BuildSortProperties (SortColumnCollection sortColumnCollection) { PropertyDescriptor[] sortProperties = new PropertyDescriptor[sortColumnCollection.Count]; @@ -225,5 +337,30 @@ namespace ICSharpCode.Reporting.DataManager.Listhandling // var i = bc.ListIndex; return bc; } + + + #region Debug Code + + protected static void ShowIndexList (IndexList list) + { + + foreach (BaseComparer element in list) { + string s = String.Format("{0} ",element.ObjectArray[0]); + GroupComparer gc = element as GroupComparer; + if ( gc != null) { + s = s + "GroupHeader"; + if (gc.IndexList != null) { + s = s + String.Format(" <{0}> Childs",gc.IndexList.Count); + } + System.Console.WriteLine(s); + foreach (BaseComparer c in gc.IndexList) { + Console.WriteLine("---- {0}",c.ObjectArray[0]); + } + } + } + } + + + #endregion } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataSource/Comparer/GroupComparer.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataSource/Comparer/GroupComparer.cs new file mode 100644 index 0000000000..904703d0e7 --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataSource/Comparer/GroupComparer.cs @@ -0,0 +1,27 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 24.05.2013 + * Time: 20:17 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using ICSharpCode.Reporting.DataManager.Listhandling; + +namespace ICSharpCode.Reporting.DataSource.Comparer +{ + /// + /// Description of GroupComparer. + /// + public class GroupComparer :SortComparer + { + + public GroupComparer (ColumnCollection owner, int listIndex, object[] values):base(owner,listIndex,values) + { + IndexList = new IndexList(); + } + + public IndexList IndexList {get;set;} + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/WpfVisitor.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/WpfVisitor.cs index 06ffe419a0..6b5714109d 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/WpfVisitor.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/Visitors/WpfVisitor.cs @@ -24,7 +24,7 @@ namespace ICSharpCode.Reporting.Exporter.Visitors /// internal class WpfVisitor: AbstractVisitor { - private FixedDocumentCreator documentCreator; + private readonly FixedDocumentCreator documentCreator; private readonly ReportSettings reportSettings; public WpfVisitor(ReportSettings reportSettings) diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/Data/IDataViewHandling.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/Data/IDataViewHandling.cs index 6d9243728c..12c5c3b82b 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/Data/IDataViewHandling.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/Data/IDataViewHandling.cs @@ -22,7 +22,7 @@ namespace ICSharpCode.Reporting.Interfaces.Data void Sort (); -// void Group(); + void Group(); void Bind(); diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportSettings.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportSettings.cs index 86b6b1c21d..ed9321db6b 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportSettings.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportSettings.cs @@ -51,6 +51,7 @@ namespace ICSharpCode.Reporting.Items // this.availableFields = new AvailableFieldsCollection(); // this.groupingsCollection = new GroupColumnCollection(); this.SortColumnsCollection = new SortColumnCollection(); + GroupColumnCollection = new GroupColumnCollection(); // this.sqlParameters = new SqlParameterCollection(); // this.parameterCollection = new ParameterCollection(); // this.NoDataMessage = "No Data for this Report"; @@ -138,5 +139,6 @@ namespace ICSharpCode.Reporting.Items public SortColumnCollection SortColumnsCollection {get;private set;} + public GroupColumnCollection GroupColumnCollection {get;private set;} } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/DataSource/CollectionHandlingFixture.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/DataSource/CollectionHandlingFixture.cs index 8dbb167a0d..0c61e908bb 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/DataSource/CollectionHandlingFixture.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/DataSource/CollectionHandlingFixture.cs @@ -44,7 +44,21 @@ namespace ICSharpCode.Reporting.Test.DataSource var collectionSource = new CollectionSource (list,new ReportSettings()); Assert.That(collectionSource.AvailableFields.Count,Is.EqualTo(6)); } - + + #region Grouping + + [Test] + public void GroupbyOneColumn () { + var rs = new ReportSettings(); + rs.GroupColumnCollection.Add( new GroupColumn("GroupItem",1,ListSortDirection.Ascending)); + var collectionSource = new CollectionSource (list,rs); + collectionSource.Bind(); + } + + #endregion + + #region Sort + [Test] public void CreateUnsortedIndex() { @@ -75,12 +89,33 @@ namespace ICSharpCode.Reporting.Test.DataSource collectionSource.Bind(); string compare = collectionSource.IndexList[0].ObjectArray[0].ToString(); foreach (var element in collectionSource.IndexList) { - Console.WriteLine(element.ObjectArray[0].ToString()); + string result = String.Format("{0} - {1}",element.ListIndex,element.ObjectArray[0]); + Console.WriteLine(result); + Assert.That(compare,Is.LessThanOrEqualTo(element.ObjectArray[0].ToString())); + compare = element.ObjectArray[0].ToString(); + } + } + + + [Test] + public void SortTwoColumnsAscending() { + var rs = new ReportSettings(); + rs.SortColumnsCollection.Add(new SortColumn("Lastname",ListSortDirection.Ascending)); + rs.SortColumnsCollection.Add(new SortColumn("RandomInt",ListSortDirection.Ascending)); + var collectionSource = new CollectionSource (list,rs); + collectionSource.Bind(); + string compare = collectionSource.IndexList[0].ObjectArray[0].ToString(); + foreach (var element in collectionSource.IndexList) { + string result = String.Format("{0} - {1} - {2}",element.ListIndex,element.ObjectArray[0],element.ObjectArray[1].ToString()); + Console.WriteLine(result); Assert.That(compare,Is.LessThanOrEqualTo(element.ObjectArray[0].ToString())); compare = element.ObjectArray[0].ToString(); } } + #endregion + + [SetUp] public void CreateList() { var contributorList = new ContributorsList(); diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/DataSource/ContributorsList.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/DataSource/ContributorsList.cs index 6ffb0f9ac7..3cb64fc205 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/DataSource/ContributorsList.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/DataSource/ContributorsList.cs @@ -67,16 +67,14 @@ namespace ICSharpCode.Reporting.Test.DataSource public class Contributor { - int randomInt; - DateTime randomDate; - + public Contributor(string lastname, string firstname,string job,int randomInt,DateTime randomDate,string groupItem) { this.Lastname = lastname; this.Firstname = firstname; this.Job = job; - this.randomDate = randomDate; - this.randomInt = randomInt; + this.RandomDate = randomDate; + this.RandomInt = randomInt; this.GroupItem = groupItem; } @@ -90,16 +88,13 @@ namespace ICSharpCode.Reporting.Test.DataSource public string Job {get; private set;} - public int RandomInt { - get { return randomInt; } - } + public int RandomInt {get; private set;} - public DateTime RandomDate { - get { return randomDate; } - } + public DateTime RandomDate {get;private set;} + - public string GroupItem {get; set;} + public string GroupItem {get; private set;} } } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/ICSharpCode.Reports.Addin.csproj b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/ICSharpCode.Reports.Addin.csproj index 6bc3a522a1..d4daf2d576 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/ICSharpCode.Reports.Addin.csproj +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/ICSharpCode.Reports.Addin.csproj @@ -185,7 +185,9 @@ Component - + + Component + @@ -366,9 +368,6 @@ true - - - - + \ No newline at end of file diff --git a/src/AddIns/Misc/SearchAndReplace/Project/SearchAndReplace.csproj b/src/AddIns/Misc/SearchAndReplace/Project/SearchAndReplace.csproj index 5031774a1f..88cde52966 100644 --- a/src/AddIns/Misc/SearchAndReplace/Project/SearchAndReplace.csproj +++ b/src/AddIns/Misc/SearchAndReplace/Project/SearchAndReplace.csproj @@ -78,8 +78,12 @@ Code ResultsTreeView.xaml - - + + Form + + + UserControl + @@ -87,10 +91,6 @@ - - - - {6C55B776-26D4-4DB3-A6AB-87E783B2F3D1} ICSharpCode.AvalonEdit diff --git a/src/AddIns/VersionControl/SubversionAddIn/SubversionAddIn.csproj b/src/AddIns/VersionControl/SubversionAddIn/SubversionAddIn.csproj index 30e55787cf..d222061ac0 100644 --- a/src/AddIns/VersionControl/SubversionAddIn/SubversionAddIn.csproj +++ b/src/AddIns/VersionControl/SubversionAddIn/SubversionAddIn.csproj @@ -62,7 +62,9 @@ Always - + + UserControl + InfoPanel.cs diff --git a/src/Libraries/AvalonDock/AvalonDock/AvalonDock.csproj b/src/Libraries/AvalonDock/AvalonDock/AvalonDock.csproj index ec91231845..057e53f5c9 100644 --- a/src/Libraries/AvalonDock/AvalonDock/AvalonDock.csproj +++ b/src/Libraries/AvalonDock/AvalonDock/AvalonDock.csproj @@ -5,7 +5,7 @@ AnyCPU 8.0.30703 2.0 - {87E61430-4243-45F2-B74E-0A4C096CEBF3} + {2FF700C2-A38A-48BD-A637-8CAFD4FE6237} Library Properties AvalonDock diff --git a/src/Main/ICSharpCode.Core.WinForms/ICSharpCode.Core.WinForms.csproj b/src/Main/ICSharpCode.Core.WinForms/ICSharpCode.Core.WinForms.csproj index bf5cb02fb4..d7ffcfcbe6 100644 --- a/src/Main/ICSharpCode.Core.WinForms/ICSharpCode.Core.WinForms.csproj +++ b/src/Main/ICSharpCode.Core.WinForms/ICSharpCode.Core.WinForms.csproj @@ -55,24 +55,38 @@ - + + Component + - + + Form + - + + Form + - + + Component + - + + Component + - + + Component + - + + Component + @@ -83,9 +97,5 @@ ICSharpCode.Core False - - - - \ No newline at end of file From f50a7c31a06d1267170bf4cb5cb3aa2b539432ea Mon Sep 17 00:00:00 2001 From: Peter Forstmeier Date: Fri, 31 May 2013 20:22:39 +0200 Subject: [PATCH 30/33] Grouping + Fill() --- SharpDevelop.Tests.sln | 39 +- .../ICSharpCode.Reporting.csproj | 2 + .../Src/Arrange/ArrangeStrategy.cs | 33 +- .../Src/BaseClasses/AbstractColumn.cs | 6 - .../Src/BaseClasses/GroupColumn.cs | 4 +- .../Src/BaseClasses/SortColumn.cs | 6 +- .../ICSharpCode.Reporting/Src/Collections.cs | 19 + .../Listhandling/CollectionSource.cs | 355 ++++++++++-------- .../Src/DataSource/Comparer/BaseComparer.cs | 14 +- .../Src/DataSource/Comparer/GroupComparer.cs | 4 +- .../Src/DataSource/Comparer/SortComparer.cs | 3 +- .../Src/DataSource/DataCollection.cs | 22 +- .../DataSource/ExtendedPropertyDescriptor.cs | 1 + .../ExportRenderer/FixedDocumentCreator.cs | 8 +- .../Src/Exporter/BaseExporter.cs | 6 +- .../Src/Interfaces/Data/IDataViewHandling.cs | 2 +- .../Src/Interfaces/IDataItem.cs | 26 ++ .../Src/Items/BaseDataItem.cs | 30 ++ .../Src/PageBuilder/BasePageBuilder.cs | 4 +- .../Src/Wpf/PreviewViewModel.cs | 2 +- .../Src/Xml/MycroParser.cs | 162 ++++---- .../DataSource/CollectionHandlingFixture.cs | 40 +- 22 files changed, 478 insertions(+), 310 deletions(-) create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IDataItem.cs create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseDataItem.cs diff --git a/SharpDevelop.Tests.sln b/SharpDevelop.Tests.sln index 3e53422fd3..ab85ecccf7 100644 --- a/SharpDevelop.Tests.sln +++ b/SharpDevelop.Tests.sln @@ -1,7 +1,10 @@  -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2012 +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +# SharpDevelop 4.3 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Main", "Main", "{256F5C28-532C-44C0-8AB8-D8EC5E492E01}" + ProjectSection(SolutionItems) = postProject + EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop.BuildWorker35", "src\Main\ICSharpCode.SharpDevelop.BuildWorker35\ICSharpCode.SharpDevelop.BuildWorker35.csproj", "{B5F54272-49F0-40DB-845A-8D837875D3BA}" EndProject @@ -24,6 +27,8 @@ EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SharpDevelop", "src\Main\SharpDevelop\SharpDevelop.csproj", "{1152B71B-3C05-4598-B20D-823B5D40559E}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Libraries", "Libraries", "{2A232EF1-EB95-41C6-B63A-C106E0C95D3C}" + ProjectSection(SolutionItems) = postProject + EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mono.Cecil", "src\Libraries\cecil\Mono.Cecil.csproj", "{D68133BD-1E63-496E-9EDE-4FBDBF77B486}" EndProject @@ -53,14 +58,20 @@ EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Decompiler", "src\Libraries\ICSharpCode.Decompiler\ICSharpCode.Decompiler.csproj", "{984CC812-9470-4A13-AFF9-CC44068D666C}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AddIns", "AddIns", "{39327899-ED91-4F7F-988C-4FE4E17C014D}" + ProjectSection(SolutionItems) = postProject + EndProjectSection EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Version Control", "Version Control", "{F208FF4F-E5D8-41D5-A7C7-B463976F156E}" + ProjectSection(SolutionItems) = postProject + EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GitAddIn", "src\AddIns\VersionControl\GitAddIn\GitAddIn.csproj", "{83F15BA7-8478-4664-81BB-A82F146D88B3}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SubversionAddIn", "src\AddIns\VersionControl\SubversionAddIn\SubversionAddIn.csproj", "{17F4D7E0-6933-4C2E-8714-FD7E98D625D5}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Language Bindings", "Language Bindings", "{E0646C25-36F2-4524-969F-FA621353AB94}" + ProjectSection(SolutionItems) = postProject + EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CSharpBinding", "src\AddIns\BackendBindings\CSharpBinding\Project\CSharpBinding.csproj", "{1F1AC7CD-D154-45BB-8EAF-804CA8055F5A}" EndProject @@ -85,6 +96,8 @@ EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Scripting.Tests", "src\AddIns\BackendBindings\Scripting\Test\ICSharpCode.Scripting.Tests.csproj", "{85C09AD8-183B-403A-869A-7226646218A9}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Misc", "Misc", "{F3662720-9EA2-4591-BBC6-97361DCE50A9}" + ProjectSection(SolutionItems) = postProject + EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HelpViewer", "src\AddIns\Misc\HelpViewer\HelpViewer.csproj", "{80F76D10-0B44-4D55-B4BD-DAEB5464090C}" EndProject @@ -101,6 +114,8 @@ EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RegExpTk", "src\AddIns\Misc\RegExpTk\Project\RegExpTk.csproj", "{64A3E5E6-90BF-47F6-94DF-68C94B62C817}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "UsageDataCollector", "UsageDataCollector", "{DEFC8584-BEC3-4921-BD0F-40482E450B7B}" + ProjectSection(SolutionItems) = postProject + EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UsageDataCollector", "src\AddIns\Misc\UsageDataCollector\UsageDataCollector\UsageDataCollector.csproj", "{6B1CFE35-DA17-4DEB-9C6E-227E5E251DA0}" EndProject @@ -113,6 +128,8 @@ EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TextTemplating", "src\AddIns\Misc\TextTemplating\Project\TextTemplating.csproj", "{B5D8C3E6-42EC-4D4B-AD05-3644B32563EF}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "PackageManagement", "PackageManagement", "{485A4CCF-55CF-49F4-BD6D-A22B788C67DA}" + ProjectSection(SolutionItems) = postProject + EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PackageManagement", "src\AddIns\Misc\PackageManagement\Project\PackageManagement.csproj", "{AE4AB0FA-6087-4480-AF37-0FA1452B3DA1}" EndProject @@ -120,8 +137,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PackageManagement.Tests", " EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PackageManagement.PowerShell", "src\AddIns\Misc\PackageManagement\PowerShell\Project\PackageManagement.PowerShell.csproj", "{A406803B-C584-43A3-BCEE-A0BB3132CB5F}" EndProject -Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "SharpDevelop.EnvDTE", "src\AddIns\Misc\PackageManagement\SharpDevelop.EnvDTE\SharpDevelop.EnvDTE.vbproj", "{1B753D7F-7C77-4D5E-B928-02982690879C}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Reports.Core", "src\AddIns\Misc\Reports\ICSharpCode.Reports.Core\ICSharpCode.Reports.Core.csproj", "{4B2239FF-8FD6-431D-9D22-1B8049BA6917}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Reports.Core.Test", "src\AddIns\Misc\Reports\ICSharpCode.Reports.Core\Test\ICSharpCode.Reports.Core.Test\ICSharpCode.Reports.Core.Test.csproj", "{E16B73CA-3603-47EE-915E-6F8B2A07304B}" @@ -135,6 +150,8 @@ EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Reporting.Test", "src\AddIns\Misc\Reporting\ICSharpCode.Reporting\Test\ICSharpCode.Reporting.Test\ICSharpCode.Reporting.Test.csproj", "{97CA9CE5-B966-48DF-BB59-F00FFC534B1F}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Display Bindings", "Display Bindings", "{11BF9245-88A3-4A0A-9A8A-EC9D98036B0F}" + ProjectSection(SolutionItems) = postProject + EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AvalonEdit.AddIn", "src\AddIns\DisplayBindings\AvalonEdit.AddIn\AvalonEdit.AddIn.csproj", "{0162E499-42D0-409B-AA25-EED21F75336B}" EndProject @@ -149,6 +166,8 @@ EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ILSpyAddIn", "src\AddIns\DisplayBindings\ILSpyAddIn\ILSpyAddIn.csproj", "{8AA421C8-D7AF-4957-9F43-5135328ACB24}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Data", "Data", "{0F5192F2-0744-4BA9-A074-6BE82D111B8D}" + ProjectSection(SolutionItems) = postProject + EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Data.Addin", "src\AddIns\DisplayBindings\Data\ICSharpCode.Data.Addin\ICSharpCode.Data.Addin.csproj", "{A9F12710-24E4-46D4-832C-6ECB395B9EAD}" EndProject @@ -163,6 +182,8 @@ EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Data.SQLServer", "src\AddIns\DisplayBindings\Data\ICSharpCode.Data.SQLServer\ICSharpCode.Data.SQLServer.csproj", "{AFE34868-AFA1-4E1C-9450-47AB4BE329D5}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "WpfDesign", "WpfDesign", "{83BAB756-1010-4A2F-9B9D-7F9EBCB288F5}" + ProjectSection(SolutionItems) = postProject + EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WpfDesign", "src\AddIns\DisplayBindings\WpfDesign\WpfDesign\Project\WpfDesign.csproj", "{66A378A1-E9F4-4AD5-8946-D0EC06C2902F}" EndProject @@ -175,6 +196,8 @@ EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WpfDesign.XamlDom", "src\AddIns\DisplayBindings\WpfDesign\WpfDesign.XamlDom\Project\WpfDesign.XamlDom.csproj", "{88DA149F-21B2-48AB-82C4-28FB6BDFD783}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Debugger", "Debugger", "{AF5E0DC1-1FA0-4346-A436-0C817C68F7C1}" + ProjectSection(SolutionItems) = postProject + EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Debugger.Core", "src\AddIns\Debugger\Debugger.Core\Debugger.Core.csproj", "{1D18D788-F7EE-4585-A23B-34DC8EC63CB8}" EndProject @@ -183,6 +206,8 @@ EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Debugger.Tests", "src\AddIns\Debugger\Debugger.Tests\Debugger.Tests.csproj", "{A4C858C8-51B6-4265-A695-A20FCEBA1D19}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Analysis", "Analysis", "{B3352C08-3CB4-4DD9-996F-B9DCE4356BB9}" + ProjectSection(SolutionItems) = postProject + EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnitTesting", "src\AddIns\Analysis\UnitTesting\UnitTesting.csproj", "{1F261725-6318-4434-A1B1-6C70CE4CD324}" EndProject @@ -190,14 +215,16 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnitTesting.Tests", "src\Ad EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CodeAnalysis", "src\AddIns\Analysis\CodeAnalysis\CodeAnalysis.csproj", "{3EAA45A9-735C-4AC7-A799-947B93EA449D}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SourceAnalysis", "src\AddIns\Analysis\SourceAnalysis\SourceAnalysis.csproj", "{C16BEA37-FEE8-4792-B860-48F5BFBD39A9}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CodeCoverage.Tests", "src\AddIns\Analysis\CodeCoverage\Test\CodeCoverage.Tests.csproj", "{A5C0E8F8-9D04-46ED-91D6-1DEF1575313B}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CodeCoverage", "src\AddIns\Analysis\CodeCoverage\Project\CodeCoverage.csproj", "{08CE9972-283B-44F4-82FA-966F7DFA6B7A}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PortSD4AddInToSD5", "samples\PortSD4AddInToSD5\PortSD4AddInToSD5.csproj", "{E2FD63DA-8478-4066-934C-DA82A852C83A}" EndProject +Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "SharpDevelop.EnvDTE", "src\AddIns\Misc\PackageManagement\SharpDevelop.EnvDTE\SharpDevelop.EnvDTE.vbproj", "{1B753D7F-7C77-4D5E-B928-02982690879C}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SourceAnalysis", "src\AddIns\Analysis\SourceAnalysis\SourceAnalysis.csproj", "{C16BEA37-FEE8-4792-B860-48F5BFBD39A9}" +EndProject Project("{00000000-0000-0000-0000-000000000000}") = "Tools", "src\Tools\Tools.build", "{3DF4060F-5EE0-41CF-8096-F27355FD5511}" EndProject Global diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj index 863553ae25..858ca8d377 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj @@ -107,9 +107,11 @@ + + diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Arrange/ArrangeStrategy.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Arrange/ArrangeStrategy.cs index b05d3d0acc..0f873ba336 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Arrange/ArrangeStrategy.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Arrange/ArrangeStrategy.cs @@ -54,17 +54,30 @@ namespace ICSharpCode.Reporting.Arrange } } - private void FindBiggestRectangle (IExportContainer container) { - BiggestRectangle = Rectangle.Empty; - foreach (var item in container.ExportedItems) { - if (item.DesiredSize.Height > BiggestRectangle.Size.Height) { - BiggestRectangle = new Rectangle(new Point(container.Location.X + item.Location.X, - container.Location.Y + item.Location.Y) - ,item.DesiredSize); - } - } + private void FindBiggestRectangle (IExportContainer container) + { + BiggestRectangle = Rectangle.Empty; + /* + foreach (var item in container.ExportedItems) + { + if (item.DesiredSize.Height > BiggestRectangle.Size.Height) + { + BiggestRectangle = new Rectangle(new Point(container.Location.X + item.Location.X, + container.Location.Y + item.Location.Y) + , item.DesiredSize); + } + } + */ + foreach (var item in container.ExportedItems + .Where(item => item.DesiredSize.Height > BiggestRectangle.Size.Height)) + { + BiggestRectangle = new Rectangle(new Point(container.Location.X + item.Location.X, + container.Location.Y + item.Location.Y) + ,item.DesiredSize); + } } - public Rectangle BiggestRectangle {get; private set;} + + public Rectangle BiggestRectangle {get; private set;} } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/AbstractColumn.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/AbstractColumn.cs index d737efca99..eed93e3b9d 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/AbstractColumn.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/AbstractColumn.cs @@ -16,19 +16,13 @@ namespace ICSharpCode.Reporting.BaseClasses /// public class AbstractColumn { - private string columnName; private Type dataType; private string dataTypeName; public AbstractColumn() { this.dataType = typeof(System.String); - this.columnName = string.Empty; } -// public AbstractColumn(string columnName){ -// this.columnName = columnName; -// this.dataType = typeof(System.String); -// } public AbstractColumn(string columnName, Type dataType){ this.ColumnName = columnName; diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/GroupColumn.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/GroupColumn.cs index a11b4f896a..708f69a922 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/GroupColumn.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/GroupColumn.cs @@ -31,8 +31,8 @@ namespace ICSharpCode.Reporting.BaseClasses } - public int GroupLevel {get;private set; + public int GroupLevel {get;private set;} - } + } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/SortColumn.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/SortColumn.cs index ca6ce7e5aa..aa26f9c158 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/SortColumn.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/SortColumn.cs @@ -24,11 +24,7 @@ namespace ICSharpCode.Reporting.BaseClasses { } - public SortColumn(string columnName,Type type ):this(columnName,ListSortDirection.Ascending,type,false) - { - } - - + public SortColumn(string columnName,ListSortDirection sortDirection) :this(columnName,sortDirection,typeof(System.String),false){ } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Collections.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Collections.cs index c0e83f2281..530e58d2e1 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Collections.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Collections.cs @@ -13,6 +13,7 @@ using System.Globalization; using System.Linq; using ICSharpCode.Reporting.BaseClasses; +using ICSharpCode.Reporting.Items; namespace ICSharpCode.Reporting { @@ -96,4 +97,22 @@ namespace ICSharpCode.Reporting return this.FirstOrDefault(x => 0 == String.Compare(x.ColumnName,columnName,true,CultureInfo.InvariantCulture)); } } + + /* + public class ReportItemCollection : Collection + { + + // Trick to get the inner list as List (InnerList always has that type because we only use + // the parameterless constructor on Collection) + + private List InnerList { + get { return (List)base.Items; } + } + + private void Sort(IComparer comparer) + { + InnerList.Sort(comparer); + } + } + */ } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataManager/Listhandling/CollectionSource.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataManager/Listhandling/CollectionSource.cs index d1b93eae9f..9314000e42 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataManager/Listhandling/CollectionSource.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataManager/Listhandling/CollectionSource.cs @@ -13,10 +13,13 @@ using System.Collections.ObjectModel; using System.ComponentModel; using System.Globalization; using System.Linq; +using System.Reflection; using ICSharpCode.Reporting.BaseClasses; +using ICSharpCode.Reporting.DataManager.Listhandling; using ICSharpCode.Reporting.DataSource; using ICSharpCode.Reporting.DataSource.Comparer; +using ICSharpCode.Reporting.Interfaces; using ICSharpCode.Reporting.Interfaces.Data; using ICSharpCode.Reporting.Items; @@ -31,13 +34,13 @@ namespace ICSharpCode.Reporting.DataManager.Listhandling private PropertyDescriptorCollection listProperties; private DataCollection baseList; private ReportSettings reportSettings; - private object current; + private Type itemType; public CollectionSource(IList list,ReportSettings reportSettings) { if (list.Count > 0) { - var itemType = list[0].GetType(); + itemType = list[0].GetType(); this.baseList = new DataCollection (itemType); this.baseList.AddRange(list); } @@ -65,10 +68,47 @@ namespace ICSharpCode.Reporting.DataManager.Listhandling public object Current { get { - throw new NotImplementedException(); + return baseList[((BaseComparer)IndexList[CurrentPosition]).ListIndex]; } } + +// public object CurrentFromPosition(int pos) +// { + // BaseComparer bc = GetComparer(value); +// Current = baseList[bc.ListIndex]; +// return baseList[((BaseComparer)IndexList[CurrentPosition]).ListIndex]; +// } + + + public int CurrentPosition { + + get { + return IndexList.CurrentPosition; + } + set { + if ((value > -1)|| (value > this.IndexList.Count)){ + this.IndexList.CurrentPosition = value; + } + +// BaseComparer bc = GetComparer(value); +// Current = baseList[bc.ListIndex]; + +// current = this.baseList[((BaseComparer)IndexList[value]).ListIndex]; + } + } + + + public bool MoveNext() + { + this.IndexList.CurrentPosition ++; + return this.IndexList.CurrentPosition a.ObjectArray[0]); + var x = sorted.GroupBy(a => a.ObjectArray[0]); + + Console.WriteLine("GroupBy()"); + foreach (var element in x) { + Console.WriteLine("{0} - {1} ",element.Key.ToString(),element is BaseComparer); + foreach (var xx in element) { + Console.WriteLine("...{0}",((BaseComparer)xx).ObjectArray[0].ToString()); + } + } + + Console.WriteLine("--------------- "); -// ShowIndexList(gl); + var aa = BuildGroup_1(unsortedList,reportSettings.GroupColumnCollection); +// ShowIndexList(IndexList); } - /* - private Dictionary BuildGroup (IndexList list) { + + private Dictionary BuildGroup_1 (IndexList list,GroupColumnCollection groups) { var dictionary = new Dictionary(); + PropertyDescriptor[] groupProperties = BuildSortProperties (groups); foreach (var element in list) { - string groupValue = ExtractValue (element); + string groupValue = ExtractValue (element,groupProperties); if (!dictionary.ContainsKey(groupValue)) { dictionary[groupValue] = new IndexList(); } dictionary[groupValue].Add(element); } - foreach (var el in dictionary) { - Console.WriteLine (el.Key.ToString()); + + Console.WriteLine("Dictonary "); + foreach (var el in dictionary.Values) { + Console.WriteLine(el.Count.ToString()); + foreach (var element in el) { + Console.WriteLine("-- {0}",element.ToString()); + } } - return dictionary; + return dictionary; } - */ - private IndexList BuildGroup (IndexList list) + + + private IndexList BuildGroup (IndexList source,GroupColumnCollection groups) { string compareValue = String.Empty; var idlist = new IndexList(); -// GroupComparer groupComparer = null; - /* - foreach (BaseComparer element in list) - { - var groupValue = ExtractValue (element); + + PropertyDescriptor[] groupProperties = BuildSortProperties (groups); + + GroupComparer groupComparer = null; + foreach (BaseComparer element in source) { + var groupValue = ExtractValue(element,groupProperties); +// var query2 = idlist.FirstOrDefault( s => ((GroupComparer)s).ObjectArray[0] == groupValue) as GroupComparer; +// if (query2 == null) { +// groupComparer = CreateGroupHeader(element); +// idlist.Add(groupComparer); +// } else { +// Console.WriteLine("xx"); +// } if (compareValue != groupValue) { groupComparer = CreateGroupHeader(element); idlist.Add(groupComparer); } groupComparer.IndexList.Add(element); + compareValue = groupValue; } - */ - - - GroupInternal(compareValue, ref idlist, list); - - ShowGrouping(ref idlist); -// ShowIndexList(IndexList); return idlist; } + void ShowGrouping(ref IndexList idlist) { Console.WriteLine("----ShowGrouping---"); @@ -146,36 +226,18 @@ namespace ICSharpCode.Reporting.DataManager.Listhandling } } } - - - void GroupInternal(string compareValue, ref IndexList idlist, IndexList list) - { - GroupComparer groupComparer = null; - foreach (BaseComparer element in list) { - var groupValue = ExtractValue(element); - if (compareValue != groupValue) { - groupComparer = CreateGroupHeader(element); - idlist.Add(groupComparer); - } - groupComparer.IndexList.Add(element); - compareValue = groupValue; - } - } - static string ExtractValue(BaseComparer element) + string ExtractValue(BaseComparer element,PropertyDescriptor[] groupProperties) { -// string val = String.Empty; -// GroupColumn gc = element.ColumnCollection[0] as GroupColumn; -// if (gc != null) { -// val = element.ObjectArray[0].ToString(); -// } -// return val; - return element.ObjectArray[0].ToString(); + var rowItem = baseList[element.ListIndex]; + var values = FillComparer(groupProperties, rowItem); +// return element.ObjectArray[0].ToString(); + return values[0].ToString(); } - protected GroupComparer CreateGroupHeader (BaseComparer sc) + static GroupComparer CreateGroupHeader (BaseComparer sc) { var gc = new GroupComparer(sc.ColumnCollection,sc.ListIndex,sc.ObjectArray); gc.IndexList = new IndexList(); @@ -184,63 +246,16 @@ namespace ICSharpCode.Reporting.DataManager.Listhandling #endregion - public void Sort() - { - if ((this.reportSettings.SortColumnsCollection != null)) { - if (this.reportSettings.SortColumnsCollection.Count > 0) { - IndexList = this.BuildSortIndex (reportSettings.SortColumnsCollection); - } else { - IndexList = this.UnsortedIndexList(reportSettings.SortColumnsCollection); - } - } - } - - - public bool MoveNext() - { - throw new NotImplementedException(); - } - - public void Reset() - { - this.CurrentPosition = 0; - this.IndexList.CurrentPosition = -1; - } + #region BuildIndexList - public IndexList IndexList {get; private set;} - - - - - IndexList BuildSortIndex(SortColumnCollection sortColumnsCollection) + IndexList BuildSortIndex(Collection sortColumnsCollection) { - var indexList = new IndexList(); - PropertyDescriptor[] sortProperties = BuildSortProperties (sortColumnsCollection); - for (int rowIndex = 0; rowIndex < this.baseList.Count; rowIndex++){ - object rowItem = this.baseList[rowIndex]; - object[] values = new object[sortColumnsCollection.Count]; - - // Hier bereits Wertabruf um dies nicht während des Sortierens tun zu müssen. - for (int criteriaIndex = 0; criteriaIndex < sortProperties.Length; criteriaIndex++){ - object value = sortProperties[criteriaIndex].GetValue(rowItem); - // Hier auf Verträglichkeit testen um Vergleiche bei Sortierung zu vereinfachen. - // Muss IComparable und gleicher Typ sein. - - if (value != null && value != DBNull.Value) - { - if (!(value is IComparable)){ - throw new InvalidOperationException("ReportDataSource:BuildSortArray - > This type doesn't support IComparable." + value.ToString()); - } - - values[criteriaIndex] = value; - } - } - indexList.Add(new SortComparer(sortColumnsCollection, rowIndex, values)); - } + + IndexList indexList = BuildIndexInternal(sortColumnsCollection); if (indexList[0].ObjectArray.GetLength(0) == 1) { - List sortedList = GenericSorter (indexList); + IEnumerable sortedList = GenericSorter (indexList); indexList.Clear(); indexList.AddRange(sortedList); } @@ -249,42 +264,78 @@ namespace ICSharpCode.Reporting.DataManager.Listhandling } return indexList; } + + + + IndexList BuildIndexInternal(Collection sortColumnsCollection) + { + var indexList = new IndexList(); + PropertyDescriptor[] sortProperties = BuildSortProperties(sortColumnsCollection); + for (int rowIndex = 0; rowIndex < this.baseList.Count; rowIndex++) { + var rowItem = this.baseList[rowIndex]; + var values = FillComparer(sortProperties, rowItem); + indexList.Add(new SortComparer(sortColumnsCollection, rowIndex, values)); + } + return indexList; + } + + #endregion #region Sorting delegates - static List GenericSorter (List list) + public void Sort() + { + if ((this.reportSettings.SortColumnsCollection != null)) { + if (this.reportSettings.SortColumnsCollection.Count > 0) { + IndexList = this.BuildSortIndex (reportSettings.SortColumnsCollection); + } else { + IndexList = this.BuildIndexInternal(reportSettings.SortColumnsCollection); + } + } + } + + static IEnumerable GenericSorter (List list) { List sortedList = null; ListSortDirection sortDirection = GetSortDirection(list); - if (sortDirection == ListSortDirection.Ascending) { - sortedList = list.AsQueryable().AscendingOrder().ToList(); - } else { - - sortedList = list.AsQueryable().DescendingOrder().ToList(); - } + sortedList = sortDirection == ListSortDirection.Ascending ? list.AsQueryable().AscendingOrder().ToList() : list.AsQueryable().DescendingOrder().ToList(); return sortedList; } + static ListSortDirection GetSortDirection(List list) { BaseComparer bc = list[0]; - SortColumn sortColumn = bc.ColumnCollection[0] as SortColumn; + var sortColumn = bc.ColumnCollection[0] as SortColumn; ListSortDirection sd = sortColumn.SortDirection; return sd; } - #endregion + Object[] FillComparer(PropertyDescriptor[] sortProperties, object rowItem) + { + object[] values = new object[sortProperties.Length]; + for (int criteriaIndex = 0; criteriaIndex < sortProperties.Length; criteriaIndex++) { + object value = sortProperties[criteriaIndex].GetValue(rowItem); + if (value != null && value != DBNull.Value) { + if (!(value is IComparable)) { + throw new InvalidOperationException("ReportDataSource:BuildSortArray - > This type doesn't support IComparable." + value.ToString()); + } + values[criteriaIndex] = value; + } + } + return values; + } - private PropertyDescriptor[] BuildSortProperties (SortColumnCollection sortColumnCollection) + private PropertyDescriptor[] BuildSortProperties (Collection sortColumnCollection) { - PropertyDescriptor[] sortProperties = new PropertyDescriptor[sortColumnCollection.Count]; - PropertyDescriptorCollection descriptorCollection = this.baseList.GetItemProperties(null); + var sortProperties = new PropertyDescriptor[sortColumnCollection.Count]; + var descriptorCollection = this.baseList.GetItemProperties(null); - for (int criteriaIndex = 0; criteriaIndex < sortColumnCollection.Count; criteriaIndex++){ - PropertyDescriptor descriptor = descriptorCollection.Find (sortColumnCollection[criteriaIndex].ColumnName,true); + for (var criteriaIndex = 0; criteriaIndex < sortColumnCollection.Count; criteriaIndex++){ + var descriptor = descriptorCollection.Find (sortColumnCollection[criteriaIndex].ColumnName,true); if (descriptor == null){ throw new InvalidOperationException(String.Format(CultureInfo.CurrentCulture, @@ -297,70 +348,42 @@ namespace ICSharpCode.Reporting.DataManager.Listhandling } - IndexList UnsortedIndexList(SortColumnCollection sortColumnsCollection) + BaseComparer GetComparer(int position) { - IndexList arrayList = new IndexList(); - for (int rowIndex = 0; rowIndex < this.baseList.Count; rowIndex++){ - object[] values = new object[1]; - arrayList.Add(new SortComparer(sortColumnsCollection, rowIndex, values)); - } - return arrayList; - } - - - public int CurrentPosition { - - get { - return IndexList.CurrentPosition; - } - set { - if ((value > -1)|| (value > this.IndexList.Count)){ - this.IndexList.CurrentPosition = value; - } -// var a = this.baseList[((BaseComparer)IndexList[value])]; - - BaseComparer bc = GetComparer(value); -// var bc = (BaseComparer)IndexList[value]; -// var i = bc.ListIndex; - - var myCurrent = baseList[bc.ListIndex]; - current = baseList[bc.ListIndex]; - -// current = this.baseList[((BaseComparer)IndexList[value]).ListIndex]; - } - } - - - BaseComparer GetComparer(int value) - { - var bc = (BaseComparer)IndexList[value]; -// var i = bc.ListIndex; + var bc = (BaseComparer)IndexList[position]; return bc; } + #endregion #region Debug Code - - protected static void ShowIndexList (IndexList list) + + private static void ShowIndexList (IndexList list) { - foreach (BaseComparer element in list) { - string s = String.Format("{0} ",element.ObjectArray[0]); - GroupComparer gc = element as GroupComparer; - if ( gc != null) { - s = s + "GroupHeader"; - if (gc.IndexList != null) { - s = s + String.Format(" <{0}> Childs",gc.IndexList.Count); - } - System.Console.WriteLine(s); - foreach (BaseComparer c in gc.IndexList) { + var groupComparer = element as GroupComparer; + if (groupComparer == null) continue; + if (groupComparer.IndexList.Any()) { + var ss = String.Format("{0} with {1} Children",element.ObjectArray[0],groupComparer.IndexList.Count); + System.Console.WriteLine(ss); + foreach (BaseComparer c in groupComparer.IndexList) { Console.WriteLine("---- {0}",c.ObjectArray[0]); } } } } + static string WrongColumnName(string propertyName) + { + return String.Format(CultureInfo.InvariantCulture, "Error : <{0}> missing!", propertyName); + } #endregion + + + public void Reset() + { + throw new NotImplementedException(); + } } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataSource/Comparer/BaseComparer.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataSource/Comparer/BaseComparer.cs index 8413c8aeda..7186a333d5 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataSource/Comparer/BaseComparer.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataSource/Comparer/BaseComparer.cs @@ -7,6 +7,8 @@ * To change this template use Tools | Options | Coding | Edit Standard Headers. */ using System; +using System.Collections.ObjectModel; +using ICSharpCode.Reporting.BaseClasses; namespace ICSharpCode.Reporting.DataSource.Comparer { @@ -18,13 +20,12 @@ namespace ICSharpCode.Reporting.DataSource.Comparer private int listIndex; private object[] objectArray; - ColumnCollection columnCollection; /// /// Default constructor - initializes all fields to default values /// - public BaseComparer(ColumnCollection columnCollection , int listIndex, object[] values) { - this.columnCollection = columnCollection; + public BaseComparer(Collection columnCollection , int listIndex, object[] values) { + this.ColumnCollection = columnCollection; this.listIndex = listIndex; this.objectArray = values; } @@ -85,10 +86,7 @@ namespace ICSharpCode.Reporting.DataSource.Comparer } - public ColumnCollection ColumnCollection { - get { - return columnCollection; - } - } + public Collection ColumnCollection {get;private set;} + } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataSource/Comparer/GroupComparer.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataSource/Comparer/GroupComparer.cs index 904703d0e7..77c011c4cd 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataSource/Comparer/GroupComparer.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataSource/Comparer/GroupComparer.cs @@ -7,6 +7,8 @@ * To change this template use Tools | Options | Coding | Edit Standard Headers. */ using System; +using System.Collections.ObjectModel; +using ICSharpCode.Reporting.BaseClasses; using ICSharpCode.Reporting.DataManager.Listhandling; namespace ICSharpCode.Reporting.DataSource.Comparer @@ -17,7 +19,7 @@ namespace ICSharpCode.Reporting.DataSource.Comparer public class GroupComparer :SortComparer { - public GroupComparer (ColumnCollection owner, int listIndex, object[] values):base(owner,listIndex,values) + public GroupComparer (Collection owner, int listIndex, object[] values):base(owner,listIndex,values) { IndexList = new IndexList(); } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataSource/Comparer/SortComparer.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataSource/Comparer/SortComparer.cs index 04f525b17f..d32cf61ac7 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataSource/Comparer/SortComparer.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataSource/Comparer/SortComparer.cs @@ -7,6 +7,7 @@ * To change this template use Tools | Options | Coding | Edit Standard Headers. */ using System; +using System.Collections.ObjectModel; using System.ComponentModel; using System.Globalization; @@ -19,7 +20,7 @@ namespace ICSharpCode.Reporting.DataSource.Comparer /// public class SortComparer : BaseComparer { - public SortComparer(ColumnCollection owner, int listIndex, object[] values):base(owner,listIndex,values) + public SortComparer(Collection owner, int listIndex, object[] values):base(owner,listIndex,values) { } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataSource/DataCollection.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataSource/DataCollection.cs index 130a7a09ed..aca077e9f2 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataSource/DataCollection.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataSource/DataCollection.cs @@ -12,6 +12,7 @@ using System.Collections.Generic; using System.Collections.ObjectModel; using System.ComponentModel; using System.Diagnostics; +using System.Linq; using System.Reflection; namespace ICSharpCode.Reporting.DataSource @@ -112,13 +113,12 @@ namespace ICSharpCode.Reporting.DataSource public PropertyDescriptorCollection GetItemProperties(PropertyDescriptor[] listAccessors){ if (listAccessors != null && listAccessors.Length > 0){ - Type t = this.elementType; - - for(int i = 0; i < listAccessors.Length; i++){ - PropertyDescriptor pd = listAccessors[i]; - t = (Type) PropertyTypeHash.Instance[t, pd.Name]; - } - // if t is null an empty list will be generated + var t = this.elementType; + + t = listAccessors.Aggregate(t, + (current, pd) => (Type) PropertyTypeHash.Instance[current, pd.Name]); + + // if t is null an empty list will be generated return ExtendedTypeDescriptor.GetProperties(t); } return ExtendedTypeDescriptor.GetProperties(elementType); @@ -143,7 +143,7 @@ namespace ICSharpCode.Reporting.DataSource } if (al == null && element == null) { - PropertyInfo pi = parentType.GetProperty(propertyName); + var pi = parentType.GetProperty(propertyName); if (pi != null) { object parentObject = null; @@ -172,18 +172,20 @@ namespace ICSharpCode.Reporting.DataSource private static DataCollection CheckForArrayList(object l) { - IList list = l as IList; + var list = l as IList; if (list == null) return null; if (list.GetType().FullName == "System.Collections.ArrayList+ReadOnlyArrayList") { - FieldInfo fi = list.GetType().GetField("_list", BindingFlags.NonPublic | BindingFlags.Instance); + var fi = list.GetType().GetField("_list", BindingFlags.NonPublic | BindingFlags.Instance); if (fi != null) { list = (IList) fi.GetValue(list); } } +// ReSharper disable SuspiciousTypeConversion.Global return list as DataCollection; +// ReSharper restore SuspiciousTypeConversion.Global } #endregion diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataSource/ExtendedPropertyDescriptor.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataSource/ExtendedPropertyDescriptor.cs index 80d14fd170..3ce56dff2e 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataSource/ExtendedPropertyDescriptor.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataSource/ExtendedPropertyDescriptor.cs @@ -33,6 +33,7 @@ namespace ICSharpCode.Reporting.DataSource public override object GetValue (object component) { + var x = component.GetType(); if (!componentType.IsAssignableFrom(component.GetType())){ return null; } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ExportRenderer/FixedDocumentCreator.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ExportRenderer/FixedDocumentCreator.cs index e681dc5de4..39eef69ea2 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ExportRenderer/FixedDocumentCreator.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ExportRenderer/FixedDocumentCreator.cs @@ -63,7 +63,7 @@ namespace ICSharpCode.Reporting.ExportRenderer public TextBlock CreateTextBlock(ExportText exportText) { - TextBlock textBlock = new TextBlock(); + var textBlock = new TextBlock(); textBlock.Text = exportText.Text; textBlock.Foreground = ConvertBrush(exportText.ForeColor); SetFont(textBlock,exportText); @@ -135,7 +135,7 @@ namespace ICSharpCode.Reporting.ExportRenderer void CreateStrikeout (TextBlock textBlock,ExportColumn exportColumn ) { - TextDecoration strikeOut = new TextDecoration(); + var strikeOut = new TextDecoration(); strikeOut.Location = TextDecorationLocation.Strikethrough; Pen p = CreateWpfPen(exportColumn); @@ -147,7 +147,7 @@ namespace ICSharpCode.Reporting.ExportRenderer void CreateUnderline(TextBlock textBlock,ExportColumn exportColumn) { - TextDecoration underLine = new TextDecoration(); + var underLine = new TextDecoration(); Pen p = CreateWpfPen(exportColumn); underLine.Pen = p ; underLine.PenThicknessUnit = TextDecorationUnit.FontRecommended; @@ -157,7 +157,7 @@ namespace ICSharpCode.Reporting.ExportRenderer Pen CreateWpfPen(ExportColumn exportColumn) { - Pen myPen = new Pen(); + var myPen = new Pen(); myPen.Brush = ConvertBrush(exportColumn.ForeColor); myPen.Thickness = 1.5; return myPen; diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/BaseExporter.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/BaseExporter.cs index 448fa6627c..484a53f7ac 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/BaseExporter.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Exporter/BaseExporter.cs @@ -29,8 +29,8 @@ namespace ICSharpCode.Reporting.Exporter public virtual void Run () { } - - - public Collection Pages {get; private set;} + + + protected Collection Pages {get; set;} } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/Data/IDataViewHandling.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/Data/IDataViewHandling.cs index 12c5c3b82b..984dcf6cd6 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/Data/IDataViewHandling.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/Data/IDataViewHandling.cs @@ -29,7 +29,7 @@ namespace ICSharpCode.Reporting.Interfaces.Data // void Fill (int position,ReportItemCollection collection); //rausnehmen -// void Fill (IDataItem item); + void Fill (IDataItem item); IndexList IndexList {get;} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IDataItem.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IDataItem.cs new file mode 100644 index 0000000000..77c34ff106 --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/IDataItem.cs @@ -0,0 +1,26 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 29.05.2013 + * Time: 20:10 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; + +namespace ICSharpCode.Reporting.Interfaces +{ + /// + /// Description of IDataItem. + /// + public interface IDataItem + { + + string ColumnName { get; set; } +// string MappingName { get; } +// string BaseTableName { get; set; } + string DBValue {get;set;} + string Name {get;set;} + string DataType {get;set;} + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseDataItem.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseDataItem.cs new file mode 100644 index 0000000000..8424e0e07a --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/BaseDataItem.cs @@ -0,0 +1,30 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 29.05.2013 + * Time: 20:08 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using ICSharpCode.Reporting.Interfaces; + +namespace ICSharpCode.Reporting.Items +{ + /// + /// Description of BaseDataItem. + /// + public class BaseDataItem:BaseTextItem,IDataItem + { + public BaseDataItem() + { + } + + public virtual string DBValue {get;set;} + + public virtual string ColumnName {get;set;} + + public string DataType {get;set;} + + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/BasePageBuilder.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/BasePageBuilder.cs index 9f7f3dafd7..1ddd47bd2e 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/BasePageBuilder.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/BasePageBuilder.cs @@ -65,8 +65,8 @@ namespace ICSharpCode.Reporting.PageBuilder protected IReportModel ReportModel {get; private set;} protected Point CurrentLocation {get; set;} - - public IPage CurrentPage {get; protected set;} + + protected IPage CurrentPage {get; set;} public Collection Pages {get; private set;} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Wpf/PreviewViewModel.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Wpf/PreviewViewModel.cs index d5b98e9d4c..79ebd78f17 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Wpf/PreviewViewModel.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Wpf/PreviewViewModel.cs @@ -45,7 +45,7 @@ namespace ICSharpCode.Reporting.WpfReportViewer static void AddPageToDocument(FixedDocument fixedDocument,FixedPage page) { - PageContent pageContent = new PageContent(); + var pageContent = new PageContent(); ((IAddChild)pageContent).AddChild(page); fixedDocument.Pages.Add(pageContent); } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Xml/MycroParser.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Xml/MycroParser.cs index aa469d6db7..215411ffba 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Xml/MycroParser.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Xml/MycroParser.cs @@ -39,8 +39,8 @@ namespace ICSharpCode.Reporting.Xml } protected abstract Type GetTypeByName(string ns, string name); - - protected object ProcessNode(XmlNode node, object parent) + + private object ProcessNode(XmlNode node, object parent) { object ret=null; if (node is XmlElement) @@ -99,92 +99,90 @@ namespace ICSharpCode.Reporting.Xml protected void ProcessChildProperties(XmlNode node, object parent) { - Type t=parent.GetType(); + var t=parent.GetType(); // children of a class must always be properties foreach(XmlNode child in node.ChildNodes) { - if (child is XmlElement) - { - string pname=child.LocalName; - PropertyInfo pi=t.GetProperty(pname); - - if (pi==null) - { - // Special case--we're going to assume that the child is a class instance - // not associated with the parent object + if (!(child is XmlElement)) continue; + string pname=child.LocalName; + var pi=t.GetProperty(pname); + + if (pi==null) + { + // Special case--we're going to assume that the child is a class instance + // not associated with the parent object // Trace.Fail("Unsupported property: "+pname); - System.Console.WriteLine("Unsupported property: "+pname); - continue; - } - - // a property can only have one child node unless it's a collection - foreach(XmlNode grandChild in child.ChildNodes) - { - if (grandChild is XmlText) { - SetPropertyToString(parent, pi, child.InnerText); - break; - } - else if (grandChild is XmlElement) - { - object propObject=pi.GetValue(parent, null); - object obj=ProcessNode(grandChild, propObject); - - // A null return is valid in cases where a class implementing the IMicroXaml interface - // might want to take care of managing the instance it creates itself. See DataBinding - if (obj != null) - { - - // support for ICollection objects - if (propObject is ICollection) - { - MethodInfo mi=t.GetMethod("Add", new Type[] {obj.GetType()}); - if (mi != null) - { - try - { - mi.Invoke(obj, new object[] {obj}); - } - catch(Exception e) - { - Trace.Fail("Adding to collection failed:\r\n"+e.Message); - } - } - else if (propObject is IList) - { - try - { - ((IList)propObject).Add(obj); - } - catch(Exception e) - { - Trace.Fail("List/Collection add failed:\r\n"+e.Message); - } - } - } - else if (!pi.CanWrite) { - Trace.Fail("Unsupported read-only property: "+pname); - } - else - { - // direct assignment if not a collection - try - { - pi.SetValue(parent, obj, null); - } - catch(Exception e) - { - Trace.Fail("Property setter for "+pname+" failed:\r\n"+e.Message); - } - } - } - } - } - } + System.Console.WriteLine("Unsupported property: "+pname); + continue; + } + + // a property can only have one child node unless it's a collection + foreach(XmlNode grandChild in child.ChildNodes) + { + if (grandChild is XmlText) { + SetPropertyToString(parent, pi, child.InnerText); + break; + } + else if (grandChild is XmlElement) + { + var propObject=pi.GetValue(parent, null); + var obj=ProcessNode(grandChild, propObject); + + // A null return is valid in cases where a class implementing the IMicroXaml interface + // might want to take care of managing the instance it creates itself. See DataBinding + if (obj != null) + { + + // support for ICollection objects + if (propObject is ICollection) + { + MethodInfo mi=t.GetMethod("Add", new Type[] {obj.GetType()}); + if (mi != null) + { + try + { + mi.Invoke(obj, new object[] {obj}); + } + catch(Exception e) + { + Trace.Fail("Adding to collection failed:\r\n"+e.Message); + } + } + else if (propObject is IList) + { + try + { + ((IList)propObject).Add(obj); + } + catch(Exception e) + { + Trace.Fail("List/Collection add failed:\r\n"+e.Message); + } + } + } + else if (!pi.CanWrite) { + Trace.Fail("Unsupported read-only property: "+pname); + } + else + { + // direct assignment if not a collection + try + { + pi.SetValue(parent, obj, null); + } + catch(Exception e) + { + Trace.Fail("Property setter for "+pname+" failed:\r\n"+e.Message); + } + } + } + } + } } } - protected void ProcessAttributes(XmlNode node, object ret, Type type) + private void ProcessAttributes(XmlNode node, object ret, Type type) { // process attributes foreach(XmlAttribute attr in node.Attributes) @@ -207,8 +205,8 @@ namespace ICSharpCode.Reporting.Xml } } } - - void SetPropertyToString(object obj, PropertyInfo pi, string value) + + static void SetPropertyToString(object obj, PropertyInfo pi, string value) { Console.WriteLine("MP - SetPropertyToString {0} - {1}",pi.Name,value.ToString()); // it's string, so use a type converter. diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/DataSource/CollectionHandlingFixture.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/DataSource/CollectionHandlingFixture.cs index 0c61e908bb..6cb7416d66 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/DataSource/CollectionHandlingFixture.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/DataSource/CollectionHandlingFixture.cs @@ -9,7 +9,7 @@ using System; using System.Collections.Generic; using System.ComponentModel; - +using System.Linq; using ICSharpCode.Reporting.BaseClasses; using ICSharpCode.Reporting.DataManager.Listhandling; using ICSharpCode.Reporting.DataSource; @@ -31,6 +31,21 @@ namespace ICSharpCode.Reporting.Test.DataSource Assert.That(collectionSource,Is.Not.Null); } + [Test] + public void CurrentpositionShouldZeroAfterBind () { + var collectionSource = new CollectionSource (list,new ReportSettings()); + collectionSource.Bind(); + Assert.That(collectionSource.CurrentPosition,Is.EqualTo(0)); + } + + [Test] + public void CurrentPositionIsTwo () { + var collectionSource = new CollectionSource (list,new ReportSettings()); + collectionSource.Bind(); + collectionSource.MoveNext(); + collectionSource.MoveNext(); + Assert.That(collectionSource.CurrentPosition,Is.EqualTo(2)); + } [Test] public void CollectionCountIsEqualToListCount() { @@ -45,6 +60,21 @@ namespace ICSharpCode.Reporting.Test.DataSource Assert.That(collectionSource.AvailableFields.Count,Is.EqualTo(6)); } + #region Fill + [Test] + public void justFill() { + var collectionSource = new CollectionSource (list,new ReportSettings()); + collectionSource.Bind(); + var a = collectionSource.MoveNext(); + collectionSource.Fill(new BaseDataItem() { + ColumnName = "Lastname" + }); + + + } + #endregion + + #region Grouping [Test] @@ -55,6 +85,12 @@ namespace ICSharpCode.Reporting.Test.DataSource collectionSource.Bind(); } + + [Test] + public void bla () { + var s = list.OrderBy(a => a.Lastname); + var x = s.GroupBy(y => y.GroupItem); + } #endregion #region Sort @@ -65,7 +101,7 @@ namespace ICSharpCode.Reporting.Test.DataSource var collectionSource = new CollectionSource (list,new ReportSettings()); collectionSource.Bind(); Assert.That(collectionSource.IndexList.Count,Is.EqualTo(collectionSource.Count)); - Assert.That(collectionSource.IndexList.CurrentPosition,Is.EqualTo(-1)); + Assert.That(collectionSource.IndexList.CurrentPosition,Is.EqualTo(0)); } From ddfff10c612978ccae29b5e9bf91be3c16e8e45c Mon Sep 17 00:00:00 2001 From: Peter Forstmeier Date: Sat, 1 Jun 2013 19:58:35 +0200 Subject: [PATCH 31/33] Fill, ReportCreatorFactory --- .../ICSharpCode.Reporting.csproj | 1 + .../ICSharpCode.Reporting/Src/Collections.cs | 3 +- .../Listhandling/CollectionSource.cs | 19 ++++++- .../Src/Factories/ReportCreatorFactory.cs | 46 ++++++++++++++++ .../Src/Interfaces/Data/IDataViewHandling.cs | 4 +- .../Src/PageBuilder/FormPageBuilder.cs | 11 ++-- .../Src/ReportingFactory.cs | 12 +++-- .../DataSource/CollectionHandlingFixture.cs | 53 +++++++++++++++---- .../src/PageBuilder/BaseConvertFixture.cs | 2 +- .../src/PageBuilder/PageLayoutFixture.cs | 5 +- .../TestView/TestWPFReportPreview.cs | 42 ++------------- 11 files changed, 136 insertions(+), 62 deletions(-) create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Factories/ReportCreatorFactory.cs diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj index 858ca8d377..7b1f15e1bf 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj @@ -99,6 +99,7 @@ + diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Collections.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Collections.cs index 530e58d2e1..b7726c813c 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Collections.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Collections.cs @@ -98,7 +98,7 @@ namespace ICSharpCode.Reporting } } - /* + public class ReportItemCollection : Collection { @@ -114,5 +114,4 @@ namespace ICSharpCode.Reporting InnerList.Sort(comparer); } } - */ } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataManager/Listhandling/CollectionSource.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataManager/Listhandling/CollectionSource.cs index 9314000e42..91c1592653 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataManager/Listhandling/CollectionSource.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/DataManager/Listhandling/CollectionSource.cs @@ -119,7 +119,7 @@ namespace ICSharpCode.Reporting.DataManager.Listhandling } #region Fill - + /* public void Fill(IDataItem item) { @@ -132,6 +132,23 @@ namespace ICSharpCode.Reporting.DataManager.Listhandling item.DataType = p.PropertyType.ToString(); } } + */ + + public void Fill(ReportItemCollection collection) + { + foreach (IDataItem item in collection) + { + FillInternal(item); + } + } + + void FillInternal (IDataItem item) { + var p = listProperties.Find(item.ColumnName,true); + item.DBValue = p.GetValue(Current).ToString(); + if (String.IsNullOrEmpty(item.DataType)) { + item.DataType = p.PropertyType.ToString(); + } + } #endregion diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Factories/ReportCreatorFactory.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Factories/ReportCreatorFactory.cs new file mode 100644 index 0000000000..5cfe01ba9f --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Factories/ReportCreatorFactory.cs @@ -0,0 +1,46 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 01.06.2013 + * Time: 18:59 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using ICSharpCode.Reporting.Globals; +using ICSharpCode.Reporting.Interfaces; +using ICSharpCode.Reporting.Items; +using ICSharpCode.Reporting.PageBuilder; + +namespace ICSharpCode.Reporting.Factories +{ + /// + /// Description of ReportCreatorFactory. + /// + internal class ReportCreatorFactory { + + public static IReportCreator ExporterFactory(IReportModel reportModel) + { + IReportCreator reportCreator = null; + switch (reportModel.ReportSettings.DataModel) { + case GlobalEnums.PushPullModel.FormSheet: + { + reportCreator = new FormPageBuilder(reportModel); + break; + } + + case GlobalEnums.PushPullModel.PullData: + { + break; + } + + case GlobalEnums.PushPullModel.PushData: + { + break; + } + + } + return reportCreator; + } + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/Data/IDataViewHandling.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/Data/IDataViewHandling.cs index 984dcf6cd6..9864be01fd 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/Data/IDataViewHandling.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/Data/IDataViewHandling.cs @@ -29,7 +29,9 @@ namespace ICSharpCode.Reporting.Interfaces.Data // void Fill (int position,ReportItemCollection collection); //rausnehmen - void Fill (IDataItem item); +// void Fill (IDataItem item); + + void Fill(ReportItemCollection collection); IndexList IndexList {get;} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/FormPageBuilder.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/FormPageBuilder.cs index 93fd995b74..ae666080bb 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/FormPageBuilder.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/FormPageBuilder.cs @@ -8,6 +8,7 @@ */ using System; using System.Drawing; +using System.Linq; using ICSharpCode.Reporting.BaseClasses; using ICSharpCode.Reporting.Exporter; using ICSharpCode.Reporting.Globals; @@ -35,7 +36,6 @@ namespace ICSharpCode.Reporting.PageBuilder { base.BuildExportList(); WritePages (); -// BuildReportHeader(); } @@ -81,11 +81,14 @@ namespace ICSharpCode.Reporting.PageBuilder void BuildReportFooter() { Console.WriteLine("FormPageBuilder - Build ReportFooter {0} - {1}",ReportModel.ReportSettings.PageSize.Height,ReportModel.ReportSettings.BottomMargin); +// CurrentLocation = new Point(ReportModel.ReportSettings.LeftMargin, +// ReportModel.ReportSettings.PageSize.Height - ReportModel.ReportSettings.BottomMargin - ReportModel.PageFooter.Size.Height); + var x = CurrentPage.ExportedItems.Last(); CurrentLocation = new Point(ReportModel.ReportSettings.LeftMargin, - ReportModel.ReportSettings.PageSize.Height - ReportModel.ReportSettings.BottomMargin - ReportModel.PageFooter.Size.Height); - + x.Location.Y + x.Size.Height + 1); var containerConverter = new ContainerConverter(graphics,ReportModel.ReportFooter,CurrentLocation); var header =containerConverter.Convert(); + header.Parent = CurrentPage; CurrentPage.ExportedItems.Add(header); } @@ -98,7 +101,7 @@ namespace ICSharpCode.Reporting.PageBuilder BuildPageHeader(); BuilDetail(); BuildPageFooter(); -// BuildReportFooter(); + BuildReportFooter(); base.AddPage(CurrentPage); } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ReportingFactory.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ReportingFactory.cs index 603362ff6e..578cb7fdbe 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ReportingFactory.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ReportingFactory.cs @@ -12,6 +12,7 @@ using System.Collections.Generic; using System.IO; using System.Xml; +using ICSharpCode.Reporting.Factories; using ICSharpCode.Reporting.Globals; using ICSharpCode.Reporting.Interfaces; using ICSharpCode.Reporting.Items; @@ -39,15 +40,18 @@ namespace ICSharpCode.Reporting return builder; } - public IReportCreator ReportCreator (Stream stream) + internal IReportCreator ReportCreator (Stream stream) { IReportModel reportModel = LoadReportModel (stream); IReportCreator builder = null; - if (reportModel.ReportSettings.DataModel == GlobalEnums.PushPullModel.FormSheet) { - builder = new FormPageBuilder(reportModel); - } + builder = ReportCreatorFactory.ExporterFactory(reportModel); return builder; } + + object ExporterFactory(IReportModel reportModel) + { + throw new NotImplementedException(); + } internal ReportModel LoadReportModel (Stream stream) diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/DataSource/CollectionHandlingFixture.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/DataSource/CollectionHandlingFixture.cs index 6cb7416d66..6ec8f7c4f5 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/DataSource/CollectionHandlingFixture.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/DataSource/CollectionHandlingFixture.cs @@ -61,17 +61,46 @@ namespace ICSharpCode.Reporting.Test.DataSource } #region Fill + [Test] - public void justFill() { - var collectionSource = new CollectionSource (list,new ReportSettings()); - collectionSource.Bind(); - var a = collectionSource.MoveNext(); - collectionSource.Fill(new BaseDataItem() { - ColumnName = "Lastname" - }); - - + public void TypeOfReportItemIsString () { + var ric = new ReportItemCollection(){ + new BaseDataItem(){ + ColumnName = "Lastname" + + }, + new BaseDataItem(){ + ColumnName = "Firstname" + } + }; + var collectionSource = new CollectionSource (list,new ReportSettings()); + collectionSource.Bind(); + collectionSource.Fill(ric); + foreach (BaseDataItem element in ric) { + Assert.That(element.DataType,Is.EqualTo("System.String")); + } } + + + [Test] + public void FillReportItemCollection () { + var ric = new ReportItemCollection(){ + new BaseDataItem(){ + ColumnName = "Lastname" + + }, + new BaseDataItem(){ + ColumnName = "Firstname" + } + }; + var collectionSource = new CollectionSource (list,new ReportSettings()); + collectionSource.Bind(); + collectionSource.Fill(ric); + foreach (BaseDataItem element in ric) { + Assert.That(element.DBValue,Is.Not.EqualTo(String.Empty)); + } + } + #endregion @@ -90,6 +119,12 @@ namespace ICSharpCode.Reporting.Test.DataSource public void bla () { var s = list.OrderBy(a => a.Lastname); var x = s.GroupBy(y => y.GroupItem); + foreach (var group in x) { + Console.WriteLine("{0} - {1}",group.Key,group.GetType().ToString()); + foreach (var element in group) { + Console.WriteLine(element.Firstname); + } + } } #endregion diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/BaseConvertFixture.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/BaseConvertFixture.cs index 7cfc3b63ce..36f5f0b025 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/BaseConvertFixture.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/BaseConvertFixture.cs @@ -25,7 +25,7 @@ namespace ICSharpCode.Reporting.Test.PageBuilder public void CurrentPageContainFiveItems() { reportCreator.BuildExportList(); var page = reportCreator.Pages[0]; - Assert.That(page.ExportedItems.Count, Is.EqualTo(3)); + Assert.That(page.ExportedItems.Count, Is.EqualTo(4)); } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/PageLayoutFixture.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/PageLayoutFixture.cs index 8d2088fbde..70e704e00e 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/PageLayoutFixture.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/PageLayoutFixture.cs @@ -32,14 +32,14 @@ namespace ICSharpCode.Reporting.Test.PageBuilder var y = from s in x where s.GetType() == typeof(ExportContainer) select s; - Assert.That(y.ToList().Count,Is.EqualTo(3)); + Assert.That(y.ToList().Count,Is.EqualTo(4)); Console.WriteLine("-------ShowDebug---------"); var ex = new DebugExporter(reportCreator.Pages); ex.Run(); } [Test] - public void SectionsInpageDoNotOverlap() + public void SectionsInPageDoNotOverlap() { Point p = Point.Empty; reportCreator.BuildExportList(); @@ -48,6 +48,7 @@ namespace ICSharpCode.Reporting.Test.PageBuilder foreach (var item in element.ExportedItems) { if (! first) { var p2 = new Point(item.Location.X,item.Location.Y); + Console.WriteLine("{0} - {1}",p2,item.Name); Assert.That(p2.Y,Is.GreaterThan(p.Y)); } else { first = false; diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/TestView/TestWPFReportPreview.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/TestView/TestWPFReportPreview.cs index a24b87a690..48b401c1fd 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/TestView/TestWPFReportPreview.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/TestView/TestWPFReportPreview.cs @@ -55,7 +55,7 @@ namespace ICSharpCode.Reports.Addin.SecondaryViews public Collection Pages{get;private set;} - + protected override void LoadFromPrimary() { @@ -64,48 +64,14 @@ namespace ICSharpCode.Reports.Addin.SecondaryViews var modulLoader = new ModelLoader(); ReportModel model = (ReportModel)modulLoader.Load(xmDoc.DocumentElement); -// var collectCmd = new CollectParametersCommand(model.ReportSettings); -// collectCmd.Run(); - IReportCreator reportCreator = null; - switch (model.ReportSettings.DataModel) - { - case GlobalEnums.PushPullModel.FormSheet : - { -// exportRunner.RunReport(model,(ReportParameters)null); - var reportingFactory = new ReportingFactory(); - reportCreator = reportingFactory.ReportCreator(model); - reportCreator.BuildExportList(); -// var pe = new PrintExporter(reportCreator.Pages); -// pe.Run(); - break; - } - - case GlobalEnums.PushPullModel.PullData: - { -// exportRunner.RunReport(model,(ReportParameters)null); - break; - } - case GlobalEnums.PushPullModel.PushData: - { -// var cmd = new DataSetFromXsdCommand(); -// cmd.Run(); -// System.Data.DataSet ds = cmd.DataSet; -// exportRunner.RunReport(model,ds.Tables[0],(ReportParameters)null); - break; - } - -// default: -// throw new InvalidReportModelException(); - } + var reportingFactory = new ReportingFactory(); + var reportCreator = reportingFactory.ReportCreator(model); + reportCreator.BuildExportList(); PreviewViewModel previewViewModel = new PreviewViewModel (model.ReportSettings,reportCreator.Pages); - - viewer.SetBinding(previewViewModel); - } - protected override void SaveToPrimary() { // throw new NotImplementedException(); From a6ef0adebc261b66f457418be731880a28622024 Mon Sep 17 00:00:00 2001 From: Peter Forstmeier Date: Sun, 2 Jun 2013 20:14:10 +0200 Subject: [PATCH 32/33] Detailsection, Test's to arrange Sections --- .../Src/BaseClasses/Page.cs | 6 ++ .../Src/Interfaces/Export/IExportColumn.cs | 1 + .../Src/PageBuilder/BasePageBuilder.cs | 20 ++++++- .../PageBuilder/ExportColumns/ExportColumn.cs | 6 ++ .../Src/PageBuilder/FormPageBuilder.cs | 57 +++++++++---------- .../src/PageBuilder/BaseConvertFixture.cs | 2 +- .../src/PageBuilder/PageLayoutFixture.cs | 19 +++---- 7 files changed, 66 insertions(+), 45 deletions(-) diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/Page.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/Page.cs index 3feacafeba..b15c026634 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/Page.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/BaseClasses/Page.cs @@ -115,5 +115,11 @@ namespace ICSharpCode.Reporting.BaseClasses public bool CanGrow {get;set;} public bool CanShrink {get;set;} + + public Rectangle DisplayRectangle { + get { + return new Rectangle(Location,Size); + } + } } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/Export/IExportColumn.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/Export/IExportColumn.cs index 7f5af7049f..8bed181a92 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/Export/IExportColumn.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Interfaces/Export/IExportColumn.cs @@ -22,5 +22,6 @@ namespace ICSharpCode.Reporting.Interfaces.Export IArrangeStrategy GetArrangeStrategy(); Size DesiredSize {get;set;} IExportColumn Parent {get;set;} + Rectangle DisplayRectangle {get;} } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/BasePageBuilder.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/BasePageBuilder.cs index 1ddd47bd2e..45890030e4 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/BasePageBuilder.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/BasePageBuilder.cs @@ -12,8 +12,10 @@ using System.Collections.ObjectModel; using System.Drawing; using ICSharpCode.Reporting.BaseClasses; +using ICSharpCode.Reporting.Globals; using ICSharpCode.Reporting.Interfaces; using ICSharpCode.Reporting.Interfaces.Export; +using ICSharpCode.Reporting.PageBuilder.Converter; namespace ICSharpCode.Reporting.PageBuilder { @@ -22,7 +24,7 @@ namespace ICSharpCode.Reporting.PageBuilder /// public class BasePageBuilder:IReportCreator { - + Graphics graphics; public BasePageBuilder(IReportModel reportModel) { @@ -31,6 +33,7 @@ namespace ICSharpCode.Reporting.PageBuilder } ReportModel = reportModel; Pages = new Collection(); + graphics = CreateGraphics.FromSize(reportModel.ReportSettings.PageSize); } @@ -39,6 +42,21 @@ namespace ICSharpCode.Reporting.PageBuilder return new Page(pi,ReportModel.ReportSettings.PageSize); } + protected IExportContainer CreateSection(IReportContainer section,Point location) + { + var containerConverter = new ContainerConverter(graphics, section, location); + var header = containerConverter.Convert(); + return header; + } + + + protected void AddSectionToPage(IExportContainer header) + { + header.Parent = CurrentPage; + CurrentPage.ExportedItems.Add(header); + } + + IPageInfo CreatePageInfo() { var pi = new PageInfo(); diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportColumn.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportColumn.cs index 0349793fe5..0b8ec77f96 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportColumn.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/ExportColumns/ExportColumn.cs @@ -45,5 +45,11 @@ namespace ICSharpCode.Reporting.PageBuilder.ExportColumns public bool CanGrow {get;set;} + + public Rectangle DisplayRectangle { + get { + return new Rectangle(Location,Size); + } + } } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/FormPageBuilder.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/FormPageBuilder.cs index ae666080bb..b8331e69fa 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/FormPageBuilder.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/FormPageBuilder.cs @@ -9,13 +9,10 @@ using System; using System.Drawing; using System.Linq; -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; -using ICSharpCode.Reporting.PageBuilder.ExportColumns; namespace ICSharpCode.Reporting.PageBuilder { @@ -24,11 +21,12 @@ namespace ICSharpCode.Reporting.PageBuilder /// public class FormPageBuilder:BasePageBuilder { - Graphics graphics; + + Point detailStart; public FormPageBuilder(IReportModel reportModel):base(reportModel) { - graphics = CreateGraphics.FromSize(reportModel.ReportSettings.PageSize); + } @@ -42,26 +40,27 @@ namespace ICSharpCode.Reporting.PageBuilder void BuildReportHeader() { if (Pages.Count == 0) { - var containerConverter = new ContainerConverter(graphics,ReportModel.ReportHeader,CurrentLocation); - var header = containerConverter.Convert(); - header.Parent = CurrentPage; - CurrentPage.ExportedItems.Add(header); + IExportContainer header = CreateSection(ReportModel.ReportHeader,CurrentLocation); var r = new Rectangle(header.Location.X,header.Location.Y,header.Size.Width,header.Size.Height); - CurrentLocation = new Point (ReportModel.ReportSettings.LeftMargin,r.Bottom + 5); + CurrentLocation = new Point (ReportModel.ReportSettings.LeftMargin,r.Bottom + 1); + AddSectionToPage(header); } } void BuildPageHeader() { - var containerConverter = new ContainerConverter(graphics,ReportModel.PageHeader,CurrentLocation); - var header = containerConverter.Convert(); - header.Parent = CurrentPage; - CurrentPage.ExportedItems.Add(header); + IExportContainer header = CreateSection(ReportModel.PageHeader,CurrentLocation); + detailStart = new Point(ReportModel.ReportSettings.LeftMargin,header.Location.Y + header.Size.Height +1); + AddSectionToPage(header); } void BuilDetail() { Console.WriteLine("FormPageBuilder - Build DetailSection {0} - {1} - {2}",ReportModel.ReportSettings.PageSize.Width,ReportModel.ReportSettings.LeftMargin,ReportModel.ReportSettings.RightMargin); + CurrentLocation = detailStart; + IExportContainer header = CreateSection(ReportModel.DetailSection,CurrentLocation); + header.Parent = CurrentPage; + CurrentPage.ExportedItems.Insert(2,header); } @@ -70,26 +69,21 @@ namespace ICSharpCode.Reporting.PageBuilder Console.WriteLine("FormPageBuilder - Build PageFooter {0} - {1}",ReportModel.ReportSettings.PageSize.Height,ReportModel.ReportSettings.BottomMargin); CurrentLocation = new Point(ReportModel.ReportSettings.LeftMargin, ReportModel.ReportSettings.PageSize.Height - ReportModel.ReportSettings.BottomMargin - ReportModel.PageFooter.Size.Height); - - var containerConverter = new ContainerConverter(graphics,ReportModel.PageFooter,CurrentLocation); - var header =containerConverter.Convert(); - header.Parent = CurrentPage; - CurrentPage.ExportedItems.Add(header); + + IExportContainer header = CreateSection(ReportModel.PageFooter,CurrentLocation); + AddSectionToPage(header); } - + void BuildReportFooter() { Console.WriteLine("FormPageBuilder - Build ReportFooter {0} - {1}",ReportModel.ReportSettings.PageSize.Height,ReportModel.ReportSettings.BottomMargin); -// CurrentLocation = new Point(ReportModel.ReportSettings.LeftMargin, -// ReportModel.ReportSettings.PageSize.Height - ReportModel.ReportSettings.BottomMargin - ReportModel.PageFooter.Size.Height); - var x = CurrentPage.ExportedItems.Last(); + var lastSection = CurrentPage.ExportedItems.Last(); CurrentLocation = new Point(ReportModel.ReportSettings.LeftMargin, - x.Location.Y + x.Size.Height + 1); - var containerConverter = new ContainerConverter(graphics,ReportModel.ReportFooter,CurrentLocation); - var header =containerConverter.Convert(); - header.Parent = CurrentPage; - CurrentPage.ExportedItems.Add(header); + lastSection.Location.Y - lastSection.Size.Height - 1); + + IExportContainer header = CreateSection(ReportModel.ReportFooter,CurrentLocation); + AddSectionToPage(header); } @@ -99,12 +93,13 @@ namespace ICSharpCode.Reporting.PageBuilder CurrentLocation = new Point(ReportModel.ReportSettings.LeftMargin,ReportModel.ReportSettings.TopMargin); this.BuildReportHeader(); BuildPageHeader(); - BuilDetail(); BuildPageFooter(); + BuilDetail(); BuildReportFooter(); base.AddPage(CurrentPage); + Console.WriteLine("------{0}---------",ReportModel.ReportSettings.PageSize); } - + } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/BaseConvertFixture.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/BaseConvertFixture.cs index 36f5f0b025..7b1f09bbb0 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/BaseConvertFixture.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/BaseConvertFixture.cs @@ -25,7 +25,7 @@ namespace ICSharpCode.Reporting.Test.PageBuilder public void CurrentPageContainFiveItems() { reportCreator.BuildExportList(); var page = reportCreator.Pages[0]; - Assert.That(page.ExportedItems.Count, Is.EqualTo(4)); + Assert.That(page.ExportedItems.Count, Is.EqualTo(5)); } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/PageLayoutFixture.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/PageLayoutFixture.cs index 70e704e00e..6a4b8a8d02 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/PageLayoutFixture.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/PageLayoutFixture.cs @@ -32,7 +32,7 @@ namespace ICSharpCode.Reporting.Test.PageBuilder var y = from s in x where s.GetType() == typeof(ExportContainer) select s; - Assert.That(y.ToList().Count,Is.EqualTo(4)); + Assert.That(y.ToList().Count,Is.EqualTo(5)); Console.WriteLine("-------ShowDebug---------"); var ex = new DebugExporter(reportCreator.Pages); ex.Run(); @@ -43,18 +43,13 @@ namespace ICSharpCode.Reporting.Test.PageBuilder { Point p = Point.Empty; reportCreator.BuildExportList(); - foreach (IPage element in reportCreator.Pages) { - var first = true; - foreach (var item in element.ExportedItems) { - if (! first) { - var p2 = new Point(item.Location.X,item.Location.Y); - Console.WriteLine("{0} - {1}",p2,item.Name); - Assert.That(p2.Y,Is.GreaterThan(p.Y)); - } else { - first = false; - } - p = new Point(item.Location.X,item.Location.Y + item.Size.Height); + foreach (var item in reportCreator.Pages[0].ExportedItems) { + var p2 = new Point(item.Location.X,item.Location.Y); + Console.WriteLine("{0} - {1} - {2}- {3}",p2,item.Size.Height,item.Name,item.DisplayRectangle); + if (item.Name != "ReportFooter") { + Assert.That(p2.Y,Is.GreaterThan(p.Y),item.Name); } + p = new Point(item.Location.X,item.Location.Y + item.Size.Height); } } From 6a08d8f096d41a9ba6bf8fbdac287213bc326f8e Mon Sep 17 00:00:00 2001 From: Peter Forstmeier Date: Fri, 7 Jun 2013 20:12:20 +0200 Subject: [PATCH 33/33] DataPageBuilder.cs --- .../ICSharpCode.Reporting.csproj | 1 + .../Src/PageBuilder/BasePageBuilder.cs | 63 +++++++++++++++++++ .../Src/PageBuilder/DataPageBuilder.cs | 56 +++++++++++++++++ .../Src/PageBuilder/FormPageBuilder.cs | 57 ++--------------- .../Src/ReportingFactory.cs | 3 + .../ICSharpCode.Reporting.Test.csproj | 1 + .../src/PageBuilder/DataPageBuilderFixture.cs | 61 ++++++++++++++++++ .../src/PageBuilder/PageLayoutFixture.cs | 17 +++-- 8 files changed, 203 insertions(+), 56 deletions(-) create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/DataPageBuilder.cs create mode 100644 src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/DataPageBuilderFixture.cs diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj index 7b1f15e1bf..0351c2a900 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/ICSharpCode.Reporting.csproj @@ -124,6 +124,7 @@ + diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/BasePageBuilder.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/BasePageBuilder.cs index 45890030e4..deeb9bd393 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/BasePageBuilder.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/BasePageBuilder.cs @@ -10,6 +10,7 @@ using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Drawing; +using System.Linq; using ICSharpCode.Reporting.BaseClasses; using ICSharpCode.Reporting.Globals; @@ -42,6 +43,66 @@ namespace ICSharpCode.Reporting.PageBuilder return new Page(pi,ReportModel.ReportSettings.PageSize); } + #region create Sections + + protected void BuildReportHeader() + { + if (Pages.Count == 0) { + var header = CreateSection(ReportModel.ReportHeader,CurrentLocation); + var r = new Rectangle(header.Location.X,header.Location.Y,header.Size.Width,header.Size.Height); + CurrentLocation = new Point (ReportModel.ReportSettings.LeftMargin,r.Bottom + 1); + AddSectionToPage(header); + } + } + + + protected void BuildPageHeader() + { + + var pageHeader = CreateSection(ReportModel.PageHeader,CurrentLocation); + DetailStart = new Point(ReportModel.ReportSettings.LeftMargin,pageHeader.Location.Y + pageHeader.Size.Height +1); + AddSectionToPage(pageHeader); + } + + + protected void BuildPageFooter() + { + Console.WriteLine("FormPageBuilder - Build PageFooter {0} - {1}",ReportModel.ReportSettings.PageSize.Height,ReportModel.ReportSettings.BottomMargin); + CurrentLocation = new Point(ReportModel.ReportSettings.LeftMargin, + ReportModel.ReportSettings.PageSize.Height - ReportModel.ReportSettings.BottomMargin - ReportModel.PageFooter.Size.Height); + + var pageFooter = CreateSection(ReportModel.PageFooter,CurrentLocation); + AddSectionToPage(pageFooter); + } + + + protected void BuildReportFooter() + { + Console.WriteLine("FormPageBuilder - Build ReportFooter {0} - {1}",ReportModel.ReportSettings.PageSize.Height,ReportModel.ReportSettings.BottomMargin); + var lastSection = CurrentPage.ExportedItems.Last(); + CurrentLocation = new Point(ReportModel.ReportSettings.LeftMargin, + lastSection.Location.Y - lastSection.Size.Height - 1); + + var reportFooter = CreateSection(ReportModel.ReportFooter,CurrentLocation); + AddSectionToPage(reportFooter); + } + + #endregion + + protected virtual void WritePages() + { + CurrentPage = InitNewPage(); + CurrentLocation = new Point(ReportModel.ReportSettings.LeftMargin,ReportModel.ReportSettings.TopMargin); + this.BuildReportHeader(); + BuildPageHeader(); + BuildPageFooter(); +// BuilDetail(); + BuildReportFooter(); +// base.AddPage(CurrentPage); +// Console.WriteLine("------{0}---------",ReportModel.ReportSettings.PageSize); + } + + protected IExportContainer CreateSection(IReportContainer section,Point location) { var containerConverter = new ContainerConverter(graphics, section, location); @@ -86,6 +147,8 @@ namespace ICSharpCode.Reporting.PageBuilder protected IPage CurrentPage {get; set;} + protected Point DetailStart {get;private set;} + public Collection Pages {get; private set;} } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/DataPageBuilder.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/DataPageBuilder.cs new file mode 100644 index 0000000000..ef69d3666f --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/DataPageBuilder.cs @@ -0,0 +1,56 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 06.06.2013 + * Time: 20:27 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using System.Collections.Generic; +using ICSharpCode.Reporting.Items; + +namespace ICSharpCode.Reporting.PageBuilder +{ + /// + /// Description of DataPageBuilder. + /// + public class DataPageBuilder:BasePageBuilder + { + public DataPageBuilder(ReportModel reportModel, IEnumerable list):base(reportModel) + { + List = list; + } + + + public override void BuildExportList() + { + base.BuildExportList(); + WritePages (); + } + + + void BuilDetail() + { + Console.WriteLine("FormPageBuilder - Build DetailSection {0} - {1} - {2}",ReportModel.ReportSettings.PageSize.Width,ReportModel.ReportSettings.LeftMargin,ReportModel.ReportSettings.RightMargin); + CurrentLocation = DetailStart; + + var detail = CreateSection(ReportModel.DetailSection,CurrentLocation); + detail.Parent = CurrentPage; + CurrentPage.ExportedItems.Insert(2,detail); + } + + + protected override void WritePages() + { + base.WritePages(); + BuilDetail(); + base.AddPage(CurrentPage); + Console.WriteLine("------{0}---------",ReportModel.ReportSettings.PageSize); + } + + + + public IEnumerable List {get; private set;} + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/FormPageBuilder.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/FormPageBuilder.cs index b8331e69fa..7e95719007 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/FormPageBuilder.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/PageBuilder/FormPageBuilder.cs @@ -22,8 +22,6 @@ namespace ICSharpCode.Reporting.PageBuilder public class FormPageBuilder:BasePageBuilder { - Point detailStart; - public FormPageBuilder(IReportModel reportModel):base(reportModel) { @@ -37,65 +35,22 @@ namespace ICSharpCode.Reporting.PageBuilder } - void BuildReportHeader() - { - if (Pages.Count == 0) { - IExportContainer header = CreateSection(ReportModel.ReportHeader,CurrentLocation); - var r = new Rectangle(header.Location.X,header.Location.Y,header.Size.Width,header.Size.Height); - CurrentLocation = new Point (ReportModel.ReportSettings.LeftMargin,r.Bottom + 1); - AddSectionToPage(header); - } - } - - void BuildPageHeader() - { - IExportContainer header = CreateSection(ReportModel.PageHeader,CurrentLocation); - detailStart = new Point(ReportModel.ReportSettings.LeftMargin,header.Location.Y + header.Size.Height +1); - AddSectionToPage(header); - } void BuilDetail() { Console.WriteLine("FormPageBuilder - Build DetailSection {0} - {1} - {2}",ReportModel.ReportSettings.PageSize.Width,ReportModel.ReportSettings.LeftMargin,ReportModel.ReportSettings.RightMargin); - CurrentLocation = detailStart; - IExportContainer header = CreateSection(ReportModel.DetailSection,CurrentLocation); - header.Parent = CurrentPage; - CurrentPage.ExportedItems.Insert(2,header); - } - - - void BuildPageFooter() - { - Console.WriteLine("FormPageBuilder - Build PageFooter {0} - {1}",ReportModel.ReportSettings.PageSize.Height,ReportModel.ReportSettings.BottomMargin); - CurrentLocation = new Point(ReportModel.ReportSettings.LeftMargin, - ReportModel.ReportSettings.PageSize.Height - ReportModel.ReportSettings.BottomMargin - ReportModel.PageFooter.Size.Height); + CurrentLocation = DetailStart; - IExportContainer header = CreateSection(ReportModel.PageFooter,CurrentLocation); - AddSectionToPage(header); - } - - - void BuildReportFooter() - { - Console.WriteLine("FormPageBuilder - Build ReportFooter {0} - {1}",ReportModel.ReportSettings.PageSize.Height,ReportModel.ReportSettings.BottomMargin); - var lastSection = CurrentPage.ExportedItems.Last(); - CurrentLocation = new Point(ReportModel.ReportSettings.LeftMargin, - lastSection.Location.Y - lastSection.Size.Height - 1); - - IExportContainer header = CreateSection(ReportModel.ReportFooter,CurrentLocation); - AddSectionToPage(header); + var detail = CreateSection(ReportModel.DetailSection,CurrentLocation); + detail.Parent = CurrentPage; + CurrentPage.ExportedItems.Insert(2,detail); } - void WritePages() + protected override void WritePages() { - CurrentPage = base.InitNewPage(); - CurrentLocation = new Point(ReportModel.ReportSettings.LeftMargin,ReportModel.ReportSettings.TopMargin); - this.BuildReportHeader(); - BuildPageHeader(); - BuildPageFooter(); + base.WritePages(); BuilDetail(); - BuildReportFooter(); base.AddPage(CurrentPage); Console.WriteLine("------{0}---------",ReportModel.ReportSettings.PageSize); } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ReportingFactory.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ReportingFactory.cs index 578cb7fdbe..c952d36bc8 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ReportingFactory.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/ReportingFactory.cs @@ -40,6 +40,9 @@ namespace ICSharpCode.Reporting return builder; } + + + internal IReportCreator ReportCreator (Stream stream) { IReportModel reportModel = LoadReportModel (stream); diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/ICSharpCode.Reporting.Test.csproj b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/ICSharpCode.Reporting.Test.csproj index 05ee4ca4ff..4dbb3adcf2 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/ICSharpCode.Reporting.Test.csproj +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/ICSharpCode.Reporting.Test.csproj @@ -67,6 +67,7 @@ + diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/DataPageBuilderFixture.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/DataPageBuilderFixture.cs new file mode 100644 index 0000000000..5dc23ab3a2 --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/DataPageBuilderFixture.cs @@ -0,0 +1,61 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 06.06.2013 + * Time: 20:29 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using System.Linq; +using System.Reflection; +using ICSharpCode.Reporting.Exporter; +using ICSharpCode.Reporting.Interfaces; +using ICSharpCode.Reporting.Items; +using ICSharpCode.Reporting.PageBuilder; +using ICSharpCode.Reporting.PageBuilder.ExportColumns; +using NUnit.Framework; + +namespace ICSharpCode.Reporting.Test.PageBuilder +{ + [TestFixture] + public class DataPageBuilderFixture + { + private IReportCreator reportCreator; + + [Test] + public void CanInitDataPageBuilder() + { + var dpb = new DataPageBuilder (new ReportModel(),new System.Collections.Generic.List()); +// dpb.DataSource(new ReportModel(),new System.Collections.Generic.List()); + Assert.That(dpb,Is.Not.Null); + } + + + [Test] + public void PageContainsFiveSections() + { + reportCreator.BuildExportList(); + var x = reportCreator.Pages[0].ExportedItems; + var y = from s in x + where s.GetType() == typeof(ExportContainer) + select s; + Assert.That(y.ToList().Count,Is.EqualTo(5)); + Console.WriteLine("-------ShowDebug---------"); + var ex = new DebugExporter(reportCreator.Pages); + ex.Run(); + } + + + [SetUp] + public void LoadFromStream() + { + System.Reflection.Assembly asm = Assembly.GetExecutingAssembly(); + var stream = asm.GetManifestResourceStream(TestHelper.RepWithTwoItems); + var reportingFactory = new ReportingFactory(); +// reportCreator = reportingFactory.ReportCreator(stream); + var model = reportingFactory.LoadReportModel (stream); + reportCreator = new DataPageBuilder(model,new System.Collections.Generic.List()); + } + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/PageLayoutFixture.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/PageLayoutFixture.cs index 6a4b8a8d02..9e8889ffab 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/PageLayoutFixture.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/PageBuilder/PageLayoutFixture.cs @@ -25,7 +25,7 @@ namespace ICSharpCode.Reporting.Test.PageBuilder private IReportCreator reportCreator; [Test] - public void PageContainsFourExportContainer() + public void PageContainsFiveSections() { reportCreator.BuildExportList(); var x = reportCreator.Pages[0].ExportedItems; @@ -38,18 +38,25 @@ namespace ICSharpCode.Reporting.Test.PageBuilder ex.Run(); } + [Test] public void SectionsInPageDoNotOverlap() { - Point p = Point.Empty; + Point referencePoint = Point.Empty; + var referenceRect = Rectangle.Empty; + reportCreator.BuildExportList(); foreach (var item in reportCreator.Pages[0].ExportedItems) { var p2 = new Point(item.Location.X,item.Location.Y); - Console.WriteLine("{0} - {1} - {2}- {3}",p2,item.Size.Height,item.Name,item.DisplayRectangle); + + Console.WriteLine("{0} - {1} - {2}- <{3}>",p2,item.Size.Height,item.Name,item.DisplayRectangle); if (item.Name != "ReportFooter") { - Assert.That(p2.Y,Is.GreaterThan(p.Y),item.Name); + Assert.That(p2.Y,Is.GreaterThan(referencePoint.Y),item.Name); + var t = referenceRect.IntersectsWith(item.DisplayRectangle); + Assert.That(referenceRect.IntersectsWith(item.DisplayRectangle),Is.False); } - p = new Point(item.Location.X,item.Location.Y + item.Size.Height); + referencePoint = new Point(item.Location.X,item.Location.Y + item.Size.Height); + referenceRect = item.DisplayRectangle; } }