Browse Source

RelativeFileName for Images, set Filename in Designer

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/3.0@5477 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
pull/1/head
Peter Forstmeier 16 years ago
parent
commit
1fe4014652
  1. 42
      src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Addin/Project/DesignerBinding/ReportDefinitionDeserializer.cs
  2. 15
      src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Addin/Project/ReportDesignerView.cs
  3. 63
      src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Addin/Project/ReportItems/BaseImageItem.cs
  4. 2
      src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Addin/Project/ReportItems/BaseTextItem.cs
  5. 4
      src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/Dialogs/DefaultTextEditor.cs
  6. 51
      src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/ReportSettings.cs

42
src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Addin/Project/DesignerBinding/ReportDefinitionDeserializer.cs

@ -83,24 +83,42 @@ namespace ICSharpCode.Reports.Addin
baseImageItem.ReportFileName = fileName; baseImageItem.ReportFileName = fileName;
if (Path.IsPathRooted(baseImageItem.ImageFileName)) { if (Path.IsPathRooted(baseImageItem.ImageFileName)) {
string d = ICSharpCode.Reports.Core.FileUtility.GetRelativePath(
Path.GetDirectoryName(fileName),
Path.GetDirectoryName(baseImageItem.ImageFileName));
baseImageItem.RelativeFileName = d + Path.DirectorySeparatorChar + Path.GetFileName(baseImageItem.ImageFileName);
string p2 = Path.GetFullPath(fileName); }
//// string p3 = Path.GetFullPath(relativeFileName); }
string p3 = Path.GetFullPath(baseImageItem.RelativeFileName); }
string s = ICSharpCode.Reports.Core.FileUtility.GetRelativePath(p2,p3); }
private static void old_Absolut2RelativePath (BaseSection section, string fileName)
{
System.Diagnostics.Trace.WriteLine("Absolut2RelativePath");
foreach (Control item in section.Controls) {
BaseImageItem baseImageItem = item as BaseImageItem;
if (baseImageItem != null) {
baseImageItem.ReportFileName = fileName;
if (Path.IsPathRooted(baseImageItem.ImageFileName)) {
string d = ICSharpCode.Reports.Core.FileUtility.GetRelativePath( string relPath = ICSharpCode.Reports.Core.FileUtility.GetRelativePath(
Path.GetDirectoryName(fileName), Path.GetDirectoryName(fileName),
Path.GetDirectoryName(baseImageItem.ImageFileName)); Path.GetDirectoryName(baseImageItem.ImageFileName));
string g = d + Path.DirectorySeparatorChar + Path.GetFileName(baseImageItem.ImageFileName);
System.Diagnostics.Trace.WriteLine(String.Format("relativ image {0}",relPath));
string relFile = relPath + Path.DirectorySeparatorChar + Path.GetFileName(baseImageItem.ImageFileName);
System.Diagnostics.Trace.WriteLine(String.Format("ggg image {0}",relFile));
// baseImageItem.RelativeFileName = d + Path.DirectorySeparatorChar + Path.GetFileName(baseImageItem.ImageFileName); baseImageItem.RelativeFileName = relPath + Path.DirectorySeparatorChar + Path.GetFileName(baseImageItem.ImageFileName);
baseImageItem.RelativeFileName = s;
if (File.Exists(s)){ string ddd = ICSharpCode.Reports.Core.FileUtility.GetAbsolutePath(Path.GetDirectoryName(fileName),relFile);
System.Diagnostics.Trace.WriteLine(String.Format("baseImageItem.RelativeFileName {0}",relFile));
if (File.Exists(ddd)){
Console.WriteLine("found"); Console.WriteLine("found");
} }
} }
} }
} }

15
src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Addin/Project/ReportDesignerView.cs

@ -20,6 +20,7 @@ using ICSharpCode.Core;
using ICSharpCode.Reports.Core; using ICSharpCode.Reports.Core;
using ICSharpCode.SharpDevelop; using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Gui; using ICSharpCode.SharpDevelop.Gui;
using System.Linq;
namespace ICSharpCode.Reports.Addin namespace ICSharpCode.Reports.Addin
{ {
@ -702,18 +703,26 @@ namespace ICSharpCode.Reports.Addin
base.Load(file, stream); base.Load(file, stream);
this.LoadDesigner(stream); this.LoadDesigner(stream);
this.SetupSecondaryView(); this.SetupSecondaryView();
System.Diagnostics.Trace.WriteLine("");
System.Diagnostics.Trace.WriteLine(String.Format("DesignerView Load {0}",file.FileName)); //Always set Filename, otherwise rel path didn#t work
ComponentCollection c = Host.Container.Components;
foreach (IComponent component in c) {
if (component is ReportSettings) {
var r = component as ReportSettings;
r.FileName = file.FileName;
}
}
} }
public override void Save(ICSharpCode.SharpDevelop.OpenedFile file,Stream stream) public override void Save(ICSharpCode.SharpDevelop.OpenedFile file,Stream stream)
{ {
LoggingService.Debug("ReportDesigner: Save " + file.FileName); LoggingService.Debug("ReportDesigner: Save " + file.FileName);
if (hasUnmergedChanges) { if (hasUnmergedChanges) {
this.MergeFormChanges(); this.MergeFormChanges();
} }
Console.WriteLine(this.ReportFileContent);
using(StreamWriter writer = new StreamWriter(stream)) { using(StreamWriter writer = new StreamWriter(stream)) {
writer.Write(this.ReportFileContent); writer.Write(this.ReportFileContent);
} }

63
src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Addin/Project/ReportItems/BaseImageItem.cs

@ -78,7 +78,7 @@ namespace ICSharpCode.Reports.Addin
public string ImageFileName { public string ImageFileName {
get { return imageFileName; } get { return imageFileName; }
set { imageFileName = value; set { imageFileName = value;
System.Diagnostics.Trace.WriteLine(String.Format("<ADDIN.BaseImage > {0}",this.ImageFileName)); System.Diagnostics.Trace.WriteLine(String.Format("<ADDIN.Set BaseImage > {0}",this.ImageFileName));
} }
} }
@ -96,23 +96,14 @@ namespace ICSharpCode.Reports.Addin
return b; return b;
} }
private Image LoadImage () private Image LoadImage ()
{ {
try { try {
Image im = null; Image im;
// string absFileName = this.AbsoluteFileName; string absFileName = this.AbsoluteFileName;
if (!String.IsNullOrEmpty(absFileName) && File.Exists(absFileName)) {
this.relativeFileName = FileUtility.GetRelativePath(this.ReportFileName,this.ImageFileName); im = Image.FromFile (this.AbsoluteFileName);
// absFileName = FileUtility.GetAbsolutePath (this.relativeFileName,this.ImageFileName);
// System.Diagnostics.Trace.WriteLine("-----");
// System.Diagnostics.Trace.WriteLine(String.Format("<ADDIN.LoadImage ReportFN > {0}",this.reportFileName));
// System.Diagnostics.Trace.WriteLine(String.Format("<ADDIN.LoadImage IamgeFN > {0}",this.ImageFileName));
// System.Diagnostics.Trace.WriteLine(String.Format("<ADDIN.LoadImage rel neu s3 > {0}",this.relativeFileName));
// System.Diagnostics.Trace.WriteLine(String.Format("<ADDIN.LoadImage from absolute > {0}",this.AbsoluteFileName));
// System.Diagnostics.Trace.WriteLine("-----");
string absFileName = this.AbsoluteFileName;
if (!String.IsNullOrEmpty(absFileName) && File.Exists(absFileName)){
im = Image.FromFile (absFileName);
} else { } else {
im = BaseImageItem.ErrorBitmap(base.Size); im = BaseImageItem.ErrorBitmap(base.Size);
} }
@ -122,7 +113,6 @@ string absFileName = this.AbsoluteFileName;
throw new ReportException(str); throw new ReportException(str);
} }
return im; return im;
} catch (System.OutOfMemoryException) { } catch (System.OutOfMemoryException) {
throw; throw;
} catch (System.IO.FileNotFoundException) { } catch (System.IO.FileNotFoundException) {
@ -131,27 +121,24 @@ string absFileName = this.AbsoluteFileName;
} }
private Image old_LoadImage () private Image old_LoadImage ()
{ {
try { try {
Image im = null; Image im = null;
string absFileName = this.AbsoluteFileName;
System.Diagnostics.Trace.WriteLine("-----"); if (!string.IsNullOrEmpty(relativeFileName)) {
System.Diagnostics.Trace.WriteLine(String.Format("<ADDIN.LoadImage > {0}",absFileName)); string testFileName = FileUtility.NormalizePath(Path.Combine(Path.GetDirectoryName(this.reportFileName),this.relativeFileName));
System.Diagnostics.Trace.WriteLine(String.Format("<ADDIN.LoadImage ReportFN > {0}",this.reportFileName)); if (File.Exists(testFileName)){
System.Diagnostics.Trace.WriteLine(String.Format("<ADDIN.LoadImage IamgeFN > {0}",this.ImageFileName)); System.Diagnostics.Trace.WriteLine("Found");
System.Diagnostics.Trace.WriteLine(String.Format("<ADDIN.LoadImage IamgeFN > {0}",this.RelativeFileName)); }
// string s1 = FileUtility.GetRelativePath(this.reportFileName,this.ImageFileName); }
string s2 = FileUtility.GetRelativePath(this.ImageFileName,this.ReportFileName);
string s3 = FileUtility.GetAbsolutePath (s2,this.ImageFileName);
// System.Diagnostics.Trace.WriteLine(String.Format("<ADDIN.LoadImage s1 > {0}",s1));
//System.Diagnostics.Trace.WriteLine(String.Format("<ADDIN.LoadImage s2 > {0}",s2));
System.Diagnostics.Trace.WriteLine(String.Format("<ADDIN.LoadImage from absolute s3 > {0}",s3));
System.Diagnostics.Trace.WriteLine("-----");
this.relativeFileName = FileUtility.GetRelativePath(this.ReportFileName,this.ImageFileName);
string absFileName = this.AbsoluteFileName;
if (!String.IsNullOrEmpty(absFileName) && File.Exists(absFileName)){ if (!String.IsNullOrEmpty(absFileName) && File.Exists(absFileName)){
im = Image.FromFile (this.AbsoluteFileName); im = Image.FromFile (absFileName);
} else { } else {
im = BaseImageItem.ErrorBitmap(base.Size); im = BaseImageItem.ErrorBitmap(base.Size);
} }
@ -170,6 +157,7 @@ string absFileName = this.AbsoluteFileName;
} }
[XmlIgnoreAttribute] [XmlIgnoreAttribute]
public Image Image { public Image Image {
get { get {
@ -226,12 +214,11 @@ string absFileName = this.AbsoluteFileName;
[XmlIgnoreAttribute] [XmlIgnoreAttribute]
[Category("Image")] [Category("Image")]
// [Browsable(false)]
public string ReportFileName { public string ReportFileName {
get { return Path.GetFullPath(reportFileName); } get { return Path.GetFullPath(reportFileName); }
set { reportFileName = value; set { reportFileName = value;
System.Diagnostics.Trace.WriteLine(""); System.Diagnostics.Trace.WriteLine("");
System.Diagnostics.Trace.WriteLine(String.Format("<ADDIN.ImageItem> Filename {0}",Path.GetFullPath(this.reportFileName)));} System.Diagnostics.Trace.WriteLine(String.Format("<ADDIN.ImageItem>ReportFileName {0}",Path.GetFullPath(this.reportFileName)));}
} }
@ -246,16 +233,22 @@ string absFileName = this.AbsoluteFileName;
} }
// [XmlIgnoreAttribute] [XmlIgnoreAttribute]
// [Category("Image")] // [Category("Image")]
// [Browsable(false)] // [Browsable(false)]
public string AbsoluteFileName public string AbsoluteFileName
{ {
get { get {
string absolute = FileUtility.GetAbsolutePath(reportFileName,imageFileName); string absolute = FileUtility.GetAbsolutePath(reportFileName,imageFileName);
if (File.Exists(absolute)){ if (File.Exists(absolute)){
System.Diagnostics.Trace.WriteLine("Image.AbsoluteFileName");
System.Diagnostics.Trace.WriteLine(String.Format("Load from {0}",absolute));
System.Diagnostics.Trace.WriteLine(String.Format("report {0}",this.reportFileName));
System.Diagnostics.Trace.WriteLine(String.Format("img ab {0}",this.ImageFileName));
System.Diagnostics.Trace.WriteLine(String.Format("im rel {0}",this.relativeFileName));
string t = FileUtility.NormalizePath(Path.Combine(Path.GetDirectoryName(this.reportFileName),this.relativeFileName));
System.Diagnostics.Trace.WriteLine(String.Format("rebuild {0}",t));
System.Diagnostics.Trace.WriteLine("---------");
return absolute; return absolute;
} }
if (!string.IsNullOrEmpty(relativeFileName)) { if (!string.IsNullOrEmpty(relativeFileName)) {

2
src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Addin/Project/ReportItems/BaseTextItem.cs

@ -68,7 +68,7 @@ namespace ICSharpCode.Reports.Addin
[EditorAttribute(typeof(UISettingsEditor), [EditorAttribute(typeof(DefaultTextEditor),
typeof(System.Drawing.Design.UITypeEditor) )] typeof(System.Drawing.Design.UITypeEditor) )]
public override string Text { public override string Text {
get { return base.Text; } get { return base.Text; }

4
src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/Dialogs/DefaultTextEditor.cs

@ -17,9 +17,9 @@ namespace ICSharpCode.Reports.Core
/// <summary> /// <summary>
/// Description of UISettingsEditor. /// Description of UISettingsEditor.
/// </summary> /// </summary>
public class UISettingsEditor:UITypeEditor public class DefaultTextEditor:UITypeEditor
{ {
public UISettingsEditor () { public DefaultTextEditor () {
} }
public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value) public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value)

51
src/AddIns/Misc/SharpReport/ICSharpCode.Reports.Core/Project/ReportSettings.cs

@ -75,7 +75,7 @@ namespace ICSharpCode.Reports.Core{
private int rightMargin; private int rightMargin;
private Size pageSize; private Size pageSize;
public event EventHandler FileNameChanged; // public event EventHandler FileNameChanged;
public ReportSettings():this(new Size(1169,827),"","") public ReportSettings():this(new Size(1169,827),"","")
{ {
@ -179,8 +179,7 @@ namespace ICSharpCode.Reports.Core{
[Category("Base Settings")] [Category("Base Settings")]
[DefaultValueAttribute ("")] [XmlIgnoreAttribute]
// [XmlIgnoreAttribute]
public string FileName public string FileName
{ {
get { get {
@ -190,17 +189,11 @@ namespace ICSharpCode.Reports.Core{
return Path.GetFullPath(fileName); return Path.GetFullPath(fileName);
} }
set { set {
System.Diagnostics.Trace.WriteLine("");
System.Diagnostics.Trace.WriteLine(String.Format("<Core.ReportSettings> Filename {0}",Path.GetFullPath(value)));
if (fileName != value) {
fileName = value; fileName = value;
if (FileNameChanged != null ){
FileNameChanged (this,EventArgs.Empty);
}
}
} }
} }
[Browsable(true), Category("Base Settings")] [Browsable(true), Category("Base Settings")]
public GlobalEnums.ReportType ReportType { public GlobalEnums.ReportType ReportType {
get { get {
@ -215,23 +208,6 @@ namespace ICSharpCode.Reports.Core{
#endregion #endregion
#region OutputSettings
[Category("Output Settings")]
[DefaultValueAttribute (true)]
public bool UseStandardPrinter
{
get {
return useStandardPrinter;
}
set {
if (useStandardPrinter != value) {
useStandardPrinter = value;
}
}
}
#endregion
#region Page Settings #region Page Settings
@ -370,7 +346,7 @@ namespace ICSharpCode.Reports.Core{
[Category("Data")] [Category("Data")]
[DefaultValueAttribute ("")] [DefaultValueAttribute ("")]
[EditorAttribute (typeof(UISettingsEditor), [EditorAttribute (typeof(DefaultTextEditor),
typeof(System.Drawing.Design.UITypeEditor) )] typeof(System.Drawing.Design.UITypeEditor) )]
public string ConnectionString { public string ConnectionString {
get { get {
@ -389,7 +365,7 @@ namespace ICSharpCode.Reports.Core{
[Category("Data")] [Category("Data")]
[DefaultValueAttribute ("")] [DefaultValueAttribute ("")]
[EditorAttribute ( typeof(UISettingsEditor), [EditorAttribute ( typeof(DefaultTextEditor),
typeof(System.Drawing.Design.UITypeEditor) )] typeof(System.Drawing.Design.UITypeEditor) )]
public string CommandText { public string CommandText {
get { get {
@ -432,6 +408,8 @@ namespace ICSharpCode.Reports.Core{
} }
[Category("Data")] [Category("Data")]
[EditorAttribute ( typeof(DefaultTextEditor),
typeof(System.Drawing.Design.UITypeEditor) )]
public string NoDataMessage { public string NoDataMessage {
get { get {
return noDataMessage; return noDataMessage;
@ -458,6 +436,21 @@ namespace ICSharpCode.Reports.Core{
} }
} }
[Category("Output Settings")]
[DefaultValueAttribute (true)]
public bool UseStandardPrinter
{
get {
return useStandardPrinter;
}
set {
if (useStandardPrinter != value) {
useStandardPrinter = value;
}
}
}
#endregion #endregion
[XmlIgnoreAttribute] [XmlIgnoreAttribute]

Loading…
Cancel
Save