Browse Source

Toolbox

reports
Peter Forstmeier 11 years ago
parent
commit
70da82b98a
  1. 7
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/ICSharpCode.Reporting.Addin.csproj
  2. 7
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/DesignableItems/BaseTextItem.cs
  3. 25
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/Designer/ReportRootDesigner.cs
  4. 6
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/Designer/TextItemDesigner.cs
  5. 60
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/Toolbox/SideTabItemDesigner.cs
  6. 165
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/Toolbox/ToolboxProvider.cs
  7. 4
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/TypeProvider/TextItemTypeProvider.cs
  8. 16
      src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/Views/DesignerView.cs

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

@ -70,6 +70,7 @@
<Folder Include="src\Designer" /> <Folder Include="src\Designer" />
<Folder Include="src\Globals" /> <Folder Include="src\Globals" />
<Folder Include="src\DesignableItems" /> <Folder Include="src\DesignableItems" />
<Folder Include="src\Toolbox" />
<Folder Include="src\TypeProvider" /> <Folder Include="src\TypeProvider" />
<Folder Include="src\XML" /> <Folder Include="src\XML" />
<Folder Include="src\Services" /> <Folder Include="src\Services" />
@ -105,6 +106,8 @@
<Compile Include="src\Services\HelpService.cs" /> <Compile Include="src\Services\HelpService.cs" />
<Compile Include="src\Services\ToolboxService.cs" /> <Compile Include="src\Services\ToolboxService.cs" />
<Compile Include="src\Services\UIService.cs" /> <Compile Include="src\Services\UIService.cs" />
<Compile Include="src\Toolbox\SideTabItemDesigner.cs" />
<Compile Include="src\Toolbox\ToolboxProvider.cs" />
<Compile Include="src\TypeProvider\AbstractItemTypeProvider.cs" /> <Compile Include="src\TypeProvider\AbstractItemTypeProvider.cs" />
<Compile Include="src\TypeProvider\SectionItemTypeProvider.cs" /> <Compile Include="src\TypeProvider\SectionItemTypeProvider.cs" />
<Compile Include="src\TypeProvider\TextItemTypeProvider.cs" /> <Compile Include="src\TypeProvider\TextItemTypeProvider.cs" />
@ -139,6 +142,10 @@
<Project>{857CA1A3-FC88-4BE0-AB6A-D1EE772AB288}</Project> <Project>{857CA1A3-FC88-4BE0-AB6A-D1EE772AB288}</Project>
<Name>ICSharpCode.Core.WinForms</Name> <Name>ICSharpCode.Core.WinForms</Name>
</ProjectReference> </ProjectReference>
<ProjectReference Include="..\..\..\..\Main\ICSharpCode.SharpDevelop.Widgets\Project\ICSharpCode.SharpDevelop.Widgets.csproj">
<Project>{8035765F-D51F-4A0C-A746-2FD100E19419}</Project>
<Name>ICSharpCode.SharpDevelop.Widgets</Name>
</ProjectReference>
<ProjectReference Include="..\ICSharpCode.Reporting\ICSharpCode.Reporting.csproj"> <ProjectReference Include="..\ICSharpCode.Reporting\ICSharpCode.Reporting.csproj">
<Project>{40CA84D4-ACFC-4646-9CDD-B87262D34093}</Project> <Project>{40CA84D4-ACFC-4646-9CDD-B87262D34093}</Project>
<Name>ICSharpCode.Reporting</Name> <Name>ICSharpCode.Reporting</Name>

7
src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/DesignableItems/BaseTextItem.cs

@ -65,12 +65,7 @@ namespace ICSharpCode.Reporting.Addin.DesignableItems
stringFormat = TextDrawer.BuildStringFormat(designTrimmimg, contentAlignment); stringFormat = TextDrawer.BuildStringFormat(designTrimmimg, contentAlignment);
using (var textBrush = new SolidBrush(ForeColor)) { using (var textBrush = new SolidBrush(ForeColor)) {
TextDrawer.DrawString(graphics, Text, Font, textBrush, ClientRectangle, stringFormat); TextDrawer.DrawString(graphics, Text, Font, textBrush, ClientRectangle, stringFormat);
} }
// if (this.RightToLeft == System.Windows.Forms.RightToLeft.Yes) {
// stringFormat.FormatFlags = stringFormat.FormatFlags | StringFormatFlags.DirectionRightToLeft;
// }
//
DrawControl(graphics, base.DrawingRectangle); DrawControl(graphics, base.DrawingRectangle);
} }

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

@ -210,33 +210,30 @@ namespace ICSharpCode.Reporting.Addin.Designer
} }
private void OnComponentAdded(object sender, ComponentEventArgs ce) void OnComponentAdded(object sender, ComponentEventArgs ce)
{ {
var section = ce.Component as BaseSection; var section = ce.Component as BaseSection;
if (section != null) { if (section != null) {
this.sections.Add(section); sections.Add(section);
section.SizeChanged += new EventHandler( OnSectionSizeChanged); section.SizeChanged += new EventHandler( OnSectionSizeChanged);
Console.Write("reportRootDesigner:OnComponentAdded"); Console.Write("reportRootDesigner:OnComponentAdded");
foreach (Control cc in section.Controls) { foreach (Control ctrl in section.Controls) {
AddToHost(cc); AddToHost(ctrl);
this.host.Container.Add(cc); host.Container.Add(ctrl);
} }
// Control.Controls.Add(section);
this.Control.Controls.Add(section);
RecalculateSections(); RecalculateSections();
} }
} }
private void AddToHost (Control ctrl) void AddToHost (Control ctrl)
{ {
if (ctrl.Controls.Count > 0) { foreach (Control c1 in ctrl.Controls) {
foreach (Control c1 in ctrl.Controls) { AddToHost (c1);
AddToHost (c1);
}
} }
this.host.Container.Add(ctrl as IComponent); host.Container.Add(ctrl as IComponent);
} }

6
src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/Designer/TextItemDesigner.cs

@ -51,7 +51,7 @@ namespace ICSharpCode.Reporting.Addin.Designer
componentChangeService = (IComponentChangeService)GetService(typeof(IComponentChangeService)); componentChangeService = (IComponentChangeService)GetService(typeof(IComponentChangeService));
if (componentChangeService != null) { if (componentChangeService != null) {
componentChangeService.ComponentRename += new ComponentRenameEventHandler(OnComponentRename); componentChangeService.ComponentRename += OnComponentRename;
} }
} }
@ -64,7 +64,7 @@ namespace ICSharpCode.Reporting.Addin.Designer
void OnComponentRename(object sender,ComponentRenameEventArgs e) { void OnComponentRename(object sender,ComponentRenameEventArgs e) {
if (e.Component == this.Component) { if (e.Component == Component) {
Control.Name = e.NewName; Control.Name = e.NewName;
Control.Invalidate(); Control.Invalidate();
} }
@ -121,7 +121,7 @@ namespace ICSharpCode.Reporting.Addin.Designer
protected override void Dispose(bool disposing) protected override void Dispose(bool disposing)
{ {
if (this.selectionService != null) { if (selectionService != null) {
selectionService.SelectionChanged -= OnSelectionChanged; selectionService.SelectionChanged -= OnSelectionChanged;
} }

60
src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/Toolbox/SideTabItemDesigner.cs

@ -0,0 +1,60 @@
/*
* Created by SharpDevelop.
* User: Peter Forstmeier
* Date: 23.03.2014
* Time: 12:25
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Drawing;
using System.Drawing.Design;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Gui;
namespace ICSharpCode.Reporting.Addin.Toolbox
{
/// <summary>
/// Description of SideTabItemDesigner.
/// </summary>
public class SideTabItemDesigner : SharpDevelopSideTabItem
{
///<summary>create a tabitem from a toolboxitem. It init Icon and name from the tag</summary>
public SideTabItemDesigner(ToolboxItem tag) : base(tag.DisplayName, tag)
{
if (tag == null) {
throw new ArgumentNullException("tag");
}
CanBeRenamed = false;
this.Icon = tag.Bitmap;
ReloadToolBox();
}
///<summary>create a tabitem from a toolboxitem. It init Icon from the tag</summary>
public SideTabItemDesigner(string name, ToolboxItem tag) : base(name, tag)
{
CanBeRenamed = false;
this.Icon = tag.Bitmap;
ReloadToolBox();
}
///<summary>create a default tabitem : a pointer icon with an empty toolboxitem</summary>
public SideTabItemDesigner() : base("Pointer")
{
CanBeRenamed = false;
CanBeDeleted = false;
var pointerBitmap = new Bitmap(IconService.GetBitmap("Icons.16x16.FormsDesigner.PointerIcon"), 16, 16);
this.Icon = pointerBitmap;
this.Tag = null;
ReloadToolBox();
}
///<summary>it force to reload toolboxitem into the ToolboxService when the hostchange</summary>
public void ReloadToolBox()
{
if (this.Name != "Pointer") {
// ToolboxProvider.ToolboxService.AddToolboxItem(this.Tag as ToolboxItem);
}
}
}
}

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

@ -0,0 +1,165 @@
/*
* Created by SharpDevelop.
* User: Peter Forstmeier
* Date: 23.03.2014
* Time: 12:31
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Drawing;
using System.Drawing.Design;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Widgets.SideBar;
namespace ICSharpCode.Reporting.Addin.Toolbox
{
/// <summary>
/// Description of ToolboxProvider.
/// </summary>
static class ToolboxProvider
{
static SideTab standardSideTab;
static int viewCount;
static bool initialised;
public static void AddViewContent(IViewContent viewContent)
{
if (viewContent == null)
throw new ArgumentNullException("viewContent");
if (!initialised)
Initialise();
// Make sure the standard workflow sidebar exists
if (standardSideTab == null) {
LoggingService.Debug("Creating Reporting Sidetab");
standardSideTab = CreateReportingSidetab();
}
ViewCount++;
}
static void Initialise()
{
initialised = true;
}
static SideTab CreateReportingSidetab ()
{
var sideTab = new SideTab("ReportDesigner");
sideTab.CanSaved = false;
sideTab.Items.Add(CreateToolboxPointer(sideTab));
// TextItem
var toolboxItem = new ToolboxItem(typeof(ICSharpCode.Reporting.Addin.DesignableItems.BaseTextItem)) {
DisplayName = ResourceService.GetString("SharpReport.Toolbar.TextBox"),
Bitmap = IconService.GetBitmap("Icons.16.16.SharpReport.Textbox")
};
sideTab.Items.Add(new SideTabItemDesigner(toolboxItem));
/*
//GroupHeader
tb = new ToolboxItem(typeof(ICSharpCode.Reports.Addin.GroupHeader));
tb.Bitmap = WinFormsResourceService.GetBitmap("Icons.16x16.NameSpace");
tb.DisplayName = ResourceService.GetString("SharpReport.Toolbar.GroupHeader");
sideTab.Items.Add(new SideTabItemDesigner(tb));
//GroupFooter
tb = new ToolboxItem(typeof(ICSharpCode.Reports.Addin.GroupFooter));
tb.Bitmap = WinFormsResourceService.GetBitmap("Icons.16x16.NameSpace");
tb.DisplayName = ResourceService.GetString("SharpReport.Toolbar.GroupFooter");
sideTab.Items.Add(new SideTabItemDesigner(tb));
// Row
tb = new ToolboxItem(typeof(ICSharpCode.Reports.Addin.BaseRowItem));
tb.Bitmap = WinFormsResourceService.GetBitmap("Icons.16x16.SharpQuery.Table");
tb.DisplayName = ResourceService.GetString("SharpReport.Toolbar.DataRow");
sideTab.Items.Add(new SideTabItemDesigner(tb));
//BaseTable
// tb.Bitmap = WinFormsResourceService.GetBitmap("Icons.16x16.SharpQuery.Table");
tb.Bitmap = WinFormsResourceService.GetBitmap("Icons.16x16.SharpQuery.Table");
tb = new ToolboxItem(typeof(ICSharpCode.Reports.Addin.BaseTableItem));
tb.DisplayName = ResourceService.GetString("SharpReport.Toolbar.Table");
sideTab.Items.Add(new SideTabItemDesigner(tb));
//BaseDataItem
tb = new ToolboxItem(typeof(ICSharpCode.Reports.Addin.BaseDataItem));
tb.DisplayName = ResourceService.GetString("SharpReport.Toolbar.DataField");
// tb.Bitmap = WinFormsResourceService.GetBitmap("Icons.16x16.SharpQuery.Column");
tb.Bitmap = WinFormsResourceService.GetBitmap("Icons.16x16.SharpQuery.Column");
sideTab.Items.Add(new SideTabItemDesigner(tb));
//Grahics
// Line
tb = new ToolboxItem(typeof(ICSharpCode.Reports.Addin.BaseLineItem));
tb.DisplayName = ResourceService.GetString("SharpReport.Toolbar.Line");
tb.Bitmap = WinFormsResourceService.GetIcon("Icons.16.16.SharpReport.Line").ToBitmap();
sideTab.Items.Add(new SideTabItemDesigner(tb));
// Rectangle
tb = new ToolboxItem(typeof(ICSharpCode.Reports.Addin.BaseRectangleItem));
tb.DisplayName = ResourceService.GetString("SharpReport.Toolbar.Rectangle");
tb.Bitmap = GlobalValues.RectangleBitmap();
sideTab.Items.Add(new SideTabItemDesigner(tb));
// Circle
tb = new ToolboxItem(typeof(ICSharpCode.Reports.Addin.BaseCircleItem));
tb.DisplayName = ResourceService.GetString("SharpReport.Toolbar.Circle");
tb.Bitmap = GlobalValues.CircleBitmap();
sideTab.Items.Add(new SideTabItemDesigner(tb));
// Image
tb = new ToolboxItem(typeof(ICSharpCode.Reports.Addin.BaseImageItem));
tb.DisplayName = ResourceService.GetString("SharpReport.Toolbar.Image");
tb.Bitmap = WinFormsResourceService.GetIcon("Icons.16x16.ResourceEditor.bmp").ToBitmap();
sideTab.Items.Add(new SideTabItemDesigner(tb));
*/
return sideTab;
}
static SideTabItem CreateToolboxPointer(SideTab sideTab)
{
var pointer = new SharpDevelopSideTabItem("Pointer") {
CanBeRenamed = false,
CanBeDeleted = false,
Icon = new Bitmap(IconService.GetBitmap("Icons.16x16.FormsDesigner.PointerIcon"), 16, 16),
Tag = null
};
return pointer;
}
static SharpDevelopSideBar reportingSideBar;
public static SharpDevelopSideBar ReportingSideBar {
get {
if (reportingSideBar == null) {
reportingSideBar = new SharpDevelopSideBar();
reportingSideBar.Tabs.Add(standardSideTab);
ReportingSideBar.ActiveTab = standardSideTab;
}
return reportingSideBar;
}
}
static int ViewCount {
get { return viewCount; }
set {
viewCount = value;
if (viewCount == 0) {
standardSideTab = null;
}
}
}
}
}

4
src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/TypeProvider/TextItemTypeProvider.cs

@ -33,12 +33,12 @@ namespace ICSharpCode.Reporting.Addin.TypeProvider
class TextItemTypeDescriptor : CustomTypeDescriptor class TextItemTypeDescriptor : CustomTypeDescriptor
{ {
BaseTextItem instance; // BaseTextItem instance;
public TextItemTypeDescriptor(ICustomTypeDescriptor parent, object instance) public TextItemTypeDescriptor(ICustomTypeDescriptor parent, object instance)
: base(parent) : base(parent)
{ {
instance = instance as BaseTextItem; // instance = instance as BaseTextItem;
} }

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

@ -22,13 +22,14 @@ using ICSharpCode.SharpDevelop.Workbench;
using ICSharpCode.Reporting.Addin.DesignableItems; using ICSharpCode.Reporting.Addin.DesignableItems;
using ICSharpCode.Reporting.Addin.DesignerBinding; using ICSharpCode.Reporting.Addin.DesignerBinding;
using ICSharpCode.Reporting.Addin.Services; using ICSharpCode.Reporting.Addin.Services;
using ICSharpCode.Reporting.Addin.Toolbox;
namespace ICSharpCode.Reporting.Addin.Views namespace ICSharpCode.Reporting.Addin.Views
{ {
/// <summary> /// <summary>
/// Description of the view content /// Description of the view content
/// </summary> /// </summary>
public class DesignerView : AbstractViewContent,IHasPropertyContainer public class DesignerView : AbstractViewContent,IHasPropertyContainer, IToolsHost
{ {
readonly IDesignerGenerator generator; readonly IDesignerGenerator generator;
bool unloading; bool unloading;
@ -56,7 +57,8 @@ namespace ICSharpCode.Reporting.Addin.Views
this.generator = generator; this.generator = generator;
this.generator.Attach(this); this.generator.Attach(this);
//Start Toolbox
ToolboxProvider.AddViewContent(this);
} }
@ -233,6 +235,16 @@ namespace ICSharpCode.Reporting.Addin.Views
#endregion #endregion
#region IToolsHost
object IToolsHost.ToolsContent {
get {
return ToolboxProvider.ReportingSideBar;
}
}
#endregion
#region HasPropertyContainer implementation #region HasPropertyContainer implementation

Loading…
Cancel
Save