use ResolveClientUrl instead of ResolveUrl to be complient with MS.NET
[mono.git] / mcs / class / System.Web / System.Web.UI.WebControls / TemplateColumn.cs
index 58a94a05a398e4a49d883b0f82e2cb2022e28de6..0c042564d5c09a2d2b142a69acb1b44693145a9b 100644 (file)
@@ -1,14 +1,10 @@
 //
-// System.Web.UI.WebControls.TemplateColumn.cs
+// System.Web.UI.WebControls.TemplateColumn
 //
 // Authors:
-//   Gaurav Vaish (gvaish@iitk.ac.in)
-//   Andreas Nahr (ClassDevelopment@A-SoftTech.com)
+//     Ben Maurer (bmaurer@novell.com)
 //
-// (C) Gaurav Vaish (2002)
-// (C) 2003 Andreas Nahr
-//\r
-
+// (C) 2005 Novell, Inc (http://www.novell.com)
 //
 // Permission is hereby granted, free of charge, to any person obtaining
 // a copy of this software and associated documentation files (the
 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
-\r
-\r
-using System;
-using System.ComponentModel;\r
-using System.Web;\r
-using System.Web.UI;\r
-\r
-namespace System.Web.UI.WebControls\r
-{\r
-       public class TemplateColumn : DataGridColumn\r
-       {\r
-               private ITemplate editItemTemplate;\r
-               private ITemplate footerTemplate;\r
-               private ITemplate headerTemplate;\r
-               private ITemplate itemTemplate;\r
-\r
-               public TemplateColumn(): base()\r
-               {\r
-               }\r
-
-               [DefaultValue (null), Browsable (false)]
-               [PersistenceMode (PersistenceMode.InnerProperty), TemplateContainer (typeof (DataGridItem))]
-               [WebSysDescription ("The template that is used to build that are being edited rows for this column.")]\r
-               public virtual ITemplate EditItemTemplate\r
-               {\r
-                       get\r
-                       {\r
-                               return editItemTemplate;\r
-                       }\r
-                       set\r
-                       {\r
-                               editItemTemplate = value;\r
-                               OnColumnChanged();\r
-                       }\r
-               }\r
 
-               [DefaultValue (null), Browsable (false)]
-               [PersistenceMode (PersistenceMode.InnerProperty), TemplateContainer (typeof (DataGridItem))]
-               [WebSysDescription ("The template that is used to build the footer for this column.")]\r
-               public virtual ITemplate FooterTemplate\r
-               {\r
-                       get\r
-                       {\r
-                               return footerTemplate;\r
-                       }\r
-                       set\r
-                       {\r
-                               footerTemplate = value;\r
-                               OnColumnChanged();\r
-                       }\r
-               }\r
+using System.ComponentModel;
+using System.Web.UI;
 
-               [DefaultValue (null), Browsable (false)]
-               [PersistenceMode (PersistenceMode.InnerProperty), TemplateContainer (typeof (DataGridItem))]
-               [WebSysDescription ("The template that is used to build the header for this column.")]\r
-               public virtual ITemplate HeaderTemplate\r
-               {\r
-                       get\r
-                       {\r
-                               return headerTemplate;\r
-                       }\r
-                       set\r
-                       {\r
-                               headerTemplate = value;\r
-                               OnColumnChanged();\r
-                       }\r
-               }\r
+namespace System.Web.UI.WebControls {
+       public class TemplateColumn : DataGridColumn {
+               public override void InitializeCell (TableCell cell, int columnIndex, ListItemType itemType)
+               {
+                       base.InitializeCell (cell, columnIndex, itemType);
+                       ITemplate t = null;
+                       switch (itemType) {
+                       case ListItemType.Header:
+                               t = HeaderTemplate;
+                               break;
+                       case ListItemType.Footer:
+                               t = FooterTemplate;
+                               break;
+                       case ListItemType.Item:
+                       case ListItemType.AlternatingItem:
+                       case ListItemType.SelectedItem:
+                               t = ItemTemplate;
+                               break;
+                       case ListItemType.EditItem:
+                               t = EditItemTemplate;
+                               if (t == null)
+                                       t = ItemTemplate;
+                               break;
+                       }
+                       
+                       if (t != null)
+                               t.InstantiateIn (cell);
+               }
 
-               [DefaultValue (null), Browsable (false)]
-               [PersistenceMode (PersistenceMode.InnerProperty), TemplateContainer (typeof (DataGridItem))]
-               [WebSysDescription ("The template that is used to build rows for this column.")]\r
-               public virtual ITemplate ItemTemplate\r
-               {\r
-                       get\r
-                       {\r
-                               return itemTemplate;\r
-                       }\r
-                       set\r
-                       {\r
-                               itemTemplate = value;\r
-                               OnColumnChanged();\r
-                       }\r
-               }\r
-\r
-               public override void InitializeCell(TableCell cell, int columnIndex, ListItemType itemType)\r
-               {\r
-                       base.InitializeCell(cell, columnIndex, itemType);\r
-                       ITemplate toRender = null;\r
-                       switch(itemType)\r
-                       {\r
-                               case ListItemType.Header: toRender = headerTemplate;\r
-                                                         break;\r
-                               case ListItemType.Footer: toRender = footerTemplate;\r
-                                                         break;\r
-                               case ListItemType.SelectedItem:
-                               case ListItemType.AlternatingItem:
-                               case ListItemType.Item:   toRender = itemTemplate;\r
-                                                         break;
-                               case ListItemType.EditItem:
-                                       toRender = (editItemTemplate != null ? editItemTemplate : itemTemplate);\r
-                                                         break;\r
-                       }\r
-                       if(toRender != null)\r
-                       {\r
-                               cell.Text = String.Empty;\r
-                               toRender.InstantiateIn(cell);\r
-                       }\r
-               }\r
-       }\r
-}\r
+               ITemplate editItemTemplate, footerTemplate, headerTemplate, itemTemplate;
+               
+               [Browsable(false)]
+               [DefaultValue (null)]
+               [PersistenceMode(PersistenceMode.InnerProperty)]
+               [TemplateContainer (typeof(DataGridItem))]
+               [WebSysDescription ("")]
+               public virtual ITemplate EditItemTemplate {
+                       get { return editItemTemplate; }
+                       set { editItemTemplate = value; }
+               }
+               
+               [Browsable(false)]
+               [DefaultValue (null)]
+               [PersistenceMode(PersistenceMode.InnerProperty)]
+               [TemplateContainer (typeof(DataGridItem))]
+               [WebSysDescription ("")]
+               public virtual ITemplate FooterTemplate {
+                       get { return footerTemplate; }
+                       set { footerTemplate = value; } 
+               }
+               
+               [Browsable(false)]
+               [DefaultValue (null)]
+               [PersistenceMode(PersistenceMode.InnerProperty)]
+               [TemplateContainer (typeof(DataGridItem))]
+               [WebSysDescription ("")]
+               public virtual ITemplate HeaderTemplate {
+                       get { return headerTemplate; }
+                       set { headerTemplate = value; }
+               }
+               
+               [Browsable(false)]
+               [DefaultValue (null)]
+               [PersistenceMode(PersistenceMode.InnerProperty)]
+               [TemplateContainer (typeof(DataGridItem))]
+               [WebSysDescription ("")]
+               public virtual ITemplate ItemTemplate {
+                       get { return itemTemplate; }
+                       set { itemTemplate = value; }
+               }
+       }
+}