protected virtual void OnOpenActionActivated(object sender, System.EventArgs e) { Gtk.FileChooserDialog fc = new Gtk.FileChooserDialog("Choose the Monoreports file to open", ((Gtk.Window) this.Toplevel), FileChooserAction.Open, "Cancel", ResponseType.Cancel, "Open", ResponseType.Accept); var fileFilter = new FileFilter { Name = "Monoreports project" }; fileFilter.AddPattern("*.mrp"); fc.AddFilter(fileFilter); if (fc.Run() == (int)ResponseType.Accept) { ShowInPropertyGrid(null); designService.Load(fc.Filename); } fc.Destroy(); workspaceService.InvalidateDesignArea(); }
public MonoreportsDesignerControl() { Build(); dpi = Gdk.Screen.Default.Resolution; Report startReport = new Report() { DataScript = @" datasource = new [] { new { Name=""Alfred"", Surname = ""Tarski"", Age = ""82"" }, new { Name=""Saul"", Surname = ""Kripke"", Age = ""70"" }, new { Name=""Gotlob"", Surname = ""Frege"", Age = ""85"" }, new { Name=""Kurt"", Surname = ""Gödel"", Age = ""72"" }, }; parameters.Add(""Title"",new { Title = ""The Logicans"", SubTitle = ""...and philosophers...""}); " }; string template = @" using System; using System.Collections.Generic; {0} public sealed class GenerateDataSource {{ public object Generate() {{ object datasource = null; Dictionary<string,object> parameters = new Dictionary<string,object>(); {1} return new object[] {{datasource,parameters}}; }} }} "; compilerService = new CompilerService(template); workspaceService = new WorkspaceService(this, maindesignview1.DesignDrawingArea, maindesignview1.PreviewDrawingArea, mainPropertygrid, StatusBarLabel); designService = new DesignService(workspaceService, compilerService, startReport); toolBoxService = new ToolBoxService(); designService.ToolBoxService = toolBoxService; maindesignview1.DesignService = designService; maindesignview1.WorkSpaceService = workspaceService; maindesignview1.Compiler = compilerService; var reportRenderer = new ReportRenderer(); reportRenderer.RegisterRenderer(typeof(Controls.TextBlock), new TextBlockRenderer() { DPI = dpi }); reportRenderer.RegisterRenderer(typeof(Controls.Line), new LineRenderer() { DPI = dpi }); reportRenderer.RegisterRenderer(typeof(MonoReports.Model.Controls.Image), new ImageRenderer() { PixbufRepository = designService.PixbufRepository, DPI = dpi }); SectionRenderer sr = new SectionRenderer() { DPI = dpi }; reportRenderer.RegisterRenderer(typeof(Controls.ReportHeaderSection), sr); reportRenderer.RegisterRenderer(typeof(Controls.ReportFooterSection), sr); reportRenderer.RegisterRenderer(typeof(Controls.DetailSection), sr); reportRenderer.RegisterRenderer(typeof(Controls.PageHeaderSection), sr); reportRenderer.RegisterRenderer(typeof(Controls.PageFooterSection), sr); maindesignview1.ReportRenderer = reportRenderer; workspaceService.InvalidateDesignArea(); reportExplorer.DesignService = designService; reportExplorer.Workspace = workspaceService; toolBoxService.AddTool(new ZoomTool(designService)); toolBoxService.AddTool(new LineTool(designService)); toolBoxService.AddTool(new LineToolV(designService)); toolBoxService.AddTool(new LineToolH(designService)); toolBoxService.AddTool(new TextBlockTool(designService)); toolBoxService.AddTool(new SubreportTool(designService)); toolBoxService.AddTool(new SectionTool(designService)); toolBoxService.AddTool(new ImageTool(designService)); toolBoxService.AddTool(new RectTool(designService)); toolBoxService.BuildToolBar(mainToolbar); ToolBarButton exportPdfToolButton = new ToolBarButton("pdf.png", "exportPdf", "export to pdf"); exportPdfToolButton.Clicked += delegate(object sender, EventArgs e) { designService.ExportToPdf(); }; mainToolbar.Insert(exportPdfToolButton, 7); mainPropertygrid.LoadMonoreportsExtensions(); }