2003-01-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
[mono.git] / mcs / class / System.Web / System.Web.UI.WebControls / HyperLinkColumn.cs
index 9591388a2e7201396246eb75f0e53934be2a7467..9f636c97c58e5db09418300fcd8cbe69a0200863 100644 (file)
@@ -6,7 +6,7 @@
  * Maintainer: gvaish@iitk.ac.in\r
  * Contact: <my_scripts2001@yahoo.com>, <gvaish@iitk.ac.in>\r
  * Implementation: yes\r
- * Status:  5%\r
+ * Status:  100%\r
  *\r
  * (C) Gaurav Vaish (2002)\r
  */\r
@@ -23,199 +23,191 @@ namespace System.Web.UI.WebControls
                PropertyDescriptor textFieldDescriptor;\r
                PropertyDescriptor urlFieldDescriptor;\r
 \r
-               public HyperLinkColumn(): base()\r
+               public HyperLinkColumn ()\r
                {\r
                }\r
 \r
-               public virtual string DataNavigateUrlField\r
-               {\r
-                       get\r
-                       {\r
-                               object o = ViewState["DataNavigateUrlField"];\r
-                               if(o != null)\r
-                                       return (string)o;\r
+               public virtual string DataNavigateUrlField {\r
+                       get {\r
+                               object o = ViewState ["DataNavigateUrlField"];\r
+                               if (o != null)\r
+                                       return (string) o;\r
                                return String.Empty;\r
                        }\r
-                       set\r
-                       {\r
-                               ViewState["DataNavigateUrlField"] = value;\r
+\r
+                       set {\r
+                               ViewState ["DataNavigateUrlField"] = value;\r
+                               OnColumnChanged ();\r
                        }\r
                }\r
 \r
-               public virtual string DataNavigateUrlFormatString\r
-               {\r
-                       get\r
-                       {\r
-                               object o = ViewState["DataNavigateUrlFormatString"];\r
-                               if(o != null)\r
-                                       return (string)o;\r
+               public virtual string DataNavigateUrlFormatString {\r
+                       get {\r
+                               object o = ViewState ["DataNavigateUrlFormatString"];\r
+                               if (o != null)\r
+                                       return (string) o;\r
                                return String.Empty;\r
                        }\r
-                       set\r
-                       {\r
-                               ViewState["DataNavigateUrlFormatString"] = value;\r
+\r
+                       set {\r
+                               ViewState ["DataNavigateUrlFormatString"] = value;\r
+                               OnColumnChanged ();\r
                        }\r
                }\r
 \r
-               public virtual string DataTextField\r
-               {\r
-                       get\r
-                       {\r
-                               object o = ViewState["DataTextField"];\r
-                               if(o != null)\r
-                                       return (string)o;\r
+               public virtual string DataTextField {\r
+                       get {\r
+                               object o = ViewState ["DataTextField"];\r
+                               if (o != null)\r
+                                       return (string) o;\r
                                return String.Empty;\r
                        }\r
-                       set\r
-                       {\r
-                               ViewState["DataTextField"] = value;\r
+                       set {\r
+                               ViewState ["DataTextField"] = value;\r
+                               OnColumnChanged ();\r
                        }\r
                }\r
 \r
-               public virtual string DataTextFormatString\r
-               {\r
-                       get\r
-                       {\r
-                               object o = ViewState["DataTextFormatString"];\r
-                               if(o != null)\r
-                                       return (string)o;\r
+               public virtual string DataTextFormatString {\r
+                       get {\r
+                               object o = ViewState ["DataTextFormatString"];\r
+                               if (o != null)\r
+                                       return (string) o;\r
                                return String.Empty;\r
                        }\r
-                       set\r
-                       {\r
-                               ViewState["DataTextFormatString"] = value;\r
+\r
+                       set {\r
+                               ViewState ["DataTextFormatString"] = value;\r
+                               OnColumnChanged ();\r
                        }\r
                }\r
 \r
-               public virtual string NavigateUrl\r
-               {\r
-                       get\r
-                       {\r
-                               object o = ViewState["NavigateUrl"];\r
-                               if(o != null)\r
-                                       return (string)o;\r
+               public virtual string NavigateUrl {\r
+                       get {\r
+                               object o = ViewState ["NavigateUrl"];\r
+                               if (o != null)\r
+                                       return (string) o;\r
                                return String.Empty;\r
                        }\r
-                       set\r
-                       {\r
-                               ViewState["NavigateUrl"] = value;\r
+\r
+                       set {\r
+                               ViewState ["NavigateUrl"] = value;\r
+                               OnColumnChanged ();\r
                        }\r
                }\r
 \r
-               public virtual string Target\r
-               {\r
-                       get\r
-                       {\r
-                               object o = ViewState["Target"];\r
-                               if(o != null)\r
-                                       return (string)o;\r
+               public virtual string Target {\r
+                       get {\r
+                               object o = ViewState ["Target"];\r
+                               if (o != null)\r
+                                       return (string) o;\r
                                return String.Empty;\r
                        }\r
-                       set\r
-                       {\r
-                               ViewState["Target"] = value;\r
+\r
+                       set {\r
+                               ViewState ["Target"] = value;\r
+                               OnColumnChanged ();\r
                        }\r
                }\r
 \r
-               public virtual string Text\r
-               {\r
-                       get\r
-                       {\r
-                               object o = ViewState["Text"];\r
-                               if(o != null)\r
-                                       return (string)o;\r
+               public virtual string Text {\r
+                       get {\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
+\r
+                       set {\r
+                               ViewState ["Text"] = value;\r
+                               OnColumnChanged ();\r
                        }\r
                }\r
 \r
-               public override void Initialize()\r
+               public override void Initialize ()\r
                {\r
                        textFieldDescriptor = null;\r
                        urlFieldDescriptor  = null;\r
+                       base.Initialize ();\r
                }\r
 \r
-               public override void InitializeCell(TableCell cell, int columnIndex, ListItemType itemType)\r
+               public override void InitializeCell (TableCell cell, int columnIndex, ListItemType itemType)\r
                {\r
-                       base.InitializeCell(cell, columnIndex, itemType);\r
-                       if(Enum.IsDefined(typeof(ListItemType), itemType) && itemType != ListItemType.Footer)\r
-                       {\r
-                               HyperLink toDisplay = new HyperLink();\r
-                               toDisplay.Text                 = Text;\r
-                               toDisplay.NavigateUrl          = NavigateUrl;\r
-                               toDisplay.Target               = Target;\r
-                               if(DataTextField.Length > 0 || DataNavigateUrlField.Length>0)\r
-                               {\r
-                                       toDisplay.DataBinding += new EventHandler(OnDataBindHyperLinkColumn);\r
-                               }\r
-                               cell.Controls.Add(toDisplay);\r
+                       base.InitializeCell (cell, columnIndex, itemType);\r
+\r
+                       if (itemType != ListItemType.Header && itemType != ListItemType.Footer) {\r
+                               HyperLink toDisplay = new HyperLink ();\r
+                               toDisplay.Text = Text;\r
+                               toDisplay.NavigateUrl = NavigateUrl;\r
+                               toDisplay.Target = Target;\r
+\r
+                               if (DataTextField.Length > 0 || DataNavigateUrlField.Length > 0)\r
+                                       toDisplay.DataBinding += new EventHandler (OnDataBindHyperLinkColumn);\r
+\r
+                               cell.Controls.Add (toDisplay);\r
                        }\r
                }\r
 \r
-               private void OnDataBindHyperLinkColumn(object sender, EventArgs e)\r
+               private void OnDataBindHyperLinkColumn (object sender, EventArgs e)\r
                {\r
-                       HyperLink link = (HyperLink)sender;\r
-                       object item    = ((DataGridItem)link.NamingContainer).DataItem;\r
-                       if(textFieldDescriptor == null && urlFieldDescriptor == null)\r
-                       {\r
-                               textFieldDescriptor = TypeDescriptor.GetProperties(item).Find(DataTextField, true);\r
-                               if(textFieldDescriptor == null && !DesignMode)\r
-                                       throw new HttpException(HttpRuntime.FormatResourceString("Field_Not_Found", DataTextField));\r
-                               urlFieldDescriptor = TypeDescriptor.GetProperties(item).Find(DataNavigateUrlField, true);\r
-                               if(urlFieldDescriptor == null && !DesignMode)\r
-                                       throw new HttpException(HttpRuntime.FormatResourceString("Field_Not_Found", DataNavigateUrlField));\r
-                       }\r
-\r
-                       if(textFieldDescriptor != null)\r
-                       {\r
-                               link.Text = FormatDataTextValue(textFieldDescriptor.GetValue(item));\r
-                       } else\r
-                       {\r
+                       HyperLink link = (HyperLink) sender;\r
+                       object item    = ((DataGridItem) link.NamingContainer).DataItem;\r
+\r
+                       if (textFieldDescriptor == null && urlFieldDescriptor == null) {\r
+                               PropertyDescriptorCollection properties = TypeDescriptor.GetProperties (item);\r
+                               textFieldDescriptor = properties.Find (DataTextField, true);\r
+                               if (textFieldDescriptor == null && !DesignMode)\r
+                                       throw new HttpException (HttpRuntime.FormatResourceString (\r
+                                                                       "Field_Not_Found", DataTextField));\r
+\r
+                               urlFieldDescriptor = properties.Find (DataNavigateUrlField, true);\r
+                               if (urlFieldDescriptor == null && !DesignMode)\r
+                                       throw new HttpException (HttpRuntime.FormatResourceString (\r
+                                                                       "Field_Not_Found", DataNavigateUrlField));\r
+                       }\r
+\r
+                       if (textFieldDescriptor != null) {\r
+                               link.Text = FormatDataTextValue (textFieldDescriptor.GetValue (item));\r
+                       } else {\r
                                link.Text = "Sample_DataBound_Text";\r
                        }\r
 \r
-                       if(urlFieldDescriptor != null)\r
-                       {\r
-                               link.NavigateUrl = FormatDataNavigateUrlValue(urlFieldDescriptor.GetValue(item));\r
-                       } else\r
-                       {\r
+                       if (urlFieldDescriptor != null) {\r
+                               link.NavigateUrl = FormatDataNavigateUrlValue (urlFieldDescriptor.GetValue (item));\r
+                       } else {\r
                                link.NavigateUrl = "url";\r
                        }\r
                }\r
 \r
-               protected virtual string FormatDataNavigateUrlValue(object dataUrlValue)\r
+               protected virtual string FormatDataNavigateUrlValue (object dataUrlValue)\r
                {\r
-                       string retVal = String.Empty;\r
-                       if(dataUrlValue != null)\r
-                       {\r
-                               if(DataNavigateUrlFormatString.Length > 0)\r
-                               {\r
-                                       retVal = String.Format(DataNavigateUrlFormatString, dataUrlValue);\r
-                               } else\r
-                               {\r
-                                       retVal = dataUrlValue.ToString();\r
-                               }\r
+                       if (dataUrlValue == null)\r
+                               return String.Empty;\r
+\r
+                       string retVal;\r
+                       if (DataNavigateUrlFormatString.Length > 0) {\r
+                               retVal = String.Format (DataNavigateUrlFormatString, dataUrlValue);\r
+                       } else {\r
+                               retVal = dataUrlValue.ToString ();\r
                        }\r
+\r
                        return retVal;\r
                }\r
 \r
-               protected virtual string FormatDataTextValue(object dataTextValue)\r
+               protected virtual string FormatDataTextValue (object dataTextValue)\r
                {\r
-                       string retVal = String.Empty;\r
-                       if(dataTextValue != null)\r
-                       {\r
-                               if(DataTextFormatString.Length > 0)\r
-                               {\r
-                                       retVal = String.Format(DataTextFormatString, dataTextValue);\r
-                               } else\r
-                               {\r
-                                       retVal = dataTextValue.ToString();\r
-                               }\r
+                       if (dataTextValue == null)\r
+                               return String.Empty;\r
+\r
+                       string retVal;\r
+                       if (DataTextFormatString.Length > 0) {\r
+                               retVal = String.Format (DataTextFormatString, dataTextValue);\r
+                       } else {\r
+                               retVal = dataTextValue.ToString ();\r
                        }\r
+\r
                        return retVal;\r
                }\r
        }\r
 }\r
+\r