2003-07-30 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
[mono.git] / mcs / class / System.Web / System.Web.UI.WebControls / UnitConverter.cs
1 /**\r
2  * Namespace: System.Web.UI.WebControls\r
3  * Class:     UnitConverter\r
4  *\r
5  * Author:  Gaurav Vaish\r
6  * Maintainer: gvaish@iitk.ac.in\r
7  * Contact: <my_scripts2001@yahoo.com>, <gvaish@iitk.ac.in>\r
8  * Implementation: yes\r
9  * Status:  100%\r
10  *\r
11  * (C) Gaurav Vaish (2002)\r
12  */\r
13 \r
14 using System;\r
15 using System.Globalization;\r
16 using System.ComponentModel;\r
17 using System.Web;\r
18 using System.Web.UI;\r
19 \r
20 namespace System.Web.UI.WebControls\r
21 {\r
22         public class UnitConverter : TypeConverter\r
23         {\r
24                 public UnitConverter(): base()\r
25                 {\r
26                 }\r
27 \r
28                 public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType)\r
29                 {\r
30                         if(sourceType == typeof(string))\r
31                                 return true;\r
32                         return CanConvertFrom(context, sourceType);\r
33                 }\r
34 \r
35                 public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value)\r
36                 {\r
37                         if(value == null)\r
38                                 return null;\r
39                         if(value is string)\r
40                         {\r
41                                 string val = ((string)value).Trim();\r
42                                 if(val.Length == 0)\r
43                                 {\r
44                                         return Unit.Empty;\r
45                                 }\r
46                                 return (culture == null ? Unit.Parse(val) : Unit.Parse(val, culture));\r
47                         }\r
48                         return ConvertFrom(context, culture, value);\r
49                 }\r
50 \r
51                 public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType)\r
52                 {\r
53                         if(destinationType == typeof(string))\r
54                         {\r
55                                 Unit val = (Unit)value;\r
56                                 if(val == Unit.Empty)\r
57                                 {\r
58                                         return String.Empty;\r
59                                 }\r
60                                 return val.ToString(culture);\r
61                         }\r
62                         return ConvertTo(context, culture, value, destinationType);\r
63                 }\r
64         }\r
65 }\r