2016-10-17 14:25:30 +00:00

150 lines
3.1 KiB
C#

using System;
using System.ComponentModel;
namespace VEPROMS.CSLA.Library
{
[Serializable]
[TypeConverter(typeof(ExpandableObjectConverter))]
public class ImageConfig : ConfigDynamicTypeDescriptor, INotifyPropertyChanged
{
#region DynamicTypeDescriptor
internal override bool IsReadOnly
{
get { return _ImageInfo == null; }
}
#endregion
#region XML
private XMLProperties _Xp;
private XMLProperties Xp
{
get { return _Xp; }
}
#endregion
#region Constructors
private ImageInfo _ImageInfo;
public ImageConfig(ImageInfo imageInfo)
{
if (imageInfo == null)
{
string xmlx = "<Config/>";
_Xp = new XMLProperties(xmlx);
return;
}
_ImageInfo = imageInfo;
string xml = imageInfo.Config;
if (xml == string.Empty) xml = "<Config/>";
_Xp = new XMLProperties(xml);
}
public ImageConfig()
{
string xml = "<Config/>";
_Xp = new XMLProperties(xml);
}
internal string GetValue(string group, string item)
{
return _Xp[group, item];
}
#endregion
#region Local Properties
[Category("Image")]
[Browsable(false)]
[DisplayName("DataSize")]
[RefreshProperties(RefreshProperties.All)]
[Description("DataSize")]
public int Image_DataSize // original size of image data, if it is compressed
{
get
{
string s = _Xp["Image", "DataSize"];
if (s == string.Empty) return 0;
int tst = 0;
try
{
tst = int.Parse(s);
}
catch (Exception ex)
{
return 0;
}
return int.Parse(s);
}
set
{
string s = _Xp["Image", "DataSize"];
if (value.ToString() == s) return;
_Xp["Image", "DataSize"] = value.ToString();
OnPropertyChanged("Image_DataSize");
}
}
[Category("Image")]
[Browsable(false)]
[DisplayName("Width")]
[RefreshProperties(RefreshProperties.All)]
[Description("Width")]
public int Image_Width // resized image's resized width
{
get
{
string s = _Xp["Image", "Width"];
if (s == string.Empty) return 0;
int tst = 0;
try
{
tst = int.Parse(s);
}
catch (Exception ex)
{
return 0;
}
return int.Parse(s);
}
set
{
string s = _Xp["Image", "Width"];
if (value.ToString() == s) return;
_Xp["Image", "Width"] = value.ToString();
OnPropertyChanged("Image_Width");
}
}
[Category("Image")]
[Browsable(false)]
[DisplayName("Height")]
[RefreshProperties(RefreshProperties.All)]
[Description("Height")]
public int Image_Height // resized image's resized height
{
get
{
string s = _Xp["Image", "Height"];
if (s == string.Empty) return 0;
int tst = 0;
try
{
tst = int.Parse(s);
}
catch (Exception ex)
{
return 0;
}
return int.Parse(s);
}
set
{
string s = _Xp["Image", "Height"];
if (value.ToString() == s) return;
_Xp["Image", "Height"] = value.ToString();
OnPropertyChanged("Image_Height");
}
}
#endregion
#region ToString
public override string ToString()
{
string s = _Xp.ToString();
if (s == "<Config/>" || s == "<Config></Config>") return string.Empty;
return s;
}
#endregion
}
}