Merge pull request #2781 from alexanderkyte/inflated_method_header_leak
[mono.git] / mcs / class / System.Web / System.Web.UI.WebControls / ListBox.cs
index d8ef435967701d4ac8bbd1de7e0ddf8d3c82fd30..5018cadc97f775d907c05ab380748bff88269828 100644 (file)
@@ -32,6 +32,7 @@ using System.Drawing;
 using System.Globalization;
 using System.Collections.Specialized;
 using System.Security.Permissions;
+using System.Web.Util;
 
 namespace System.Web.UI.WebControls {
 
@@ -40,9 +41,7 @@ namespace System.Web.UI.WebControls {
        [AspNetHostingPermissionAttribute (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
        // attributes
        [ValidationProperty("SelectedItem")]
-#if NET_2_0
        [SupportsEventValidation]
-#endif
        public class ListBox : ListControl, IPostBackDataHandler {
 
                public ListBox ()
@@ -50,7 +49,7 @@ namespace System.Web.UI.WebControls {
                }
 
                [Browsable(false)]
-#if NET_2_0 && HAVE_CONTROL_ADAPTERS
+#if HAVE_CONTROL_ADAPTERS
                public virtual new
 #else          
                public override
@@ -61,7 +60,7 @@ namespace System.Web.UI.WebControls {
                }
 
                [Browsable(false)]
-#if NET_2_0 && HAVE_CONTROL_ADAPTERS
+#if HAVE_CONTROL_ADAPTERS
                public virtual new
 #else          
                public override
@@ -72,7 +71,7 @@ namespace System.Web.UI.WebControls {
                }
 
                [Browsable(false)]
-#if NET_2_0 && HAVE_CONTROL_ADAPTERS
+#if HAVE_CONTROL_ADAPTERS
                public virtual new
 #else          
                public override
@@ -82,9 +81,6 @@ namespace System.Web.UI.WebControls {
                        set { base.BorderWidth = value; }
                }
 
-#if ONLY_1_1
-               [Bindable(true)]
-#endif         
                [DefaultValue(4)]
                [WebSysDescription ("")]
                [WebCategory ("Appearance")]
@@ -114,58 +110,35 @@ namespace System.Web.UI.WebControls {
                        }
                }
 
-#if ONLY_1_1
-               [Bindable(false)]
-               [Browsable(false)]
-               [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
-               [EditorBrowsable(EditorBrowsableState.Never)]
-               public override string ToolTip {
-                       get { return String.Empty; }
-                       set { /* Tooltip is always String.Empty */ }
-               }
-#endif         
 
-#if NET_2_0
                public virtual int[] GetSelectedIndices ()
                {
                        return (int []) GetSelectedIndicesInternal ().ToArray (typeof (int));
                }
-#endif         
                
                protected override void AddAttributesToRender (HtmlTextWriter writer)
                {
                        if (Page != null)
                                Page.VerifyRenderingInServerForm (this);
 
-#if NET_2_0
                        if (ID != null)
                                writer.AddAttribute (HtmlTextWriterAttribute.Name, UniqueID);
-#else
-                       writer.AddAttribute (HtmlTextWriterAttribute.Name, UniqueID);
-#endif
 
                        if (AutoPostBack) {
-#if NET_2_0
                                string onchange = Page.ClientScript.GetPostBackEventReference (GetPostBackOptions (), true);
                                onchange = String.Concat ("setTimeout('", onchange.Replace ("\\", "\\\\").Replace ("'", "\\'"), "', 0)");
                                writer.AddAttribute (HtmlTextWriterAttribute.Onchange, BuildScriptAttribute ("onchange", onchange));
-#else
-                               writer.AddAttribute (HtmlTextWriterAttribute.Onchange,
-                                                    BuildScriptAttribute ("onchange",
-                                                                          Page.ClientScript.GetPostBackClientHyperlink (this, "")));
-#endif
                        }
                        
                        if (SelectionMode == ListSelectionMode.Multiple)
                                writer.AddAttribute (HtmlTextWriterAttribute.Multiple,
                                                "multiple", false);
                        writer.AddAttribute (HtmlTextWriterAttribute.Size,
-                                        Rows.ToString (CultureInfo.InvariantCulture));
+                                        Rows.ToString (Helpers.InvariantCulture));
                        
                        base.AddAttributesToRender (writer);
                }
 
-#if NET_2_0
                PostBackOptions GetPostBackOptions () {
                        PostBackOptions options = new PostBackOptions (this);
                        options.ActionUrl = null;
@@ -179,55 +152,28 @@ namespace System.Web.UI.WebControls {
 
                        return options;
                }
-#endif         
 
-#if ONLY_1_1
-               protected override void RenderContents (HtmlTextWriter writer)
-               {
-                       foreach (ListItem item in Items) {
-                               if (item.Selected) {
-                                       writer.AddAttribute (HtmlTextWriterAttribute.Selected, "selected", false);
-                               }
-                               writer.AddAttribute (HtmlTextWriterAttribute.Value, item.Value, true);
-                               writer.RenderBeginTag (HtmlTextWriterTag.Option);
-                               
-                               string encoded = HttpUtility.HtmlEncode (item.Text);
-                               writer.Write (encoded);
-                               writer.RenderEndTag ();
-                               writer.WriteLine ();
-                       }
-               }
-#endif
 
-#if NET_2_0
                protected internal
-#else          
-               protected
-#endif         
                override void OnPreRender (EventArgs e)
                {
                        base.OnPreRender (e);
-                       if (Page != null && Enabled)
-                               Page.RegisterRequiresPostBack (this);
+                       Page page = Page;
+                       if (page != null && IsEnabled)
+                               page.RegisterRequiresPostBack (this);
                }
 
-#if NET_2_0
                protected virtual
-#endif
                bool LoadPostData (string postDataKey, NameValueCollection postCollection)
                {
-#if NET_2_0
                        EnsureDataBound ();
-#endif
                        string [] values = postCollection.GetValues (postDataKey);
                        if (values == null || values.Length == 0) {
                                int prev_index = SelectedIndex;
                                SelectedIndex = -1;
                                return (prev_index != -1);
                        }
-#if NET_2_0
                        ValidateEvent (UniqueID, values [0]);
-#endif
 
                        if (SelectionMode == ListSelectionMode.Single)
                                return SelectSingle (values);
@@ -270,15 +216,11 @@ namespace System.Web.UI.WebControls {
                        return false;
                }
 
-#if NET_2_0
                protected virtual
-#endif
                void RaisePostDataChangedEvent ()
                {
-#if NET_2_0
                        if (CausesValidation)
                                Page.Validate (ValidationGroup);
-#endif
                        OnSelectedIndexChanged (EventArgs.Empty);
                }
                        
@@ -292,16 +234,10 @@ namespace System.Web.UI.WebControls {
                {
                        RaisePostDataChangedEvent ();
                }
-#if NET_2_0
-        protected internal override void VerifyMultiSelect()
-        {
-            //by default the ListControl will throw an exception in this method,
-            //therefor we should override the method if the class is supporting
-            //MultiSelect option.
-            if (this.SelectionMode != ListSelectionMode.Multiple)
-                throw new HttpException("Multiple select option is not supported");
-        }
-#endif
+               internal override bool MultiSelectOk ()
+               {
+                       return this.SelectionMode == ListSelectionMode.Multiple;
+               }
        }
 }