From 2f58d19a5d88af3bd84fbadfb303c964251892e2 Mon Sep 17 00:00:00 2001 From: peterforstmeier Date: Wed, 22 Sep 2010 19:37:56 +0200 Subject: [PATCH] Editor for FormatString and DataType in Designer --- .../ICSharpCode.Reports.Addin.csproj | 2 + .../Dialogs/DataTypeStringConverter.cs | 43 +++++++++++++++++ .../Project/Dialogs/StringConverter.cs | 48 +++++++++++++++++++ .../Project/ReportItems/BaseTextItem.cs | 11 +++++ .../Project/Globals/GlobalLists.cs | 14 ++++++ 5 files changed, 118 insertions(+) create mode 100644 src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Dialogs/DataTypeStringConverter.cs create mode 100644 src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Dialogs/StringConverter.cs 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 aa25d6c66c..92d4f392da 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 @@ -117,12 +117,14 @@ + Form ExpressionEditor.cs + diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Dialogs/DataTypeStringConverter.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Dialogs/DataTypeStringConverter.cs new file mode 100644 index 0000000000..e3a8da0a59 --- /dev/null +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Dialogs/DataTypeStringConverter.cs @@ -0,0 +1,43 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 22.09.2010 + * Time: 19:23 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using System.ComponentModel; +using ICSharpCode.Reports.Core; + + +namespace ICSharpCode.Reports.Addin.Dialogs +{ + /// + /// Description of DataTypeStringConverter. + /// + public class DataTypeStringConverter:StringConverter + { + public override bool GetStandardValuesSupported(ITypeDescriptorContext + context) + { + //true means show a combobox + return true; + } + + + public override bool GetStandardValuesExclusive(ITypeDescriptorContext + context) + { + //true will limit to list. false will show the list, but allow free-form entry + return true; + } + + + public override TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context) + { + return new StandardValuesCollection(GlobalLists.DataTypeList()); + + } + } +} diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Dialogs/StringConverter.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Dialogs/StringConverter.cs new file mode 100644 index 0000000000..f4d41faf3a --- /dev/null +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Dialogs/StringConverter.cs @@ -0,0 +1,48 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 22.09.2010 + * Time: 19:12 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using System.ComponentModel; +using ICSharpCode.Reports.Core; + + +namespace ICSharpCode.Reports.Addin.Dialogs +{ + /// + /// Description of StringConverter. + /// + public class FormatStringConverter:StringConverter + { + + + public override bool GetStandardValuesSupported(ITypeDescriptorContext + context) + { + //true means show a combobox + return true; + } + + + public override bool GetStandardValuesExclusive(ITypeDescriptorContext + context) + { + //true will limit to list. false will show the list, but allow free-form entry + return true; + } + + + public override TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context) + { +// return new StandardValuesCollection( +// new string[] { "entry1", "entry2", "entry3" }); + return new StandardValuesCollection(GlobalLists.Formats()); + + } + + } +} diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportItems/BaseTextItem.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportItems/BaseTextItem.cs index 75ea6996e5..16b49d1693 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportItems/BaseTextItem.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportItems/BaseTextItem.cs @@ -15,6 +15,7 @@ using System.Drawing; using ICSharpCode.Reports.Addin.Designer; using ICSharpCode.Reports.Core; using ICSharpCode.Reports.Core.BaseClasses.Printing; +using ICSharpCode.Reports.Addin.Dialogs; namespace ICSharpCode.Reports.Addin { @@ -90,6 +91,11 @@ namespace ICSharpCode.Reports.Addin [Browsable(true), Category("Appearance"), Description("String to format Number's Date's etc")] + + [DefaultValue("entry1")] + +[TypeConverter(typeof(FormatStringConverter))] + public string FormatString { get { return formatString; } set { @@ -136,6 +142,11 @@ namespace ICSharpCode.Reports.Addin Category("Databinding"), Description("Datatype of the underlying Column")] + + [DefaultValue("System.String")] + + [TypeConverter(typeof(DataTypeStringConverter))] + public string DataType {get;set;} diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Globals/GlobalLists.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Globals/GlobalLists.cs index 3929a322b8..06eddbec7f 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Globals/GlobalLists.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Globals/GlobalLists.cs @@ -59,6 +59,20 @@ namespace ICSharpCode.Reports.Core #endregion + #region DataTypes + public static string[] DataTypeList () + { + return (string[])MyDataTypeList.Clone(); + } + + + private static readonly string[] MyDataTypeList = new string[] { + "System.String", + "System.DateTime", + "System.Decimal", + "System.Int"}; + #endregion + #region Aggregates public static string[] AggregateFunctions ()