2004-06-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
[mono.git] / mcs / class / System.Web / System.Web.UI.WebControls / TableCell.cs
index ae719d3ba860c9af3d1dd8e3f373ec85e9f452ba..53f840e34f82031da76b02b929e8c15ce60e9652 100644 (file)
@@ -1,21 +1,19 @@
-/**\r
- * Namespace: System.Web.UI.WebControls\r
- * Class:     TableCell\r
- *\r
- * Author:  Gaurav Vaish\r
- * Maintainer: gvaish@iitk.ac.in\r
- * Contact: <my_scripts2001@yahoo.com>, <gvaish@iitk.ac.in>\r
- * Implementation: yes\r
- * Status:  100%\r
- *\r
- * (C) Gaurav Vaish (2002)\r
- */\r
+//
+// System.Web.UI.WebControls.TableCell.cs
+//
+// Authors:
+//   Gaurav Vaish (gvaish@iitk.ac.in)
+//   Andreas Nahr (ClassDevelopment@A-SoftTech.com)
+//
+// (C) Gaurav Vaish (2002)
+// (C) 2003 Andreas Nahr
+//\r
 \r
 using System;\r
 using System.Globalization;\r
 using System.Web;\r
 using System.Web.UI;\r
-using Sytem.ComponentModel;\r
+using System.ComponentModel;\r
 \r
 namespace System.Web.UI.WebControls\r
 {\r
@@ -26,148 +24,146 @@ namespace System.Web.UI.WebControls
        [PersistChildren(true)]\r
        public class TableCell: WebControl\r
        {\r
-               [MonoTODO]\r
-               public TableCell(): base(HtmlTextWriterTag.Td)\r
+               public TableCell () : base (HtmlTextWriterTag.Td)\r
                {\r
-                       //TODO: What's the function to prevent Control to give _auto_generated_id\r
+                       PreventAutoID ();\r
                }\r
 \r
-               [MonoTODO]\r
-               internal TableCell(HtmlTextWriterTag tag): base(tag)\r
+               internal TableCell (HtmlTextWriterTag tag) : base (tag)\r
                {\r
-                       //TODO: What's the function to prevent Control to give _auto_generated_id\r
+                       PreventAutoID ();\r
                }\r
-\r
+
+               [DefaultValue (0), Bindable (true), WebCategory ("Appearance")]
+               [WebSysDescription ("The number of columns spanned by this cell.")]\r
                public virtual int ColumnSpan\r
                {\r
-                       get\r
-                       {\r
-                               object o = ViewState["ColumnSpan"];\r
-                               if(o != null)\r
-                                       return (int)o;\r
-                               return 0;\r
+                       get {\r
+                               object o = ViewState ["ColumnSpan"];\r
+                               return (o == null) ? 0 : (int) o;\r
                        }\r
-                       set\r
-                       {\r
-                               ViewState["ColumnSpan"] = value;\r
+\r
+                       set {
+                               if (value < 0)
+                                       throw new ArgumentOutOfRangeException ("value", "ColumnSpan value has to be >= 0.");
+                               ViewState ["ColumnSpan"] = value;
                        }\r
                }\r
-\r
+
+               [DefaultValue (0), Bindable (true), WebCategory ("Layout")]
+               [WebSysDescription ("The number of rows spanned by this cell.")]\r
                public virtual int RowSpan\r
                {\r
-                       get\r
-                       {\r
-                               object o = ViewState["RowSpan"];\r
-                               if(o != null)\r
-                                       return (int)o;\r
-                               return 0;\r
+                       get {\r
+                               object o = ViewState ["RowSpan"];\r
+                               return (o == null) ? 0 : (int) o;\r
                        }\r
-                       set\r
-                       {\r
-                               ViewState["RowSpan"] = value;\r
+\r
+                       set {
+                               if (value < 0)
+                                       throw new ArgumentOutOfRangeException ("value", "RowSpan value has to be >= 0.");
+                               ViewState ["RowSpan"] = value;
                        }\r
                }\r
-\r
+
+               [DefaultValue (""), Bindable (true), WebCategory ("Appearance")]
+               [WebSysDescription ("The text that is shown in this cell.")]\r
                public virtual string Text\r
                {\r
-                       get\r
-                       {\r
-                               object o = ViewState["Text"];\r
-                               if(o != null)\r
-                                       return (string)o;\r
-                               return String.Empty;\r
-                       }\r
-                       set\r
-                       {\r
-                               ViewState["Text"] = value;\r
+                       get {\r
+                               object o = ViewState ["Text"];\r
+                               return (o == null) ? String.Empty : (string) o;\r
                        }\r
-               }\r
 \r
+                       set {
+                               if (HasControls ())
+                                       Controls.Clear ();
+                               ViewState ["Text"] = value;
+                       }
+               }\r
+
+               [DefaultValue (typeof (HorizontalAlign), "NotSet"), Bindable (true), WebCategory ("Layout")]
+               [WebSysDescription ("The horizontal alignment for this cell.")]\r
                public virtual HorizontalAlign HorizontalAlign\r
                {\r
-                       get\r
-                       {\r
-                               if(ControlStyleCreated)\r
-                                       return ((TableItemStyle)ControlStyle).HorizontalAlign;\r
+                       get {\r
+                               if (ControlStyleCreated)\r
+                                       return ((TableItemStyle) ControlStyle).HorizontalAlign;\r
                                return HorizontalAlign.NotSet;\r
                        }\r
-                       set\r
-                       {\r
-                               ((TableItemStyle)ControlStyle).HorizontalAlign = value;\r
-                       }\r
+                       set { ((TableItemStyle) ControlStyle).HorizontalAlign = value; }\r
                }\r
-\r
+
+               [DefaultValue (typeof (VerticalAlign), "NotSet"), Bindable (true), WebCategory ("Layout")]
+               [WebSysDescription ("The horizontal alignment for this cell.")]\r
                public virtual VerticalAlign VerticalAlign\r
                {\r
-                       get\r
-                       {\r
-                               if(ControlStyleCreated)\r
-                                       return ((TableItemStyle)ControlStyle).VerticalAlign;\r
+                       get {\r
+                               if (ControlStyleCreated)\r
+                                       return ((TableItemStyle) ControlStyle).VerticalAlign;\r
                                return VerticalAlign.NotSet;\r
                        }\r
-                       set\r
-                       {\r
-                               ((TableItemStyle)ControlStyle).VerticalAlign = value;\r
-                       }\r
-               }\r
 \r
+                       set { ((TableItemStyle) ControlStyle).VerticalAlign = value; }\r
+               }\r
+
+               [DefaultValue (true), Bindable (true), WebCategory ("Layout")]
+               [WebSysDescription ("Determines if the text in the cell should be wraped at line-end.")]\r
                public virtual bool Wrap\r
                {\r
-                       get\r
-                       {\r
-                               if(ControlStyleCreated)\r
-                                       return ((TableItemStyle)ControlStyle).Wrap;\r
+                       get {\r
+                               if (ControlStyleCreated)\r
+                                       return ((TableItemStyle) ControlStyle).Wrap;\r
                                return true;\r
                        }\r
-                       set\r
-                       {\r
-                               ((TableItemStyle)ControlStyle).Wrap = value;\r
-                       }\r
+                       set { ((TableItemStyle) ControlStyle).Wrap = value; }\r
                }\r
 \r
-               protected override void AddAttributesToRender(HtmlTextWriter writer)\r
+               protected override void AddAttributesToRender (HtmlTextWriter writer)\r
                {\r
-                       AddAttributesToRender(writer);\r
-                       if(ColumnSpan > 0)\r
-                               writer.AddAttribute(HtmlTextWriterAttribute.Colspan, ColumnSpan.ToString(NumberFormatInfo.InvariantInfo));\r
-                       if(RowSpan > 0)\r
-                               writer.AddAttribute(HtmlTextWriterAttribute.Rowspan, RowSpan.ToString(NumberFormatInfo.InvariantInfo));\r
+                       base.AddAttributesToRender (writer);\r
+                       if (ColumnSpan > 0)\r
+                               writer.AddAttribute (HtmlTextWriterAttribute.Colspan,\r
+                                                    ColumnSpan.ToString (NumberFormatInfo.InvariantInfo));\r
+\r
+                       if (RowSpan > 0)\r
+                               writer.AddAttribute (HtmlTextWriterAttribute.Rowspan,\r
+                                                    RowSpan.ToString (NumberFormatInfo.InvariantInfo));\r
                }\r
 \r
-               protected override void AddParsedSubObject(object obj)\r
+               protected override void AddParsedSubObject (object obj)\r
                {\r
-                       if(HasControls())\r
-                       {\r
-                               AddParsedSubObject(obj);\r
+                       if (HasControls ()){\r
+                               base.AddParsedSubObject (obj);\r
                                return;\r
                        }\r
-                       if(obj is LiteralControl)\r
-                       {\r
-                               Text = ((LiteralControl)obj).Text;\r
+\r
+                       if (obj is LiteralControl){\r
+                               Text = ((LiteralControl) obj).Text;\r
                                return;\r
                        }\r
+\r
                        string text = Text;\r
-                       if(text.Length > 0)\r
-                       {\r
+                       if (text.Length > 0){\r
                                Text = String.Empty;\r
-                               AddParsedSubObject(new LiteralControl(text));\r
+                               base.AddParsedSubObject (new LiteralControl (text));\r
                        }\r
-                       AddParsedSubObject(obj);\r
+\r
+                       base.AddParsedSubObject (obj);\r
                }\r
 \r
-               protected override Style CreateControlStyle()\r
+               protected override Style CreateControlStyle ()\r
                {\r
-                       return new TableItemStyle(ViewState);\r
+                       return new TableItemStyle (ViewState);\r
                }\r
 \r
-               protected override void RenderContents(HtmlTextWriter writer)\r
+               protected override void RenderContents (HtmlTextWriter writer)\r
                {\r
-                       if(HasControls())\r
-                       {\r
-                               RenderContents(writer);\r
-                               return;\r
-                       }\r
-                       writer.Write(Text);\r
+                       if (HasControls ())\r
+                               base.RenderContents (writer);\r
+                       else\r
+                               writer.Write (Text);\r
                }\r
        }\r
 }\r
+\r