refactoring
[mono.git] / mcs / class / System.Web / System.Web.UI.WebControls / BulletedList.cs
index 00ef9c97a6be3f00b3b81e9b0f77ab0d63f7aba5..0dc44985cc7d6be0528514313c7fc8f5afbe94fa 100644 (file)
@@ -35,12 +35,18 @@ using System.Text;
 using System.Drawing;
 using System.ComponentModel;
 using System.ComponentModel.Design;
+using System.Security.Permissions;
 
 namespace System.Web.UI.WebControls {
 
+       // CAS
+       [AspNetHostingPermissionAttribute (SecurityAction.LinkDemand, Level = AspNetHostingPermissionLevel.Minimal)]
+       [AspNetHostingPermissionAttribute (SecurityAction.InheritanceDemand, Level = AspNetHostingPermissionLevel.Minimal)]
+       // attributes
        [DesignerAttribute ("System.Web.UI.Design.WebControls.BulletedListDesigner, " + Consts.AssemblySystem_Design, "System.ComponentModel.Design.IDesigner")]
        [DefaultEventAttribute ("Click")]
        [DefaultPropertyAttribute ("BulletStyle")]
+       [SupportsEventValidation]
        public class BulletedList : ListControl, IPostBackEventHandler {
                
                [MonoTODO ("we are missing a new style enum, we should be using it")]
@@ -76,7 +82,7 @@ namespace System.Web.UI.WebControls {
                                        break;
                                
                                case BulletStyle.UpperRoman:
-                                       writer.AddStyleAttribute (ListStyleType, "lower-roman");
+                                       writer.AddStyleAttribute (ListStyleType, "upper-roman");
                                        isNumeric = true;
                                        break;
 
@@ -102,30 +108,31 @@ namespace System.Web.UI.WebControls {
                        
                        base.AddAttributesToRender (writer);
                }
-               
-               bool cacheIsEnabled;
-               [MonoTODO ("new bool prop on ListItem: Enabled")]
+
                protected virtual void RenderBulletText (ListItem item, int index, HtmlTextWriter writer)
                {
                        switch (DisplayMode) {
                                case BulletedListDisplayMode.Text:
-                                       //if (!item.Enabled) {
-                                       //      writer.AddAttribute (HtmlTextWriterAttribute.Disabled, "disabled");
-                                       //      writer.RenderBeginTag (HtmlTextWriterTag.Span);
-                                       //}
+                                       if (!item.Enabled) {
+                                               writer.AddAttribute (HtmlTextWriterAttribute.Disabled, "disabled");
+                                               writer.RenderBeginTag (HtmlTextWriterTag.Span);
+                                       }
+                                       
                                        writer.Write (item.Text);
-                                       //if (!item.Enabled)
-                                       //      writer.RenderEndTag ();
+                                       
+                                       if (!item.Enabled)
+                                               writer.RenderEndTag ();
+                                       
                                        break;
 
                                case BulletedListDisplayMode.HyperLink:
-                                       //if (cacheIsEnabled && item.Enabled) {
-                                       //      writer.AddAttribute (HtmlTextWriterAttribute.Href, item.Value);
-                                       //      if (Target != "")
-                                       //              writer.AddAttribute(HtmlTextWriterAttribute.Target, this.Target);
-                                       //      
-                                       //}
-                                       //else
+                                       if (Enabled && item.Enabled) {
+                                               writer.AddAttribute (HtmlTextWriterAttribute.Href, item.Value);
+                                               if (Target != "")
+                                                       writer.AddAttribute(HtmlTextWriterAttribute.Target, this.Target);
+                                               
+                                       }
+                                       else
                                                writer.AddAttribute (HtmlTextWriterAttribute.Disabled, "disabled");
                                        
                                        writer.RenderBeginTag (HtmlTextWriterTag.A);
@@ -134,10 +141,10 @@ namespace System.Web.UI.WebControls {
                                        break;
 
                                case BulletedListDisplayMode.LinkButton:
-                                       //if (cacheIsEnabled && item.Enabled)
+                                       if (Enabled && item.Enabled)
                                                writer.AddAttribute (HtmlTextWriterAttribute.Href, Page.ClientScript.GetPostBackClientHyperlink (this, (index.ToString (CultureInfo.InvariantCulture))));
-                                       //else
-                                       //      writer.AddAttribute (HtmlTextWriterAttribute.Disabled, "disabled");
+                                       else
+                                               writer.AddAttribute (HtmlTextWriterAttribute.Disabled, "disabled");
                                        writer.RenderBeginTag (HtmlTextWriterTag.A);
                                        writer.Write (item.Text);
                                        writer.RenderEndTag ();
@@ -147,7 +154,6 @@ namespace System.Web.UI.WebControls {
                
                protected internal override void RenderContents (HtmlTextWriter writer)
                {
-                       cacheIsEnabled = this.Enabled;
                        int idx = 0;
                        foreach (ListItem i in Items) {
                                writer.RenderBeginTag (HtmlTextWriterTag.Li);
@@ -156,10 +162,9 @@ namespace System.Web.UI.WebControls {
                        }
                }
 
-               [MonoTODO]
-               protected internal override void Render (HtmlTextWriter w)
+               protected internal override void Render (HtmlTextWriter writer)
                {
-                       throw new NotImplementedException ();
+                       base.Render (writer);
                }
                
                void IPostBackEventHandler.RaisePostBackEvent (string eventArgument)
@@ -186,53 +191,34 @@ namespace System.Web.UI.WebControls {
                [Bindable (false)]
                [EditorBrowsableAttribute (EditorBrowsableState.Never)]
                public override int SelectedIndex {
-                       get { return base.SelectedIndex; }
+                       get { return -1; }
                        set { throw new NotSupportedException (String.Format ("This property is not supported in {0}", GetType ())); }
                }
                
            [EditorBrowsableAttribute (EditorBrowsableState.Never)]
                public override ListItem SelectedItem {
-                       get { return base.SelectedItem; }
+                       get { return null; }
                }
 
                [EditorBrowsable (EditorBrowsableState.Never)]
                [Bindable (false)]
-               [MonoTODO]
-               public override string SelectedValue 
+               public override string SelectedValue
                {
-                       get {
-                               throw new NotImplementedException ();
-                       }
-                       set {
-                               throw new NotImplementedException ();
-                       }
+                       get { return string.Empty; }
+                       set { throw new NotSupportedException (); }
                }
                
                [DefaultValueAttribute ("")]
                [EditorAttribute ("System.Web.UI.Design.ImageUrlEditor, " + Consts.AssemblySystem_Design, "System.Drawing.Design.UITypeEditor, " + Consts.AssemblySystem_Drawing)]
                [UrlPropertyAttribute]
                public virtual string BulletImageUrl {
-                       get {
-                               object ret = ViewState ["BulletImageUrl"];
-                               if (ret != null)
-                                       return (string) ret; 
-                       
-                               return "";
-                       }
-                       set {
-                               ViewState ["BulletImageUrl"] = value;
-                       }
+                       get { return ViewState.GetString ("BulletImageUrl", ""); }
+                       set { ViewState ["BulletImageUrl"] = value; }
                }
                
            [DefaultValueAttribute (BulletStyle.NotSet)]
                public virtual BulletStyle BulletStyle {
-                       get {
-                               object ret = ViewState ["BulletStyle"];
-                               if (ret != null)
-                                       return (BulletStyle) ret; 
-                       
-                               return BulletStyle.NotSet;
-                       }
+                       get { return (BulletStyle) ViewState.GetInt ("BulletStyle", (int) BulletStyle.NotSet); }
                        set {
                                if ((int) value < 0 || (int) value > 9)
                                        throw new ArgumentOutOfRangeException ("value");
@@ -245,13 +231,7 @@ namespace System.Web.UI.WebControls {
                
            [DefaultValueAttribute (BulletedListDisplayMode.Text)]
                public virtual BulletedListDisplayMode DisplayMode {
-                       get {
-                               object ret = ViewState ["DisplayMode"];
-                               if (ret != null)
-                                       return (BulletedListDisplayMode) ret; 
-                       
-                               return BulletedListDisplayMode.Text;
-                       }
+                       get { return (BulletedListDisplayMode) ViewState.GetInt ("DisplayMode", (int)BulletedListDisplayMode.Text); }
                        set {
                                if ((int) value < 0 || (int) value > 2)
                                        throw new ArgumentOutOfRangeException ("value");
@@ -262,16 +242,8 @@ namespace System.Web.UI.WebControls {
                
            [DefaultValueAttribute (1)]
                public virtual int FirstBulletNumber {
-                       get {
-                               object ret = ViewState ["FirstBulletNumber"];
-                               if (ret != null)
-                                       return (int) ret; 
-                       
-                               return 1;
-                       }
-                       set {
-                               ViewState ["FirstBulletNumber"] = value;
-                       }
+                       get { return ViewState.GetInt ("FirstBulletNumber", 1); }
+                       set { ViewState ["FirstBulletNumber"] = value; }
                }
                
 
@@ -299,28 +271,15 @@ namespace System.Web.UI.WebControls {
                [DefaultValueAttribute ("")]
                [TypeConverter (typeof (TargetConverter))]
                public virtual string Target {
-                       get {
-                               object ret = ViewState ["Target"];
-                               if (ret != null)
-                                       return (string) ret; 
-                       
-                               return "";
-                       }
-                       set {
-                               ViewState ["Target"] = value;
-                       }
+                       get { return ViewState.GetString ("Target", ""); }
+                       set { ViewState ["Target"] = value; }
                }
 
                [EditorBrowsable (EditorBrowsableState.Never)]
-               [MonoTODO]
                public override string Text
                {
-                       get {
-                               throw new NotImplementedException ();
-                       }
-                       set {
-                               throw new NotImplementedException ();
-                       }
+                       get { return string.Empty; }
+                       set { throw new NotSupportedException (); }
                }