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

Commit 2535cba

Browse files
Designer can load Report
1 parent 31e3d1c commit 2535cba

22 files changed

Lines changed: 702 additions & 159 deletions

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,17 +91,22 @@
9191
<Compile Include="src\Designer\RootReportModel.cs" />
9292
<Compile Include="src\Designer\SectionDesigner.cs" />
9393
<Compile Include="src\Globals\DesignerGlobals.cs" />
94+
<Compile Include="src\Globals\StringWriterWithEncoding.cs" />
9495
<Compile Include="src\Services\DefaultMemberRelationshipService.cs" />
9596
<Compile Include="src\Services\DesignerSerializationService.cs" />
9697
<Compile Include="src\Services\MenuCommandService.cs" />
98+
<Compile Include="src\Services\NameCreationService.cs" />
9799
<Compile Include="src\Services\TypeDiscoveryService.cs" />
98100
<Compile Include="src\Services\TypeResolutionService.cs" />
99101
<Compile Include="src\Services\DefaultServiceContainer.cs" />
100102
<Compile Include="src\Services\HelpService.cs" />
101103
<Compile Include="src\Services\ToolboxService.cs" />
102104
<Compile Include="src\Services\UIService.cs" />
103105
<Compile Include="src\Views\DesignerView.cs" />
106+
<Compile Include="src\XML\MycroWriter.cs" />
104107
<Compile Include="src\XML\ReportDefinitionParser.cs" />
108+
<Compile Include="src\XML\ReportDesignerWriter.cs" />
109+
<Compile Include="src\XML\XmlHelper.cs" />
105110
</ItemGroup>
106111
<ItemGroup>
107112
<None Include="EmptyReport.xft">

src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/DesignableItems/BaseSection.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ public BaseSection():base()
2727
}
2828

2929

30-
[System.ComponentModel.EditorBrowsableAttribute()]
30+
[EditorBrowsableAttribute()]
3131
protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)
3232
{
3333
base.OnPaint(e);
@@ -37,6 +37,7 @@ protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)
3737

3838
public override void Draw(Graphics graphics)
3939
{
40+
Console.WriteLine("Draw section");
4041
base.DrawControl(graphics,Rectangle.Inflate(this.ClientRectangle,-2,-2));
4142
}
4243

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

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,8 @@
2626
using System.Drawing.Printing;
2727
using System.Windows.Forms;
2828
using System.Windows.Forms.Design;
29-
3029
using ICSharpCode.Core;
31-
using ICSharpCode.Reporting.Items;
30+
using ICSharpCode.Reporting.Addin.DesignableItems;
3231

3332
namespace ICSharpCode.Reporting.Addin.Designer
3433
{
@@ -39,18 +38,18 @@ namespace ICSharpCode.Reporting.Addin.Designer
3938
public class ReportRootDesigner: DocumentDesigner
4039
{
4140
ICollection currentSelection;
42-
private IDesignerHost host;
43-
private MenuCommandService menuCommandService;
44-
private IToolboxService toolboxService;
45-
private ISelectionService selectionService;
46-
private IComponentChangeService componentChangeService;
47-
private List<BaseSection> sections;
48-
private ReportSettings reportSettings;
49-
private RootReportModel rootReportModel;
41+
IDesignerHost host;
42+
MenuCommandService menuCommandService;
43+
IToolboxService toolboxService;
44+
ISelectionService selectionService;
45+
IComponentChangeService componentChangeService;
46+
List<BaseSection> sections;
47+
ICSharpCode.Reporting.Items.ReportSettings reportSettings;
48+
RootReportModel rootReportModel;
5049

5150
public ReportRootDesigner()
5251
{
53-
System.Console.WriteLine("Createb RootDesigner");
52+
System.Console.WriteLine("Create RootDesigner");
5453
}
5554

5655

@@ -71,7 +70,7 @@ private void ShowMessage(Exception e)
7170

7271
private void InitializeGUI()
7372
{
74-
reportSettings = host.Container.Components[1] as ReportSettings;
73+
reportSettings = host.Container.Components[1] as ICSharpCode.Reporting.Items.ReportSettings;
7574
InitializeRootReportModel();
7675
}
7776

@@ -187,17 +186,17 @@ protected override void PostFilterProperties(IDictionary properties)
187186

188187
#region Events
189188

190-
private void OnSectionSizeChanged (object sender, EventArgs e)
189+
void OnSectionSizeChanged (object sender, EventArgs e)
191190
{
192-
this.RecalculateSections();
191+
RecalculateSections();
193192
}
194193

195194

196-
private void RecalculateSections()
195+
void RecalculateSections()
197196
{
198197
int locY = 50;
199198
if (this.reportSettings == null) {
200-
reportSettings = host.Container.Components[1] as ReportSettings;
199+
reportSettings = host.Container.Components[1] as ICSharpCode.Reporting.Items.ReportSettings;
201200
}
202201

203202
foreach (BaseSection s in sections)
@@ -210,7 +209,7 @@ private void RecalculateSections()
210209

211210

212211

213-
private void OnLoadComplete(object sender, EventArgs e)
212+
void OnLoadComplete(object sender, EventArgs e)
214213
{
215214
var host = (IDesignerHost)sender;
216215
host.LoadComplete -= new EventHandler(this.OnLoadComplete);
@@ -220,7 +219,7 @@ private void OnLoadComplete(object sender, EventArgs e)
220219

221220
private void OnComponentAdded(object sender, ComponentEventArgs ce)
222221
{
223-
BaseSection section = ce.Component as BaseSection;
222+
var section = ce.Component as BaseSection;
224223

225224
if (section != null) {
226225
this.sections.Add(section);

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ protected override void OnPaintAdornments(PaintEventArgs pe)
5656
protected override void OnDragDrop(DragEventArgs de)
5757
{
5858
base.OnDragDrop(de);
59-
IToolboxService it = (IToolboxService)this.GetService(typeof(IToolboxService));
59+
var it = (IToolboxService)this.GetService(typeof(IToolboxService));
6060
it.SetSelectedToolboxItem(null);
6161
}
6262

@@ -74,13 +74,13 @@ protected override void PostFilterProperties(System.Collections.IDictionary prop
7474
}
7575

7676

77-
private void OnSelectionChanged(object sender, EventArgs e)
77+
void OnSelectionChanged(object sender, EventArgs e)
7878
{
7979
Control.Invalidate( );
8080
}
8181

8282

83-
private void GetService ()
83+
void GetService ()
8484
{
8585
selectionService = GetService(typeof(ISelectionService)) as ISelectionService;
8686
if (selectionService != null)

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

Lines changed: 44 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,14 @@
77
* To change this template use Tools | Options | Coding | Edit Standard Headers.
88
*/
99
using System;
10+
using System.ComponentModel;
11+
using System.Windows.Forms;
12+
using System.Xml;
1013
using ICSharpCode.Core;
14+
using ICSharpCode.Reporting.Addin.DesignableItems;
15+
using ICSharpCode.Reporting.Addin.Globals;
1116
using ICSharpCode.Reporting.Addin.Views;
17+
using ICSharpCode.Reporting.Addin.XML;
1218

1319
namespace ICSharpCode.Reporting.Addin.DesignerBinding
1420
{
@@ -46,7 +52,12 @@ public void Detach()
4652

4753
public void MergeFormChanges(System.CodeDom.CodeCompileUnit unit)
4854
{
49-
throw new NotImplementedException();
55+
System.Diagnostics.Trace.WriteLine("Generator:MergeFormChanges");
56+
var writer = new StringWriterWithEncoding(System.Text.Encoding.UTF8);
57+
var xml = XmlHelper.CreatePropperWriter(writer);
58+
InternalMergeFormChanges(xml);
59+
Console.WriteLine(writer.ToString());
60+
viewContent.ReportFileContent = writer.ToString();
5061
}
5162

5263
public bool InsertComponentEvent(System.ComponentModel.IComponent component, System.ComponentModel.EventDescriptor edesc, string eventMethodName, string body, out string file, out int position)
@@ -66,5 +77,37 @@ public DesignerView ViewContent {
6677
}
6778

6879
#endregion
80+
81+
void InternalMergeFormChanges(XmlTextWriter xml)
82+
{
83+
if (xml == null) {
84+
throw new ArgumentNullException("xml");
85+
}
86+
87+
var rpd = new ReportDesignerWriter();
88+
XmlHelper.CreatePropperDocument(xml);
89+
90+
foreach (IComponent component in viewContent.Host.Container.Components) {
91+
if (!(component is Control)) {
92+
rpd.Save(component,xml);
93+
}
94+
}
95+
xml.WriteEndElement();
96+
xml.WriteStartElement("SectionCollection");
97+
98+
// we look only for Sections
99+
foreach (var component in viewContent.Host.Container.Components) {
100+
var b = component as BaseSection;
101+
if (b != null) {
102+
rpd.Save(component,xml);
103+
}
104+
}
105+
//SectionCollection
106+
xml.WriteEndElement();
107+
//Reportmodel
108+
xml.WriteEndElement();
109+
xml.WriteEndDocument();
110+
xml.Close();
111+
}
69112
}
70113
}

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

Lines changed: 15 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -56,22 +56,19 @@ public InternalReportLoader(IDesignerLoaderHost host,IDesignerGenerator generato
5656
this.stream = stream;
5757
}
5858

59-
public void LoadOrCreateReport()
59+
public ReportModel LoadOrCreateReport()
6060
{
6161
Console.WriteLine("LoadOrCreateReport()");
6262
Application.UseWaitCursor = true;
63-
try {
64-
var component = this.host.CreateComponent(typeof(RootReportModel),"RootReportModel");
65-
var rootControl = component as RootReportModel;
66-
UpdateStatusbar();
67-
ReportModel = CreateNamedSurface();
68-
rootControl.Size = this.ReportModel.ReportSettings.PageSize;
69-
70-
} catch (Exception e) {
71-
MessageService.ShowException(e,"LoadOrCreateReport");
72-
} finally {
73-
Application.UseWaitCursor = false;
74-
}
63+
ReportModel reportModel = null;
64+
65+
var rootComponent = host.CreateComponent(typeof(RootReportModel),"RootReportModel");
66+
var rootControl = rootComponent as RootReportModel;
67+
UpdateStatusbar();
68+
reportModel = CreateNamedSurface();
69+
rootControl.Size = reportModel.ReportSettings.PageSize;
70+
Application.UseWaitCursor = false;
71+
return reportModel;
7572
}
7673

7774

@@ -89,12 +86,14 @@ private void UpdateStatusbar ()
8986

9087
ReportModel CreateNamedSurface ()
9188
{
92-
var deserializer = new ReportDefinitionDeserializer(host,stream);
93-
return deserializer.LoadObjectFromFileDefinition();
89+
var deserializer = new ReportDefinitionDeserializer(host);
90+
var document = deserializer.LoadXmlFromStream(stream);
91+
var reportModel = deserializer.CreateModelFromXml(document.DocumentElement);
92+
return reportModel;
9493
}
9594

9695

97-
public ReportModel ReportModel {get; private set;}
96+
// public ReportModel ReportModel {get; private set;}
9897

9998
}
10099
}

0 commit comments

Comments
 (0)