Browse Source

Fix NullReference in ReportDesignerView.cs

reports
Peter Forstmeier 12 years ago
parent
commit
e8ea450258
  1. 5
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Designer/ImageDesigner.cs
  2. 2
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/DesignerBinding/ReportDesignerDisplayBinding.cs
  3. 86
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportDesignerView.cs
  4. 7
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseItems/Graphics/BaseImageItem.cs

5
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Designer/ImageDesigner.cs

@ -4,7 +4,6 @@
using System; using System;
using System.ComponentModel; using System.ComponentModel;
using System.ComponentModel.Design; using System.ComponentModel.Design;
using System.Windows.Forms;
using System.Windows.Forms.Design; using System.Windows.Forms.Design;
namespace ICSharpCode.Reports.Addin.Designer namespace ICSharpCode.Reports.Addin.Designer
@ -15,8 +14,8 @@ namespace ICSharpCode.Reports.Addin.Designer
/// </summary> /// </summary>
public class ImageDesigner:ControlDesigner public class ImageDesigner:ControlDesigner
{ {
private ISelectionService selectionService; ISelectionService selectionService;
private IComponentChangeService componentChangeService; IComponentChangeService componentChangeService;
public ImageDesigner() public ImageDesigner()
{ {

2
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/DesignerBinding/ReportDesignerDisplayBinding.cs

@ -26,7 +26,7 @@ namespace ICSharpCode.Reports.Addin
public IViewContent CreateContentForFile(OpenedFile file) public IViewContent CreateContentForFile(OpenedFile file)
{ {
if (file.IsDirty) { if (file.IsDirty) {
ReportWizardCommand cmd = new ReportWizardCommand(file); var cmd = new ReportWizardCommand(file);
cmd.Run(); cmd.Run();
if (cmd.Canceled) { if (cmd.Canceled) {
return null; return null;

86
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportDesignerView.cs

@ -13,18 +13,18 @@ using System.Text;
using System.Windows.Forms; using System.Windows.Forms;
using ICSharpCode.Core; using ICSharpCode.Core;
using ICSharpCode.Reports.Addin.Commands;
using ICSharpCode.Reports.Addin.Designer;
using ICSharpCode.Reports.Addin.SecondaryViews;
using ICSharpCode.Reports.Core; using ICSharpCode.Reports.Core;
using ICSharpCode.Reports.Core.Exporter; using ICSharpCode.Reports.Core.Exporter;
using ICSharpCode.Reports.Core.Exporter.ExportRenderer; using ICSharpCode.Reports.Core.Exporter.ExportRenderer;
using ICSharpCode.Reports.Core.Globals; using ICSharpCode.Reports.Core.Globals;
using ICSharpCode.SharpDevelop; using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Gui; using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.WinForms; using ICSharpCode.SharpDevelop.WinForms;
using ICSharpCode.SharpDevelop.Workbench; using ICSharpCode.SharpDevelop.Workbench;
using ICSharpCode.Reports.Addin.Commands;
using ICSharpCode.Reports.Addin.Designer;
using ICSharpCode.Reports.Addin.SecondaryViews;
namespace ICSharpCode.Reports.Addin namespace ICSharpCode.Reports.Addin
{ {
@ -34,26 +34,22 @@ namespace ICSharpCode.Reports.Addin
public class ReportDesignerView : AbstractViewContent, IHasPropertyContainer, public class ReportDesignerView : AbstractViewContent, IHasPropertyContainer,
IClipboardHandler,IUndoHandler, IToolsHost,IPrintable IClipboardHandler,IUndoHandler, IToolsHost,IPrintable
{ {
readonly IDesignerGenerator generator;
private bool IsFormsDesignerVisible; bool IsFormsDesignerVisible;
private bool tabOrderMode; bool tabOrderMode;
private bool hasUnmergedChanges; bool hasUnmergedChanges;
private bool unloading; bool unloading;
string reportFileContent;
private string reportFileContent; Panel panel;
ReportDesignerLoader loader;
private Panel panel; DesignSurface designSurface;
private ReportDesignerLoader loader; DefaultServiceContainer defaultServiceContainer;
ReportDesignerUndoEngine undoEngine;
private IDesignerGenerator generator;
private DesignSurface designSurface; XmlView xmlView;
private DefaultServiceContainer defaultServiceContainer; ReportPreview reportPreview;
private ReportDesignerUndoEngine undoEngine; ReportViewerSecondaryView reportViewer;
TestWPFReportPreview testView;
private XmlView xmlView;
private ReportPreview reportPreview;
private ReportViewerSecondaryView reportViewer;
private TestWPFReportPreview testView;
#region Constructor #region Constructor
@ -64,7 +60,7 @@ namespace ICSharpCode.Reports.Addin
public ReportDesignerView(OpenedFile openedFile, IDesignerGenerator generator):base (openedFile) public ReportDesignerView(OpenedFile openedFile, IDesignerGenerator generator):base (openedFile)
{ {
if (openedFile == null) { if (openedFile == null) {
throw new ArgumentNullException("opendFile"); throw new ArgumentNullException("openedFile");
} }
if (generator == null) { if (generator == null) {
throw new ArgumentNullException("generator"); throw new ArgumentNullException("generator");
@ -91,8 +87,7 @@ namespace ICSharpCode.Reports.Addin
private void SetupSecondaryView () private void SetupSecondaryView ()
{ {
Console.WriteLine("SetupSecondaryView ()"); LoggingService.Info("Form Designer: SetupSecondaryView ");
xmlView = new XmlView(generator,this); xmlView = new XmlView(generator,this);
SecondaryViewContents.Add(xmlView); SecondaryViewContents.Add(xmlView);
@ -116,8 +111,7 @@ namespace ICSharpCode.Reports.Addin
private void LoadDesigner(Stream stream) private void LoadDesigner(Stream stream)
{ {
Console.WriteLine("LoadDesigner(Stream stream)"); LoggingService.Info("Form Designer: LoadDesigner");
LoggingService.Info("Form Designer: BEGIN INITIALIZE");
CreatePanel(); CreatePanel();
defaultServiceContainer = new DefaultServiceContainer(); defaultServiceContainer = new DefaultServiceContainer();
@ -247,7 +241,7 @@ namespace ICSharpCode.Reports.Addin
private static string FormatLoadErrors(DesignSurface designSurface) private static string FormatLoadErrors(DesignSurface designSurface)
{ {
StringBuilder sb = new StringBuilder(); var sb = new StringBuilder();
foreach(Exception le in designSurface.LoadErrors) { foreach(Exception le in designSurface.LoadErrors) {
sb.AppendLine(le.ToString()); sb.AppendLine(le.ToString());
sb.AppendLine(); sb.AppendLine();
@ -259,8 +253,7 @@ namespace ICSharpCode.Reports.Addin
private void MergeFormChanges() private void MergeFormChanges()
{ {
LoggingService.Info("MergeFormChanges()"); LoggingService.Info("MergeFormChanges()");
System.Diagnostics.Trace.WriteLine("View:MergeFormChanges()"); designSurface.Flush();
this.designSurface.Flush();
generator.MergeFormChanges(null); generator.MergeFormChanges(null);
LoggingService.Info("Finished merging form changes"); LoggingService.Info("Finished merging form changes");
hasUnmergedChanges = false; hasUnmergedChanges = false;
@ -290,7 +283,7 @@ namespace ICSharpCode.Reports.Addin
private void ReportExplorer_PropertyChanged (object sender,System.ComponentModel.PropertyChangedEventArgs e) private void ReportExplorer_PropertyChanged (object sender,System.ComponentModel.PropertyChangedEventArgs e)
{ {
Console.WriteLine("ReportExplorer_PropertyChanged"); LoggingService.Info("ReportExplorer_PropertyChanged");
this.MakeDirty(); this.MakeDirty();
ReportExplorerPad explorerPad = CheckReportExplorer(); ReportExplorerPad explorerPad = CheckReportExplorer();
IComponentChangeService change = Host.GetService(typeof(IComponentChangeService)) as IComponentChangeService; IComponentChangeService change = Host.GetService(typeof(IComponentChangeService)) as IComponentChangeService;
@ -313,11 +306,11 @@ namespace ICSharpCode.Reports.Addin
private void SelectionChangedHandler(object sender, EventArgs args) private void SelectionChangedHandler(object sender, EventArgs args)
{ {
ISelectionService ser = (ISelectionService)sender; var selectionService = (ISelectionService)sender;
AbstractItem it = ser.PrimarySelection as AbstractItem; var item = selectionService.PrimarySelection as AbstractItem;
if (it != null) { if (item != null) {
if (String.IsNullOrEmpty(it.Site.Name)) { if (String.IsNullOrEmpty(item.Site.Name)) {
it.Site.Name = it.Name; item.Site.Name = item.Name;
} }
} }
UpdatePropertyPadSelection((ISelectionService)sender); UpdatePropertyPadSelection((ISelectionService)sender);
@ -332,10 +325,7 @@ namespace ICSharpCode.Reports.Addin
void TransactionClose(object sender, DesignerTransactionCloseEventArgs e) void TransactionClose(object sender, DesignerTransactionCloseEventArgs e)
{ {
if (shouldUpdateSelectableObjects) { if (shouldUpdateSelectableObjects) {
// update the property pad after the transaction is *really* finished SD.MainThread.InvokeAsync(UpdatePropertyPad).FireAndForget();
// (including updating the selection)
// WorkbenchSingleton.SafeThreadAsyncCall(UpdatePropertyPad);
SD.MainThread.InvokeAsync(null).FireAndForget();
shouldUpdateSelectableObjects = false; shouldUpdateSelectableObjects = false;
} }
} }
@ -347,7 +337,7 @@ namespace ICSharpCode.Reports.Addin
private void OnComponentChanged (object sender, ComponentChangedEventArgs e) private void OnComponentChanged (object sender, ComponentChangedEventArgs e)
{ {
BaseImageItem item = e.Component as BaseImageItem; var item = e.Component as BaseImageItem;
if (item != null) { if (item != null) {
item.ReportFileName = this.loader.ReportModel.ReportSettings.FileName; item.ReportFileName = this.loader.ReportModel.ReportSettings.FileName;
@ -626,9 +616,9 @@ namespace ICSharpCode.Reports.Addin
public void TogglePageMargin () public void TogglePageMargin ()
{ {
IDesignerHost h = (IDesignerHost)this.designSurface.GetService(typeof(IDesignerHost)); IDesignerHost designerHost = (IDesignerHost)this.designSurface.GetService(typeof(IDesignerHost));
RootReportModel r = (RootReportModel)h.RootComponent; RootReportModel rootReportModel = (RootReportModel)designerHost.RootComponent;
r.Toggle(); rootReportModel.Toggle();
} }
#endregion #endregion
@ -644,7 +634,7 @@ namespace ICSharpCode.Reports.Addin
public virtual void ShowTabOrder() public virtual void ShowTabOrder()
{ {
if (!IsTabOrderMode) { if (!IsTabOrderMode) {
IMenuCommandService menuCommandService = (IMenuCommandService)designSurface.GetService(typeof(IMenuCommandService)); var menuCommandService = (IMenuCommandService)designSurface.GetService(typeof(IMenuCommandService));
menuCommandService.GlobalInvoke(StandardCommands.TabOrder); menuCommandService.GlobalInvoke(StandardCommands.TabOrder);
tabOrderMode = true; tabOrderMode = true;
} }
@ -653,7 +643,7 @@ namespace ICSharpCode.Reports.Addin
public virtual void HideTabOrder() public virtual void HideTabOrder()
{ {
if (IsTabOrderMode) { if (IsTabOrderMode) {
IMenuCommandService menuCommandService = (IMenuCommandService)designSurface.GetService(typeof(IMenuCommandService)); var menuCommandService = (IMenuCommandService)designSurface.GetService(typeof(IMenuCommandService));
menuCommandService.GlobalInvoke(StandardCommands.TabOrder); menuCommandService.GlobalInvoke(StandardCommands.TabOrder);
tabOrderMode = false; tabOrderMode = false;
} }

7
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseItems/Graphics/BaseImageItem.cs

@ -1,13 +1,6 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt) // Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt) // This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
/// <summary>
/// Handles the drawing of Images like Bitmap's and so on
/// </summary>
/// <remarks>
/// created by - Forstmeier Peter
/// created on - 04.10.2005 11:17:29
/// </remarks>
using System; using System;
using System.Drawing; using System.Drawing;
using System.Globalization; using System.Globalization;

Loading…
Cancel
Save