From e8ea45025826501848fad34a80e15130c101429f Mon Sep 17 00:00:00 2001 From: Peter Forstmeier Date: Mon, 27 Jan 2014 20:30:48 +0100 Subject: [PATCH] Fix NullReference in ReportDesignerView.cs --- .../Project/Designer/ImageDesigner.cs | 5 +- .../ReportDesignerDisplayBinding.cs | 2 +- .../Project/ReportDesignerView.cs | 86 ++++++++----------- .../BaseItems/Graphics/BaseImageItem.cs | 7 -- 4 files changed, 41 insertions(+), 59 deletions(-) diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Designer/ImageDesigner.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Designer/ImageDesigner.cs index 8115b1a092..78244a9bd5 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Designer/ImageDesigner.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Designer/ImageDesigner.cs @@ -4,7 +4,6 @@ using System; using System.ComponentModel; using System.ComponentModel.Design; -using System.Windows.Forms; using System.Windows.Forms.Design; namespace ICSharpCode.Reports.Addin.Designer @@ -15,8 +14,8 @@ namespace ICSharpCode.Reports.Addin.Designer /// public class ImageDesigner:ControlDesigner { - private ISelectionService selectionService; - private IComponentChangeService componentChangeService; + ISelectionService selectionService; + IComponentChangeService componentChangeService; public ImageDesigner() { diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/DesignerBinding/ReportDesignerDisplayBinding.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/DesignerBinding/ReportDesignerDisplayBinding.cs index ab29a7c120..1ae314f81a 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/DesignerBinding/ReportDesignerDisplayBinding.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/DesignerBinding/ReportDesignerDisplayBinding.cs @@ -26,7 +26,7 @@ namespace ICSharpCode.Reports.Addin public IViewContent CreateContentForFile(OpenedFile file) { if (file.IsDirty) { - ReportWizardCommand cmd = new ReportWizardCommand(file); + var cmd = new ReportWizardCommand(file); cmd.Run(); if (cmd.Canceled) { return null; diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportDesignerView.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportDesignerView.cs index 2f210f9a80..5e416e7fe0 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportDesignerView.cs +++ b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportDesignerView.cs @@ -13,18 +13,18 @@ using System.Text; using System.Windows.Forms; 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.Exporter; using ICSharpCode.Reports.Core.Exporter.ExportRenderer; + using ICSharpCode.Reports.Core.Globals; using ICSharpCode.SharpDevelop; using ICSharpCode.SharpDevelop.Gui; using ICSharpCode.SharpDevelop.WinForms; using ICSharpCode.SharpDevelop.Workbench; +using ICSharpCode.Reports.Addin.Commands; +using ICSharpCode.Reports.Addin.Designer; +using ICSharpCode.Reports.Addin.SecondaryViews; namespace ICSharpCode.Reports.Addin { @@ -34,26 +34,22 @@ namespace ICSharpCode.Reports.Addin public class ReportDesignerView : AbstractViewContent, IHasPropertyContainer, IClipboardHandler,IUndoHandler, IToolsHost,IPrintable { - - private bool IsFormsDesignerVisible; - private bool tabOrderMode; - private bool hasUnmergedChanges; - private bool unloading; - - private string reportFileContent; - - private Panel panel; - private ReportDesignerLoader loader; - - private IDesignerGenerator generator; - private DesignSurface designSurface; - private DefaultServiceContainer defaultServiceContainer; - private ReportDesignerUndoEngine undoEngine; - - private XmlView xmlView; - private ReportPreview reportPreview; - private ReportViewerSecondaryView reportViewer; - private TestWPFReportPreview testView; + readonly IDesignerGenerator generator; + bool IsFormsDesignerVisible; + bool tabOrderMode; + bool hasUnmergedChanges; + bool unloading; + string reportFileContent; + Panel panel; + ReportDesignerLoader loader; + DesignSurface designSurface; + DefaultServiceContainer defaultServiceContainer; + ReportDesignerUndoEngine undoEngine; + + XmlView xmlView; + ReportPreview reportPreview; + ReportViewerSecondaryView reportViewer; + TestWPFReportPreview testView; #region Constructor @@ -64,7 +60,7 @@ namespace ICSharpCode.Reports.Addin public ReportDesignerView(OpenedFile openedFile, IDesignerGenerator generator):base (openedFile) { if (openedFile == null) { - throw new ArgumentNullException("opendFile"); + throw new ArgumentNullException("openedFile"); } if (generator == null) { throw new ArgumentNullException("generator"); @@ -91,8 +87,7 @@ namespace ICSharpCode.Reports.Addin private void SetupSecondaryView () { - Console.WriteLine("SetupSecondaryView ()"); - + LoggingService.Info("Form Designer: SetupSecondaryView "); xmlView = new XmlView(generator,this); SecondaryViewContents.Add(xmlView); @@ -116,8 +111,7 @@ namespace ICSharpCode.Reports.Addin private void LoadDesigner(Stream stream) { - Console.WriteLine("LoadDesigner(Stream stream)"); - LoggingService.Info("Form Designer: BEGIN INITIALIZE"); + LoggingService.Info("Form Designer: LoadDesigner"); CreatePanel(); defaultServiceContainer = new DefaultServiceContainer(); @@ -247,7 +241,7 @@ namespace ICSharpCode.Reports.Addin private static string FormatLoadErrors(DesignSurface designSurface) { - StringBuilder sb = new StringBuilder(); + var sb = new StringBuilder(); foreach(Exception le in designSurface.LoadErrors) { sb.AppendLine(le.ToString()); sb.AppendLine(); @@ -259,8 +253,7 @@ namespace ICSharpCode.Reports.Addin private void MergeFormChanges() { LoggingService.Info("MergeFormChanges()"); - System.Diagnostics.Trace.WriteLine("View:MergeFormChanges()"); - this.designSurface.Flush(); + designSurface.Flush(); generator.MergeFormChanges(null); LoggingService.Info("Finished merging form changes"); hasUnmergedChanges = false; @@ -290,7 +283,7 @@ namespace ICSharpCode.Reports.Addin private void ReportExplorer_PropertyChanged (object sender,System.ComponentModel.PropertyChangedEventArgs e) { - Console.WriteLine("ReportExplorer_PropertyChanged"); + LoggingService.Info("ReportExplorer_PropertyChanged"); this.MakeDirty(); ReportExplorerPad explorerPad = CheckReportExplorer(); IComponentChangeService change = Host.GetService(typeof(IComponentChangeService)) as IComponentChangeService; @@ -313,11 +306,11 @@ namespace ICSharpCode.Reports.Addin private void SelectionChangedHandler(object sender, EventArgs args) { - ISelectionService ser = (ISelectionService)sender; - AbstractItem it = ser.PrimarySelection as AbstractItem; - if (it != null) { - if (String.IsNullOrEmpty(it.Site.Name)) { - it.Site.Name = it.Name; + var selectionService = (ISelectionService)sender; + var item = selectionService.PrimarySelection as AbstractItem; + if (item != null) { + if (String.IsNullOrEmpty(item.Site.Name)) { + item.Site.Name = item.Name; } } UpdatePropertyPadSelection((ISelectionService)sender); @@ -332,10 +325,7 @@ namespace ICSharpCode.Reports.Addin void TransactionClose(object sender, DesignerTransactionCloseEventArgs e) { if (shouldUpdateSelectableObjects) { - // update the property pad after the transaction is *really* finished - // (including updating the selection) -// WorkbenchSingleton.SafeThreadAsyncCall(UpdatePropertyPad); - SD.MainThread.InvokeAsync(null).FireAndForget(); + SD.MainThread.InvokeAsync(UpdatePropertyPad).FireAndForget(); shouldUpdateSelectableObjects = false; } } @@ -347,7 +337,7 @@ namespace ICSharpCode.Reports.Addin private void OnComponentChanged (object sender, ComponentChangedEventArgs e) { - BaseImageItem item = e.Component as BaseImageItem; + var item = e.Component as BaseImageItem; if (item != null) { item.ReportFileName = this.loader.ReportModel.ReportSettings.FileName; @@ -626,9 +616,9 @@ namespace ICSharpCode.Reports.Addin public void TogglePageMargin () { - IDesignerHost h = (IDesignerHost)this.designSurface.GetService(typeof(IDesignerHost)); - RootReportModel r = (RootReportModel)h.RootComponent; - r.Toggle(); + IDesignerHost designerHost = (IDesignerHost)this.designSurface.GetService(typeof(IDesignerHost)); + RootReportModel rootReportModel = (RootReportModel)designerHost.RootComponent; + rootReportModel.Toggle(); } #endregion @@ -644,7 +634,7 @@ namespace ICSharpCode.Reports.Addin public virtual void ShowTabOrder() { if (!IsTabOrderMode) { - IMenuCommandService menuCommandService = (IMenuCommandService)designSurface.GetService(typeof(IMenuCommandService)); + var menuCommandService = (IMenuCommandService)designSurface.GetService(typeof(IMenuCommandService)); menuCommandService.GlobalInvoke(StandardCommands.TabOrder); tabOrderMode = true; } @@ -653,7 +643,7 @@ namespace ICSharpCode.Reports.Addin public virtual void HideTabOrder() { if (IsTabOrderMode) { - IMenuCommandService menuCommandService = (IMenuCommandService)designSurface.GetService(typeof(IMenuCommandService)); + var menuCommandService = (IMenuCommandService)designSurface.GetService(typeof(IMenuCommandService)); menuCommandService.GlobalInvoke(StandardCommands.TabOrder); tabOrderMode = false; } diff --git a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseItems/Graphics/BaseImageItem.cs b/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseItems/Graphics/BaseImageItem.cs index b9e289ceb2..fcfd662cd5 100644 --- a/src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseItems/Graphics/BaseImageItem.cs +++ b/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) // This code is distributed under the GNU LGPL (for details please see \doc\license.txt) -/// -/// Handles the drawing of Images like Bitmap's and so on -/// -/// -/// created by - Forstmeier Peter -/// created on - 04.10.2005 11:17:29 -/// using System; using System.Drawing; using System.Globalization;