118 lines
2.8 KiB
C#
118 lines
2.8 KiB
C#
using System;
|
|
using System.ComponentModel;
|
|
using System.Globalization;
|
|
|
|
namespace DevComponents.Charts.Design
|
|
{
|
|
/// <summary>
|
|
/// Represents PointValueConverter converter.
|
|
/// </summary>
|
|
public class PointValueConverter : TypeConverter
|
|
{
|
|
public PointValueConverter()
|
|
{
|
|
}
|
|
|
|
#region CanConvertTo
|
|
|
|
public override bool CanConvertFrom(
|
|
ITypeDescriptorContext context, Type sourceType)
|
|
{
|
|
if (sourceType == typeof(string))
|
|
return true;
|
|
|
|
return base.CanConvertFrom(context, sourceType);
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region CanConvertTo
|
|
|
|
public override bool CanConvertTo(
|
|
ITypeDescriptorContext context, Type destinationType)
|
|
{
|
|
if (destinationType == typeof(string))
|
|
return true;
|
|
|
|
return base.CanConvertTo(context, destinationType);
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region ConvertFrom
|
|
|
|
public override object ConvertFrom(
|
|
ITypeDescriptorContext context, CultureInfo culture, object value)
|
|
{
|
|
if (value is string)
|
|
return (GetConvertedValue((string)value));
|
|
|
|
return base.ConvertFrom(context, culture, value);
|
|
}
|
|
|
|
#region GetConvertedValue
|
|
|
|
private object GetConvertedValue(string text)
|
|
{
|
|
string s = text.Trim();
|
|
|
|
if (text.Length == 0)
|
|
return (null);
|
|
|
|
if (s.StartsWith("\"") && s.EndsWith("\""))
|
|
return (s.Substring(1, s.Length - 2));
|
|
|
|
int intResult;
|
|
|
|
if (int.TryParse(text, out intResult) == true)
|
|
return (intResult);
|
|
|
|
double dblResult;
|
|
|
|
if (double.TryParse(text, out dblResult) == true)
|
|
return (dblResult);
|
|
|
|
DateTime dtResult;
|
|
|
|
if (DateTime.TryParse(text, out dtResult) == true)
|
|
return (dtResult);
|
|
|
|
return (text);
|
|
}
|
|
|
|
#endregion
|
|
|
|
#endregion
|
|
|
|
#region ConvertTo
|
|
|
|
public override object ConvertTo(
|
|
ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType)
|
|
{
|
|
if (value != null)
|
|
{
|
|
if (destinationType == typeof(string))
|
|
{
|
|
if (value == null)
|
|
return ("<null>");
|
|
|
|
if (value is string)
|
|
return ("\"" + value + "\"");
|
|
|
|
if (value is int)
|
|
return (value.ToString());
|
|
|
|
if (value is DateTime)
|
|
return (value.ToString());
|
|
|
|
return (String.Format("{0:0.0###############}", value));
|
|
}
|
|
}
|
|
|
|
return (string.Empty);
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
}
|