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

Commit 0cba158

Browse files
DataRow and Groupheader
1 parent 79ef578 commit 0cba158

17 files changed

Lines changed: 452 additions & 50 deletions

File tree

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
@@ -99,8 +99,10 @@
9999
<Compile Include="src\DesignableItems\AbstractGraphicItem.cs" />
100100
<Compile Include="src\DesignableItems\AbstractItem.cs" />
101101
<Compile Include="src\DesignableItems\BaseCircleItem.cs" />
102+
<Compile Include="src\DesignableItems\BaseGroupHeader.cs" />
102103
<Compile Include="src\DesignableItems\BaseLineItem.cs" />
103104
<Compile Include="src\DesignableItems\BaseRectangleItem.cs" />
105+
<Compile Include="src\DesignableItems\BaseRowItem.cs" />
104106
<Compile Include="src\DesignableItems\BaseSection.cs" />
105107
<Compile Include="src\DesignableItems\BaseTextItem.cs" />
106108
<Compile Include="src\DesignableItems\BaseDataItem.cs" />
@@ -113,6 +115,7 @@
113115
<Compile Include="src\DesignerBinding\ReportDesignerLoader.cs" />
114116
<Compile Include="src\Designer\AbstractDesigner.cs" />
115117
<Compile Include="src\Designer\DataItemDesigner.cs" />
118+
<Compile Include="src\Designer\GroupedRowDesigner.cs" />
116119
<Compile Include="src\Designer\LineDesigner.cs" />
117120
<Compile Include="src\Designer\ContainerDesigner.cs" />
118121
<Compile Include="src\Designer\ReportRootDesigner.cs" />
@@ -140,8 +143,10 @@
140143
<Compile Include="src\TypeProvider\AbstractItemTypeProvider.cs" />
141144
<Compile Include="src\TypeProvider\CircleItemTypeProvider.cs" />
142145
<Compile Include="src\TypeProvider\DataItemTypeProvider.cs" />
146+
<Compile Include="src\TypeProvider\GroupedRowTypeProvider.cs" />
143147
<Compile Include="src\TypeProvider\LineItemTypeProvider.cs" />
144148
<Compile Include="src\TypeProvider\RectangleItemTypeProvider.cs" />
149+
<Compile Include="src\TypeProvider\RowItemTypeProvider.cs" />
145150
<Compile Include="src\TypeProvider\SectionItemTypeProvider.cs" />
146151
<Compile Include="src\TypeProvider\TextItemTypeProvider.cs" />
147152
<Compile Include="src\TypeProvider\TypeProviderHelper.cs" />

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

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,6 @@ public BaseDataItem() {
3333
public string ColumnName {get;set;}
3434

3535

36-
// [Category("Databinding"), Description(tableName)]
37-
// public string BaseTableName {get;set;}
38-
3936
[Category("Databinding"), Description(showIfColumnvalueIsEmpty)]
4037
public string NullValue {get;set;}
4138
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
/*
2+
* Created by SharpDevelop.
3+
* User: Peter Forstmeier
4+
* Date: 04.05.2014
5+
* Time: 17:18
6+
*
7+
* To change this template use Tools | Options | Coding | Edit Standard Headers.
8+
*/
9+
using System;
10+
using System.ComponentModel;
11+
using ICSharpCode.Reporting.Addin.Designer;
12+
using ICSharpCode.Reporting.Addin.TypeProvider;
13+
14+
namespace ICSharpCode.Reporting.Addin.DesignableItems
15+
{
16+
/// <summary>
17+
/// Description of BaseGroupHeader.
18+
/// </summary>
19+
[Designer(typeof(GroupedRowDesigner))]
20+
public class BaseGroupHeader:BaseRowItem
21+
{
22+
23+
public BaseGroupHeader()
24+
{
25+
TypeDescriptor.AddProvider(new GroupedRowTypeProvider(), typeof(BaseGroupHeader));
26+
}
27+
28+
29+
30+
[Category("Behavior")]
31+
public bool PageBreakOnGroupChange {get;set;}
32+
}
33+
}
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
/*
2+
* Created by SharpDevelop.
3+
* User: Peter Forstmeier
4+
* Date: 04.05.2014
5+
* Time: 17:31
6+
*
7+
* To change this template use Tools | Options | Coding | Edit Standard Headers.
8+
*/
9+
using System;
10+
using System.ComponentModel;
11+
using System.Drawing;
12+
using ICSharpCode.Reporting.Globals;
13+
using ICSharpCode.Reporting.Addin.Designer;
14+
using ICSharpCode.Reporting.Addin.TypeProvider;
15+
16+
namespace ICSharpCode.Reporting.Addin.DesignableItems
17+
{
18+
/// <summary>
19+
/// Description of BaseRowItem.
20+
/// </summary>
21+
///
22+
[Designer(typeof(ContainerDesigner))]
23+
public class BaseRowItem:AbstractItem
24+
{
25+
26+
public BaseRowItem():base()
27+
{
28+
var size = new Size((GlobalValues.PreferedSize.Width * 3) + 10,
29+
GlobalValues.PreferedSize.Height + 10);
30+
DefaultSize = size;
31+
Size = size;
32+
BackColor = Color.White;
33+
TypeDescriptor.AddProvider(new RowItemTypeProvider(), typeof(BaseRowItem));
34+
}
35+
36+
37+
protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)
38+
{
39+
base.OnPaint(e);
40+
Draw(e.Graphics);
41+
}
42+
43+
44+
public override void Draw(Graphics graphics)
45+
{
46+
if (graphics == null) {
47+
throw new ArgumentNullException("graphics");
48+
}
49+
using (Brush b = new SolidBrush(this.BackColor)){
50+
graphics.FillRectangle(b, DrawingRectangle);
51+
}
52+
DrawControl(graphics, base.DrawingRectangle);
53+
}
54+
55+
}
56+
}

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

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -46,20 +46,6 @@ protected override void OnDragDrop(DragEventArgs de){
4646
toolboxService.SetSelectedToolboxItem(null);
4747
}
4848

49-
// public override bool CanBeParentedTo(IDesigner parentDesigner)
50-
// {
51-
// base.CanBeParentedTo(parentDesigner);
52-
// }
53-
54-
public override bool CanParent(Control control)
55-
{
56-
return base.CanParent(control);
57-
}
58-
59-
public override bool CanParent(ControlDesigner controlDesigner)
60-
{
61-
return base.CanParent(controlDesigner);
62-
}
6349

6450
void OnSelectionChanged(object sender, EventArgs e){
6551
Control.Invalidate( );
@@ -85,7 +71,6 @@ void GetService (){
8571
if (componentChangeService != null) {
8672
componentChangeService.ComponentRename += OnComponentRename;
8773
componentChangeService.ComponentAdding += (sender, e) => {
88-
8974
};
9075
}
9176
}
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
/*
2+
* Created by SharpDevelop.
3+
* User: Peter Forstmeier
4+
* Date: 04.05.2014
5+
* Time: 17:22
6+
*
7+
* To change this template use Tools | Options | Coding | Edit Standard Headers.
8+
*/
9+
using System;
10+
using System.ComponentModel;
11+
using System.ComponentModel.Design;
12+
using ICSharpCode.Reporting.Addin.TypeProvider;
13+
14+
namespace ICSharpCode.Reporting.Addin.Designer
15+
{
16+
/// <summary>
17+
/// Description of GroupedRowDesigner.
18+
/// </summary>
19+
public class GroupedRowDesigner:ContainerDesigner
20+
{
21+
ISelectionService selectionService;
22+
IComponentChangeService componentChangeService;
23+
24+
25+
public override void Initialize(IComponent component)
26+
{
27+
base.Initialize(component);
28+
GetService();
29+
}
30+
31+
32+
protected override void PostFilterProperties(System.Collections.IDictionary properties)
33+
{
34+
TypeProviderHelper.RemoveProperties(properties);
35+
base.PostFilterProperties(properties);
36+
}
37+
38+
39+
void GetService ()
40+
{
41+
selectionService = GetService(typeof(ISelectionService)) as ISelectionService;
42+
if (selectionService != null)
43+
{
44+
selectionService.SelectionChanged += OnSelectionChanged;
45+
46+
}
47+
48+
componentChangeService = (IComponentChangeService)GetService(typeof(IComponentChangeService));
49+
if (componentChangeService != null) {
50+
componentChangeService.ComponentRename += new ComponentRenameEventHandler(OnComponentRename);
51+
}
52+
53+
}
54+
55+
56+
void OnSelectionChanged(object sender, EventArgs e)
57+
{
58+
Control.Invalidate( );
59+
}
60+
61+
62+
void OnComponentRename(object sender,ComponentRenameEventArgs e) {
63+
if (e.Component == this.Component) {
64+
Control.Name = e.NewName;
65+
Control.Text = e.NewName;
66+
Control.Invalidate();
67+
}
68+
}
69+
70+
71+
protected override void Dispose(bool disposing)
72+
{
73+
if (this.selectionService != null) {
74+
selectionService.SelectionChanged -= OnSelectionChanged;
75+
}
76+
77+
if (componentChangeService != null) {
78+
componentChangeService.ComponentRename -= OnComponentRename;
79+
}
80+
base.Dispose(disposing);
81+
}
82+
}
83+
}

src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/Toolbox/ToolboxProvider.cs

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -93,14 +93,22 @@ static SideTab CreateReportingSidetab ()
9393
};
9494
sideTab.Items.Add(new SideTabItemDesigner(toolboxItem));
9595

96-
/*
96+
9797
//GroupHeader
98-
tb = new ToolboxItem(typeof(ICSharpCode.Reports.Addin.GroupHeader));
99-
tb.Bitmap = WinFormsResourceService.GetBitmap("Icons.16x16.NameSpace");
100-
tb.DisplayName = ResourceService.GetString("SharpReport.Toolbar.GroupHeader");
101-
sideTab.Items.Add(new SideTabItemDesigner(tb));
98+
toolboxItem = new ToolboxItem(typeof(BaseGroupHeader));
99+
toolboxItem.Bitmap = IconService.GetBitmap("Icons.16x16.NameSpace");
100+
toolboxItem.DisplayName = ResourceService.GetString("SharpReport.Toolbar.GroupHeader");
101+
102+
sideTab.Items.Add(new SideTabItemDesigner(toolboxItem));
102103

103104

105+
// Row
106+
toolboxItem = new ToolboxItem(typeof(BaseRowItem));
107+
toolboxItem.Bitmap = IconService.GetBitmap("Icons.16x16.SharpQuery.Table");
108+
toolboxItem.DisplayName = ResourceService.GetString("SharpReport.Toolbar.DataRow");
109+
sideTab.Items.Add(new SideTabItemDesigner(toolboxItem));
110+
/*
111+
104112
//GroupFooter
105113
tb = new ToolboxItem(typeof(ICSharpCode.Reports.Addin.GroupFooter));
106114
tb.Bitmap = WinFormsResourceService.GetBitmap("Icons.16x16.NameSpace");
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
/*
2+
* Created by SharpDevelop.
3+
* User: Peter Forstmeier
4+
* Date: 04.05.2014
5+
* Time: 17:19
6+
*
7+
* To change this template use Tools | Options | Coding | Edit Standard Headers.
8+
*/
9+
using System;
10+
using System.Collections.Generic;
11+
using System.ComponentModel;
12+
using ICSharpCode.Reporting.Addin.DesignableItems;
13+
14+
namespace ICSharpCode.Reporting.Addin.TypeProvider
15+
{
16+
/// <summary>
17+
/// Description of GroupedRowTypeProvider.
18+
/// </summary>
19+
class GroupedRowTypeProvider : TypeDescriptionProvider
20+
{
21+
public GroupedRowTypeProvider() : base(TypeDescriptor.GetProvider(typeof(AbstractItem)))
22+
{
23+
}
24+
25+
26+
public override ICustomTypeDescriptor GetTypeDescriptor(Type objectType, object instance)
27+
{
28+
ICustomTypeDescriptor td = base.GetTypeDescriptor(objectType,instance);
29+
return new GroupedRowItemTypeDescriptor(td, instance);
30+
}
31+
}
32+
33+
34+
class GroupedRowItemTypeDescriptor : CustomTypeDescriptor
35+
{
36+
public GroupedRowItemTypeDescriptor(ICustomTypeDescriptor parent, object instance)
37+
: base(parent)
38+
{
39+
}
40+
41+
42+
public override PropertyDescriptorCollection GetProperties()
43+
{
44+
return GetProperties(null);
45+
}
46+
47+
48+
public override PropertyDescriptorCollection GetProperties(Attribute[] attributes)
49+
{
50+
PropertyDescriptorCollection props = base.GetProperties(attributes);
51+
List<PropertyDescriptor> allProperties = new List<PropertyDescriptor>();
52+
53+
TypeProviderHelper.AddDefaultProperties(allProperties,props);
54+
55+
PropertyDescriptor prop = null;
56+
57+
prop = props.Find("DrawBorder",true);
58+
allProperties.Add(prop);
59+
60+
prop = props.Find("ForeColor",true);
61+
allProperties.Add(prop);
62+
63+
prop = props.Find("Visible",true);
64+
allProperties.Add(prop);
65+
66+
prop = props.Find("FrameColor",true);
67+
allProperties.Add(prop);
68+
69+
prop = props.Find("Controls",true);
70+
allProperties.Add(prop);
71+
72+
// prop = props.Find("AlternateBackColor",true);
73+
// allProperties.Add(prop);
74+
//
75+
// prop = props.Find("ChangeBackColorEveryNRow",true);
76+
// allProperties.Add(prop);
77+
78+
prop = props.Find("PageBreakOnGroupChange",true);
79+
allProperties.Add(prop);
80+
81+
82+
return new PropertyDescriptorCollection(allProperties.ToArray());
83+
}
84+
}
85+
}

0 commit comments

Comments
 (0)