2001-12-02 Gaurav Vaish <gvaish@iitk.ac.in>
[mono.git] / mcs / class / System.Web / System.Web.UI.WebControls / BoundColumn.cs
1 /**\r
2  * Namespace: System.Web.UI.WebControls\r
3  * Class:     BoundColumn\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:  60%\r
10  * \r
11  * (C) Gaurav Vaish (2001)\r
12  */\r
13 \r
14 using System;\r
15 using System.ComponentModel;\r
16 using System.Web;\r
17 using System.Web.UI;\r
18 \r
19 namespace System.Web.UI.WebControls\r
20 {\r
21         public class BoundColumn : DataGridColumn\r
22         {\r
23                 public static readonly string thisExpr = "!";\r
24                 \r
25                 private string dataField;\r
26                 private string dataFormatString;\r
27                 private bool readOnly;\r
28                 \r
29                 private PropertyDescriptor desc;\r
30 \r
31                 public BoundColumn(): base()\r
32                 {\r
33                         //TODO: The start work\r
34                         Initialize();\r
35                 }\r
36                 \r
37                 public override void Initialize()\r
38                 {\r
39                         base.Initialize();\r
40                         dataField        = String.Empty;\r
41                         dataFormatString = String.Empty;\r
42                         readOnly         = false;\r
43                         desc             = null;\r
44                 }\r
45 \r
46                 public override void InitializeCell(TableCell cell, int columnIndex, ListItemType itemType)\r
47                 {\r
48                         //TODO: What to do?\r
49                         base.InitializeCell(cell, columnIndex, itemType);\r
50                         switch(itemType)\r
51                         {\r
52                                 case \r
53                         }\r
54                         throw new NotImplementedException();\r
55                 }\r
56                 \r
57                 public virtual string DataField\r
58                 {\r
59                         get\r
60                         {\r
61                                 return dataField;\r
62                         }\r
63                         set\r
64                         {\r
65                                 dataField = value;\r
66                         }\r
67                 }\r
68                 \r
69                 public virtual string DataFormatString\r
70                 {\r
71                         get\r
72                         {\r
73                                 return dataFormatString;\r
74                         }\r
75                         set\r
76                         {\r
77                                 dataFormatString = value;\r
78                         }\r
79                 }\r
80                 \r
81                 public virtual bool ReadOnly\r
82                 {\r
83                         get\r
84                         {\r
85                                 return readOnly;\r
86                         }\r
87                         set\r
88                         {\r
89                                 readOnly = value;\r
90                         }\r
91                 }\r
92                 \r
93                 protected virtual string FormatDataValue(Object dataValue)\r
94                 {\r
95                         // TODO: How to extract the value from the object?\r
96                         // TODO: Then format the value. Here's a possible solution\r
97                         if(dataFormatString == null || dataFormatString.equals(String.Empty))\r
98                                 return dataValue.toString();\r
99                         if(dataValue is DateTime)\r
100                                 return ((DateTime)dataValue).toString(dataFormatString);\r
101                         throw new NotImplementedException();\r
102                         // and so on for int, String, double..\r
103                         // something's wrong here. there must be some shorter method!\r
104                         //string val = dataValue.toString(dataFormatString);\r
105                 }\r
106         }\r
107 }\r