diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/ICSharpCode.Reporting.Addin.csproj b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/ICSharpCode.Reporting.Addin.csproj index 19879aca23..a5181ece13 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/ICSharpCode.Reporting.Addin.csproj +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/ICSharpCode.Reporting.Addin.csproj @@ -73,9 +73,13 @@ 3.0 + + ..\..\..\..\Libraries\WPFExtendedToolkit\Xceed.Wpf.Toolkit.dll + + @@ -84,8 +88,10 @@ + + - + @@ -140,6 +146,19 @@ + + + BaseSettingsPage.xaml + Code + + + ReportWizard.xaml + Code + + + + + @@ -210,5 +229,9 @@ EditorDialog.cs + + + + \ No newline at end of file diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/DesignableItems/ReportSettings.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/DesignableItems/ReportSettings.cs index e50e4043e7..50861beb18 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/DesignableItems/ReportSettings.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/DesignableItems/ReportSettings.cs @@ -34,9 +34,9 @@ namespace ICSharpCode.Reporting.Addin.DesignableItems // this.GraphicsUnit = GraphicsUnit.Pixel; // this.Padding = new Padding(5); // this.DefaultFont = GlobalValues.DefaultFont; - this.ReportType = GlobalEnums.ReportType.FormSheet; + this.ReportType = ReportType.FormSheet; // - this.DataModel = GlobalEnums.PushPullModel.FormSheet; + this.DataModel = PushPullModel.FormSheet; // // this.CommandType = System.Data.CommandType.Text; // this.ConnectionString = String.Empty; @@ -130,11 +130,11 @@ namespace ICSharpCode.Reporting.Addin.DesignableItems public bool Landscape {get;set;} // [Category("Data")] - public GlobalEnums.PushPullModel DataModel {get;set;} + public PushPullModel DataModel {get;set;} // [Browsable(true), Category("Base Settings")] - public GlobalEnums.ReportType ReportType {get;set;} + public ReportType ReportType {get;set;} // [Category("Parameters")] diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/DesignerBinding/DesignerBinding.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/DesignerBinding/DesignerBinding.cs index caa01485ba..e7a716d31c 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/DesignerBinding/DesignerBinding.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/DesignerBinding/DesignerBinding.cs @@ -13,10 +13,10 @@ using System.Xml; using ICSharpCode.Core; using ICSharpCode.Reporting.Factories; using ICSharpCode.Reporting.Items; -using ICSharpCode.SharpDevelop; using ICSharpCode.SharpDevelop.Workbench; using ICSharpCode.Reporting.Addin.Commands; using ICSharpCode.Reporting.Addin.Factory; +using ICSharpCode.Reporting.Addin.ReportWizard; namespace ICSharpCode.Reporting.Addin.DesignerBinding { @@ -44,6 +44,21 @@ namespace ICSharpCode.Reporting.Addin.DesignerBinding { public IViewContent CreateContentForFile(OpenedFile file) { + if (file.IsDirty) { + var cmd = new ReportWizardCommand(file); + cmd.Run(); + if (cmd.Canceled) { + LoggingService.Info("reportWizard canceled"); + return null; + } + } + + var viewCmd = new CreateDesignerCommand(file); + viewCmd.Run(); + LoggingService.Info("return DesignerView"); + return viewCmd.DesignerView; + + /* if (file.IsDirty) { var reportModel = ReportModelFactory.Create(); @@ -55,10 +70,8 @@ namespace ICSharpCode.Reporting.Addin.DesignerBinding { file.SetData(ar); } - var viewCmd = new CreateDesignerCommand(file); - viewCmd.Run(); - LoggingService.Info("return DesignerView"); - return viewCmd.DesignerView; + + */ } static byte[] XmlToArray(XmlDocument doc) diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/ReportWizard/Dialog/BaseSettingsPage.xaml b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/ReportWizard/Dialog/BaseSettingsPage.xaml new file mode 100644 index 0000000000..bf2a81e6da --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/ReportWizard/Dialog/BaseSettingsPage.xaml @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/ReportWizard/Dialog/BaseSettingsPage.xaml.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/ReportWizard/Dialog/BaseSettingsPage.xaml.cs new file mode 100644 index 0000000000..126262eb96 --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/ReportWizard/Dialog/BaseSettingsPage.xaml.cs @@ -0,0 +1,63 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 08.07.2014 + * Time: 20:26 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using System.Windows; +using Xceed.Wpf.Toolkit; +using ICSharpCode.Reporting.Addin.ReportWizard.ViewModels; + +namespace ICSharpCode.Reporting.Addin.ReportWizard.Dialog{ + + /// + /// Interaction logic for PageOne.xamlWizardPage,IHasContext + /// + public partial class BaseSettingsPage : WizardPage,IHasContext + { + PageOneContext context; + + public BaseSettingsPage() + { + InitializeComponent(); + this.context = new PageOneContext(); + } + + + public IWizardContext Context { + get{ + UpdateContext(); + return context;} + } + + public int PageNumber { + get {return 1;} + } + + + void WizardPage_Enter(object sender, RoutedEventArgs e) + { + + Console.Write("Create Context for PageOne"); + } + + void WizardPage_Leave(object sender, RoutedEventArgs e) + { +// NewMethod(); + } + + void UpdateContext() + { +// context.FormSheet = this._FormSheet.IsChecked == true; +// context.PushModel = this._PushModel.IsChecked == true; + context.ReportName = this._ReportName.Text; + context.FileName = this._Filename.Text; + context.Legal = _Legal.IsChecked == true; + ; + context.Landscape = _Landscape.IsChecked == true; + } + } +} \ No newline at end of file diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/ReportWizard/Dialog/IHasContext.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/ReportWizard/Dialog/IHasContext.cs new file mode 100644 index 0000000000..d2479d2600 --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/ReportWizard/Dialog/IHasContext.cs @@ -0,0 +1,22 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 16.07.2014 + * Time: 20:41 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using ICSharpCode.Reporting.Addin.ReportWizard.ViewModels; + +namespace ICSharpCode.Reporting.Addin.ReportWizard.Dialog +{ + /// + /// Description of IHasContext. + /// + public interface IHasContext + { + IWizardContext Context {get;} + int PageNumber {get;} + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/ReportWizard/Dialog/ReportWizard.xaml b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/ReportWizard/Dialog/ReportWizard.xaml new file mode 100644 index 0000000000..8e3d9916e0 --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/ReportWizard/Dialog/ReportWizard.xaml @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/ReportWizard/Dialog/ReportWizard.xaml.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/ReportWizard/Dialog/ReportWizard.xaml.cs new file mode 100644 index 0000000000..736ae0ee53 --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/ReportWizard/Dialog/ReportWizard.xaml.cs @@ -0,0 +1,63 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 07.07.2014 + * Time: 20:18 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using System.Windows; +using Xceed.Wpf.Toolkit; +using ICSharpCode.Reporting.Addin.ReportWizard.ViewModels; +using System.Linq; + +namespace ICSharpCode.Reporting.Addin.ReportWizard.Dialog +{ + /// + /// Interaction logic for Window1.xaml + /// + public partial class ReportWizard : Window + { + ReportWizardContext context; + BaseSettingsPage baseSettingsPage; + + public ReportWizard(ReportWizardContext context) + { + InitializeComponent(); + this.context = context; + baseSettingsPage = new BaseSettingsPage(); + _wizard.Items.Insert(2,baseSettingsPage); + + } + + + void _wizard_Next(object sender, Xceed.Wpf.Toolkit.Core.CancelRoutedEventArgs e) + { + } + + + void _wizard_PageChanged(object sender, RoutedEventArgs e) + { + + } + + void _wizard_Finish(object sender, RoutedEventArgs e) + { + var x = _wizard.Items; + + foreach (var element in this._wizard.Items) { + var isHasContext = element is IHasContext; + if (isHasContext) { + + var hasContext = (IHasContext) element; + Console.WriteLine(" {0} - {1}",hasContext.PageNumber,element.ToString()); + } + } + + context.PageOneContext = baseSettingsPage.Context; + + } + + } +} \ No newline at end of file diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/ReportWizard/ReportGenerator.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/ReportWizard/ReportGenerator.cs new file mode 100644 index 0000000000..8f99a5e582 --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/ReportWizard/ReportGenerator.cs @@ -0,0 +1,31 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 22.07.2014 + * Time: 19:37 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using ICSharpCode.Reporting.Interfaces; +using ICSharpCode.Reporting.Addin.ReportWizard.ViewModels; + +namespace ICSharpCode.Reporting.Addin.ReportWizard +{ + /// + /// Description of ReportGenerator. + /// + public class ReportGenerator + { + ReportWizardContext context; + + public ReportGenerator(ReportWizardContext context) + { + if (context == null) + throw new ArgumentNullException("context"); + this.context = context; + } + + + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/ReportWizard/ReportWizardCommand.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/ReportWizard/ReportWizardCommand.cs new file mode 100644 index 0000000000..ba524408af --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/ReportWizard/ReportWizardCommand.cs @@ -0,0 +1,48 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 08.07.2014 + * Time: 19:47 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using ICSharpCode.Core; +using ICSharpCode.Reporting.Interfaces; +using ICSharpCode.SharpDevelop.Workbench; +using ICSharpCode.Reporting.Addin.ReportWizard.Dialog; +using ICSharpCode.Reporting.Addin.ReportWizard.ViewModels; + +namespace ICSharpCode.Reporting.Addin.ReportWizard +{ + /// + /// Description of ReportWizardCommand. + /// + class ReportWizardCommand: AbstractMenuCommand + { + readonly OpenedFile file; + + public ReportWizardCommand (OpenedFile file) { + if (file == null) + throw new ArgumentNullException("file"); + this.file = file; + } + + public override void Run() + { + var wizardViewModel = new ReportWizardContext(); + var reportWizard = new ICSharpCode.Reporting.Addin.ReportWizard.Dialog.ReportWizard(wizardViewModel); + + reportWizard.ShowDialog(); + if (reportWizard.DialogResult.HasValue && reportWizard.DialogResult.Value){ + LoggingService.Info("ReportWizard - CreateReport"); + var rg = new ReportGenerator(wizardViewModel); + + } else { + Canceled = true; + } + } + + public bool Canceled {get; private set;} + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/ReportWizard/ViewModels/PageOneContext.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/ReportWizard/ViewModels/PageOneContext.cs new file mode 100644 index 0000000000..a012d040eb --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/ReportWizard/ViewModels/PageOneContext.cs @@ -0,0 +1,26 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 07/12/2014 + * Time: 18:20 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; +using Xceed.Wpf.Toolkit; + +namespace ICSharpCode.Reporting.Addin.ReportWizard.ViewModels +{ + /// + /// Description of PageOneViewModel. + /// + public class PageOneContext:IWizardContext + { + public bool FormSheet {get;set;} + public bool PushModel {get;set;} + public string ReportName {get;set;} + public string FileName {get;set;} + public bool Legal {get;set;} + public bool Landscape {get;set;} + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/ReportWizard/ViewModels/ReportWizardContext.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/ReportWizard/ViewModels/ReportWizardContext.cs new file mode 100644 index 0000000000..074f032a60 --- /dev/null +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting.Addin/src/ReportWizard/ViewModels/ReportWizardContext.cs @@ -0,0 +1,39 @@ +/* + * Created by SharpDevelop. + * User: Peter Forstmeier + * Date: 07/12/2014 + * Time: 18:10 + * + * To change this template use Tools | Options | Coding | Edit Standard Headers. + */ +using System; + +namespace ICSharpCode.Reporting.Addin.ReportWizard.ViewModels +{ + + public interface IWizardContext { + + } + /// + /// Description of ReportWizardViewModel. + /// + public class ReportWizardContext:IWizardContext + { + + + public string Title { + get{ return "das ist der Title";} + } + + IWizardContext pageOneContext; + + public IWizardContext PageOneContext { + get { + return pageOneContext; + } + set { + pageOneContext = value; + } + } + } +} diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Factories/ReportCreatorFactory.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Factories/ReportCreatorFactory.cs index 6ce850bbb8..7b87fe03d2 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Factories/ReportCreatorFactory.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Factories/ReportCreatorFactory.cs @@ -32,18 +32,18 @@ namespace ICSharpCode.Reporting.Factories { IReportCreator reportCreator = null; switch (reportModel.ReportSettings.DataModel) { - case GlobalEnums.PushPullModel.FormSheet: + case PushPullModel.FormSheet: { reportCreator = new FormPageBuilder(reportModel); break; } - case GlobalEnums.PushPullModel.PullData: + case PushPullModel.PullData: { break; } - case GlobalEnums.PushPullModel.PushData: + case PushPullModel.PushData: { break; diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Factories/ReportModelFactory.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Factories/ReportModelFactory.cs index b6fa62ec5e..ded5abbdbc 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Factories/ReportModelFactory.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Factories/ReportModelFactory.cs @@ -22,7 +22,7 @@ namespace ICSharpCode.Reporting.Factories { var reportModel = new ReportModel(); - foreach (var section in Enum.GetValues(typeof(GlobalEnums.ReportSection))) { + foreach (var section in Enum.GetValues(typeof(ReportSection))) { reportModel.SectionCollection.Add (SectionFactory.Create(section.ToString())); } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Globals/GlobalEnums.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Globals/GlobalEnums.cs index accba07f91..15be41d41e 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Globals/GlobalEnums.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Globals/GlobalEnums.cs @@ -23,12 +23,30 @@ namespace ICSharpCode.Reporting.Globals /// /// Description of GlobalEnums. /// - public sealed class GlobalEnums - { - private GlobalEnums() { - } - public enum ReportSection { + ///Technics to get the data + /// Push : report get's a ready filld dataset or something tah implements IList + /// Pull : report has to fill data by themself + /// FormSheet : FormSheet report, just labels and images are allowed + /// + /// + public enum PushPullModel { + PushData, + PullData, + FormSheet + } + + /// + /// FormSheet means a blank form with Labels, Lines and Checkboxes + /// DataReport handles all Reports with Data + /// + public enum ReportType { + FormSheet, + DataReport, + } + + +public enum ReportSection { ReportHeader, ReportPageHeader, ReportDetail, @@ -36,27 +54,34 @@ namespace ICSharpCode.Reporting.Globals ReportFooter } + public sealed class GlobalEnums + { + private GlobalEnums() { + } + + + ///Technics to get the data /// Push : report get's a ready filld dataset or something tah implements IList /// Pull : report has to fill data by themself /// FormSheet : FormSheet report, just labels and images are allowed /// /// - public enum PushPullModel { - PushData, - PullData, - FormSheet - } +// public enum PushPullModel { +// PushData, +// PullData, +// FormSheet +// } /// /// FormSheet means a blank form with Labels, Lines and Checkboxes /// DataReport handles all Reports with Data /// - public enum ReportType { - FormSheet, - DataReport, - } +// public enum ReportType { +// FormSheet, +// DataReport, +// } } diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportSettings.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportSettings.cs index 5193420945..ac960a1dd2 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportSettings.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Src/Items/ReportSettings.cs @@ -65,9 +65,9 @@ namespace ICSharpCode.Reporting.Items // this.GraphicsUnit = GraphicsUnit.Pixel; // this.Padding = new Padding(5); // this.DefaultFont = GlobalValues.DefaultFont; - ReportType = GlobalEnums.ReportType.FormSheet; + ReportType = ReportType.FormSheet; // - this.DataModel = GlobalEnums.PushPullModel.FormSheet; + this.DataModel = PushPullModel.FormSheet; // // this.CommandType = System.Data.CommandType.Text; // this.ConnectionString = String.Empty; @@ -125,11 +125,11 @@ namespace ICSharpCode.Reporting.Items [Browsable(true), Category("Base Settings")] - public GlobalEnums.ReportType ReportType {get;set;} + public ReportType ReportType {get;set;} [Browsable(true), Category("Base Settings")] - public GlobalEnums.PushPullModel DataModel {get;set;} + public PushPullModel DataModel {get;set;} #endregion diff --git a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/Reportingfactory/GeneralReportLoading.cs b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/Reportingfactory/GeneralReportLoading.cs index b1c1d5d25c..f19e89df84 100644 --- a/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/Reportingfactory/GeneralReportLoading.cs +++ b/src/AddIns/Misc/Reporting/ICSharpCode.Reporting/Test/ICSharpCode.Reporting.Test/src/Reportingfactory/GeneralReportLoading.cs @@ -68,7 +68,7 @@ namespace ICSharpCode.Reporting.Test.Reportingfactory { var rf = new ReportingFactory(); var model = rf.LoadReportModel(stream); - Assert.That(model.ReportSettings.DataModel,Is.EqualTo(GlobalEnums.PushPullModel.FormSheet)); + Assert.That(model.ReportSettings.DataModel,Is.EqualTo(PushPullModel.FormSheet)); }