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

Commit 6dd1585

Browse files
Show FormSheet Reports as Preview in Designer
1 parent 2b141af commit 6dd1585

12 files changed

Lines changed: 134 additions & 115 deletions

File tree

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

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,12 @@
4646
<Reference Include="Microsoft.CSharp">
4747
<RequiredTargetFramework>4.0</RequiredTargetFramework>
4848
</Reference>
49+
<Reference Include="PresentationCore">
50+
<RequiredTargetFramework>3.0</RequiredTargetFramework>
51+
</Reference>
52+
<Reference Include="PresentationFramework">
53+
<RequiredTargetFramework>3.0</RequiredTargetFramework>
54+
</Reference>
4955
<Reference Include="System" />
5056
<Reference Include="System.Core">
5157
<RequiredTargetFramework>3.5</RequiredTargetFramework>
@@ -57,10 +63,16 @@
5763
<Reference Include="System.Design" />
5864
<Reference Include="System.Drawing" />
5965
<Reference Include="System.Windows.Forms" />
66+
<Reference Include="System.Xaml">
67+
<RequiredTargetFramework>4.0</RequiredTargetFramework>
68+
</Reference>
6069
<Reference Include="System.Xml" />
6170
<Reference Include="System.Xml.Linq">
6271
<RequiredTargetFramework>3.5</RequiredTargetFramework>
6372
</Reference>
73+
<Reference Include="WindowsBase">
74+
<RequiredTargetFramework>3.0</RequiredTargetFramework>
75+
</Reference>
6476
</ItemGroup>
6577
<ItemGroup>
6678
<Folder Include="Configuration" />
@@ -117,6 +129,7 @@
117129
<Compile Include="src\TypeProvider\TextItemTypeProvider.cs" />
118130
<Compile Include="src\TypeProvider\TypeProviderHelper.cs" />
119131
<Compile Include="src\Views\DesignerView.cs" />
132+
<Compile Include="src\Views\WpfPreview.cs" />
120133
<Compile Include="src\Views\XmlView.cs" />
121134
<Compile Include="src\XML\MycroWriter.cs" />
122135
<Compile Include="src\XML\ReportDefinitionParser.cs" />
@@ -154,10 +167,6 @@
154167
<Project>{40CA84D4-ACFC-4646-9CDD-B87262D34093}</Project>
155168
<Name>ICSharpCode.Reporting</Name>
156169
</ProjectReference>
157-
<ProjectReference Include="..\ICSharpCode.Reporting\ICSharpCode.Reporting.csproj">
158-
<Project>{40CA84D4-ACFC-4646-9CDD-B87262D34093}</Project>
159-
<Name>ICSharpCode.Reporting</Name>
160-
</ProjectReference>
161170
</ItemGroup>
162171
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
163172
</Project>

src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/Designer/SectionDesigner.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,6 @@ public override bool CanBeParentedTo(System.ComponentModel.Design.IDesigner pare
6363

6464
void OnSelectionChanged(object sender, EventArgs e)
6565
{
66-
Console.WriteLine("Section : OnSelectionChanged");
6766
Control.Invalidate( );
6867
}
6968

src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/DesignerBinding/DesignerGenerator.cs

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
using System.Windows.Forms;
1313
using System.Xml;
1414
using ICSharpCode.Core;
15+
using ICSharpCode.SharpDevelop.Workbench;
1516
using ICSharpCode.Reporting.Addin.DesignableItems;
1617
using ICSharpCode.Reporting.Addin.Globals;
1718
using ICSharpCode.Reporting.Addin.Views;
@@ -41,12 +42,13 @@ public void Attach(DesignerView viewContent)
4142
this.viewContent = viewContent;
4243
}
4344

45+
4446
public void Detach()
4547
{
4648
throw new NotImplementedException();
4749
}
4850

49-
public System.Collections.Generic.IEnumerable<ICSharpCode.SharpDevelop.Workbench.OpenedFile> GetSourceFiles(out ICSharpCode.SharpDevelop.Workbench.OpenedFile designerCodeFile)
51+
public System.Collections.Generic.IEnumerable<OpenedFile> GetSourceFiles(out OpenedFile designerCodeFile)
5052
{
5153
throw new NotImplementedException();
5254
}
@@ -61,15 +63,16 @@ public void MergeFormChanges(System.CodeDom.CodeCompileUnit unit)
6163

6264
StringWriter InternalMergeFormChanges()
6365
{
66+
Console.WriteLine("InternalMergeFormChanges create ReportdesignerWriter");
6467
var writer = new StringWriterWithEncoding(System.Text.Encoding.UTF8);
6568
var xml = XmlHelper.CreatePropperWriter(writer);
66-
67-
var rpd = new ReportDesignerWriter();
69+
70+
var reportDesignerWriter = new ReportDesignerWriter();
6871
XmlHelper.CreatePropperDocument(xml);
6972

7073
foreach (IComponent component in viewContent.Host.Container.Components) {
7174
if (!(component is Control)) {
72-
rpd.Save(component,xml);
75+
reportDesignerWriter.Save(component,xml);
7376
}
7477
}
7578
xml.WriteEndElement();
@@ -79,7 +82,7 @@ StringWriter InternalMergeFormChanges()
7982
foreach (var component in viewContent.Host.Container.Components) {
8083
var b = component as BaseSection;
8184
if (b != null) {
82-
rpd.Save(component,xml);
85+
reportDesignerWriter.Save(component,xml);
8386
}
8487
}
8588
//SectionCollection
@@ -91,14 +94,13 @@ StringWriter InternalMergeFormChanges()
9194
return writer;
9295
}
9396

94-
97+
9598
public DesignerView ViewContent {
9699
get {return viewContent;}
97100

98101
}
99102

100-
101-
public bool InsertComponentEvent(System.ComponentModel.IComponent component, System.ComponentModel.EventDescriptor edesc, string eventMethodName, string body, out string file, out int position)
103+
public bool InsertComponentEvent(IComponent component, EventDescriptor edesc, string eventMethodName, string body, out string file, out int position)
102104
{
103105
throw new NotImplementedException();
104106
}

src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/DesignerBinding/ReportDefinitionDeserializer.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ public ReportDefinitionDeserializer(IDesignerHost host)
4444
this.host = host;
4545
}
4646

47-
public XmlDocument LoadXmlFromStream(Stream stream)
47+
public XmlDocument LoadXmlFromStream(Stream stream)
4848
{
4949
Console.Write("LoadXml");
5050
if (stream == null)
@@ -90,6 +90,7 @@ ReportSettings CreateReportSettings(XmlElement elem)
9090
{
9191
XmlNodeList nodes = elem.FirstChild.ChildNodes;
9292
var reportSettingsNode = (XmlElement)nodes[0];
93+
Console.Write("ReportDefinitionDeserializer create ModelLoader");
9394
var modelLoader = new ModelLoader();
9495
return modelLoader.Load(reportSettingsNode) as ReportSettings;
9596
}

src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/DesignerBinding/ReportDesignerLoader.cs

Lines changed: 10 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -7,24 +7,23 @@
77
* To change this template use Tools | Options | Coding | Edit Standard Headers.
88
*/
99
using System;
10-
using System.Collections.Generic;
1110
using System.ComponentModel.Design.Serialization;
1211
using System.IO;
1312
using System.Xml;
1413
using ICSharpCode.Core;
14+
using ICSharpCode.Reporting.Factories;
1515
using ICSharpCode.Reporting.Items;
16-
using ICSharpCode.Reporting.Xml;
1716
using ICSharpCode.Reporting.Addin.Services;
1817

1918
namespace ICSharpCode.Reporting.Addin.DesignerBinding
2019
{
2120
/// <summary>
2221
/// Description of ReportDesignerLoader.
2322
/// </summary>
24-
class ReportDesignerLoader: BasicDesignerLoader
23+
public class ReportDesignerLoader: BasicDesignerLoader
2524
{
2625
IDesignerLoaderHost host;
27-
IDesignerGenerator generator;
26+
readonly IDesignerGenerator generator;
2827
ReportModel reportModel;
2928
Stream stream;
3029

@@ -61,9 +60,9 @@ public override void BeginLoad(IDesignerLoaderHost host){
6160
protected override void PerformLoad(IDesignerSerializationManager serializationManager){
6261
var internalLoader = new InternalReportLoader(host,generator, stream);
6362
reportModel = internalLoader.LoadOrCreateReport();
64-
// reportModel = internalLoader.ReportModel;
6563
}
6664

65+
6766
protected override void PerformFlush(IDesignerSerializationManager designerSerializationManager){
6867
LoggingService.Info("ReportDesignerLoader:PerformFlush");
6968
generator.MergeFormChanges((System.CodeDom.CodeCompileUnit)null);
@@ -72,80 +71,18 @@ protected override void PerformFlush(IDesignerSerializationManager designerSeria
7271
#endregion
7372

7473

75-
#region Reportmodel
76-
77-
public ReportModel ReportModel {
78-
get { return reportModel; }
79-
}
74+
#region Serialize to Xml
8075

81-
public static ReportModel CreateRenderableModel()
76+
public XmlDocument SerializeModel()
8277
{
83-
Console.WriteLine("ReportDesignerLoader:CreateRenderableModel");
84-
/*
85-
ReportModel m = new ReportModel();
86-
generator.MergeFormChanges((System.CodeDom.CodeCompileUnit)null);
87-
XmlDocument doc = new XmlDocument();
88-
doc.LoadXml(generator.ViewContent.ReportFileContent);
89-
ReportLoader rl = new ReportLoader();
90-
object root = rl.Load(doc.DocumentElement);
91-
m = root as ReportModel;
92-
93-
m.ReportSettings.FileName = generator.ViewContent.PrimaryFileName;
94-
FilePathConverter.AdjustReportName(m);
95-
return m;
96-
*/
97-
return null;
98-
}
78+
Console.WriteLine("ReportDesignerLoader:SerializeModel:");
9979

100-
public XmlDocument CreateXmlModel()
101-
{
102-
Console.WriteLine("ReportDesignerLoader:CreateXmlModel");
103-
/*
104-
ReportModel m = new ReportModel();
10580
generator.MergeFormChanges((System.CodeDom.CodeCompileUnit)null);
106-
XmlDocument xmlDocument = new XmlDocument();
107-
xmlDocument.LoadXml(generator.ViewContent.ReportFileContent);
108-
return xmlDocument;
109-
*/
110-
return null;
81+
var doc = new XmlDocument();
82+
doc.LoadXml(generator.ViewContent.ReportFileContent);
83+
return doc;
11184
}
11285

11386
#endregion
11487
}
115-
116-
/// <summary>
117-
/// Load Report from File
118-
/// </summary>
119-
/// <param name="baseType"></param>
120-
/// <returns></returns>
121-
122-
public class aaReportLoader : ModelLoader
123-
{
124-
static Dictionary<Type, Type> baseToReport;
125-
126-
public static Type GetReportType(Type baseType)
127-
{
128-
Console.WriteLine("ReportLoader:GetReportType");
129-
if (baseType == null) return null;
130-
if (baseToReport == null) {
131-
baseToReport = new Dictionary<Type, Type>();
132-
foreach (Type t in typeof(BaseSection).Assembly.GetTypes()) {
133-
134-
if (t.BaseType != null && t.BaseType.Name.StartsWith("Base",
135-
StringComparison.InvariantCulture)) {
136-
baseToReport[t.BaseType] = t;
137-
}
138-
}
139-
}
140-
Type r;
141-
baseToReport.TryGetValue(baseType, out r);
142-
return r ?? baseType;
143-
}
144-
145-
146-
protected override Type GetTypeByName(string ns, string name)
147-
{
148-
return GetReportType(base.GetTypeByName(ns, name));
149-
}
150-
}
15188
}

src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/Views/DesignerView.cs

Lines changed: 10 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,6 @@ public class DesignerView : AbstractViewContent,IHasPropertyContainer, IToolsHos
4242
DefaultServiceContainer defaultServiceContainer;
4343
DesignSurface designSurface;
4444

45-
public DesignerView()
46-
{
47-
}
48-
49-
5045
public DesignerView (OpenedFile openedFile,IDesignerGenerator generator) : base(openedFile){
5146
if (openedFile == null) {
5247
throw new ArgumentNullException("openedFile");
@@ -89,8 +84,8 @@ void LoadDesigner (Stream stream) {
8984

9085
LoggingService.Info("Create ReportDesignerLoader");
9186

92-
this.loader = new ReportDesignerLoader(generator,stream);
93-
this.designSurface.BeginLoad(this.loader);
87+
loader = new ReportDesignerLoader(generator, stream);
88+
designSurface.BeginLoad(this.loader);
9489
if (!designSurface.IsLoaded) {
9590
// throw new FormsDesignerLoadException(FormatLoadErrors(designSurface));
9691
LoggingService.Error("designer not loaded");
@@ -119,8 +114,6 @@ void LoadDesigner (Stream stream) {
119114

120115
hasUnmergedChanges = false;
121116

122-
LoggingService.Info("Form Designer: END INITIALIZE");
123-
//----------------
124117
LoggingService.Info("ReportDesigner LoadDesigner_End");
125118
}
126119

@@ -159,6 +152,7 @@ void SetDesignerEvents()
159152
static WindowsFormsDesignerOptionService CreateDesignerOptions()
160153
{
161154
LoggingService.Debug("ReportDesigner: CreateDesignerOptions...");
155+
162156
var designerOptionService = new WindowsFormsDesignerOptionService();
163157
designerOptionService.Options.Properties.Find("UseSmartTags", true).SetValue(designerOptionService, true);
164158
designerOptionService.Options.Properties.Find("ShowGrid", true).SetValue(designerOptionService, false);
@@ -195,7 +189,7 @@ void OnComponentListChanged(object sender, EventArgs e)
195189
}
196190
}
197191

198-
private void MakeDirty()
192+
void MakeDirty()
199193
{
200194
hasUnmergedChanges = true;
201195
PrimaryFile.MakeDirty();
@@ -208,9 +202,7 @@ private void MakeDirty()
208202
void SelectionChangedHandler(object sender, EventArgs args)
209203
{
210204
var selectionService = (ISelectionService)sender;
211-
Console.WriteLine("Sel service {0}",selectionService != null);
212205
var abstractItem = selectionService.PrimarySelection as AbstractItem;
213-
Console.Write("SelectionChangedHandler:AbstractItem {0}",abstractItem != null);
214206
if (abstractItem != null) {
215207
if (String.IsNullOrEmpty(abstractItem.Site.Name)) {
216208
abstractItem.Site.Name = abstractItem.Name;
@@ -272,9 +264,8 @@ void UpdatePropertyPad()
272264

273265
void UpdatePropertyPadSelection(ISelectionService selectionService)
274266
{
275-
Console.Write("UpdatePropertyPadSelection");
276267
ICollection selection = selectionService.GetSelectedComponents();
277-
object[] selArray = new object[selection.Count];
268+
var selArray = new object[selection.Count];
278269
selection.CopyTo(selArray, 0);
279270
propertyContainer.SelectedObjects = selArray;
280271
}
@@ -367,15 +358,17 @@ void SetupSecondaryView()
367358
{
368359
var xmlView = new XmlView(generator,this);
369360
SecondaryViewContents.Add(xmlView);
361+
var preview = new WpfPreview(loader,this);
362+
SecondaryViewContents.Add(preview);
370363
}
371364

372365
public string ReportFileContent {
373366
get {
374367
if (IsDirty) {
375-
this.MergeFormChanges();
368+
MergeFormChanges();
376369
}
377-
return this.reportFileContent; }
378-
set { this.reportFileContent = value; }
370+
return reportFileContent; }
371+
set { reportFileContent = value; }
379372
}
380373

381374
#endregion

0 commit comments

Comments
 (0)