2010-07-08 Marek Habersack <mhabersack@novell.com>
authorMarek Habersack <grendel@twistedcode.net>
Thu, 8 Jul 2010 13:10:06 +0000 (13:10 -0000)
committerMarek Habersack <grendel@twistedcode.net>
Thu, 8 Jul 2010 13:10:06 +0000 (13:10 -0000)
* ImageMap.cs: implemented missing Enabled property (2.0+)
RaisePostBackEvent must be protected and virtual (2.0+)
NavigateUrl is ignored if the control is disabled (4.0)

svn path=/trunk/mcs/; revision=160053

mcs/class/System.Web/System.Web.UI.WebControls/ChangeLog
mcs/class/System.Web/System.Web.UI.WebControls/ImageMap.cs
mcs/class/System.Web/Test/System.Web.UI.WebControls/ImageMapTest.cs

index ef92ab5bf0b7f602b0f89a3e4738304d4ef41cc7..c70b04e88c66dbbb1abe8f546c566d7950a50e3d 100644 (file)
@@ -1,3 +1,9 @@
+2010-07-08  Marek Habersack  <mhabersack@novell.com>
+
+       * ImageMap.cs: implemented missing Enabled property (2.0+)
+       RaisePostBackEvent must be protected and virtual (2.0+)
+       NavigateUrl is ignored if the control is disabled (4.0)
+
 2010-07-07  Marek Habersack  <mhabersack@novell.com>
 
        * TreeView.cs: 4.0 rendering changes.
index 8ace4e854726b3aac7bbdda162095621bd0430d4..51e8235281c310463e630d21fe515df53165f4fc 100644 (file)
@@ -60,6 +60,14 @@ namespace System.Web.UI.WebControls
                        }
                }
 
+               // Why override?
+               [Browsable (true)]
+               [EditorBrowsable (EditorBrowsableState.Always)]
+               public override bool Enabled {
+                       get { return base.Enabled; }
+                       set { base.Enabled = value; }
+               }
+               
                [DefaultValueAttribute (HotSpotMode.NotSet)]
                public virtual HotSpotMode HotSpotMode {
                        get {
@@ -121,14 +129,19 @@ namespace System.Web.UI.WebControls
                        base.LoadViewState (pair.First);
                        ((IStateManager)HotSpots).LoadViewState (pair.Second);
                }
-               
-               public void RaisePostBackEvent (string eventArgument)
+
+               protected virtual void RaisePostBackEvent (string eventArgument)
                {
                        ValidateEvent (UniqueID, eventArgument);
                        HotSpot spot = HotSpots [int.Parse (eventArgument)];
                        OnClick (new ImageMapEventArgs (spot.PostBackValue));
                }
 
+               void IPostBackEventHandler.RaisePostBackEvent (string eventArgument)
+               {
+                       RaisePostBackEvent (eventArgument);
+               }
+               
                protected override void AddAttributesToRender (HtmlTextWriter writer)
                {
                        base.AddAttributesToRender (writer);
@@ -141,6 +154,7 @@ namespace System.Web.UI.WebControls
                        base.Render (writer);
 
                        if (spots != null && spots.Count > 0) {
+                               bool enabled = Enabled;
                                writer.AddAttribute (HtmlTextWriterAttribute.Id, "ImageMap" + ClientID);
                                writer.AddAttribute (HtmlTextWriterAttribute.Name, "ImageMap" + ClientID);
                                writer.RenderBeginTag (HtmlTextWriterTag.Map);
@@ -164,12 +178,18 @@ namespace System.Web.UI.WebControls
                                                        string target = spot.Target.Length > 0 ? spot.Target : Target;
                                                        if (!String.IsNullOrEmpty (target))
                                                                writer.AddAttribute (HtmlTextWriterAttribute.Target, target);
+#if NET_4_0
+                                                       if (enabled) {
+#endif
 #if TARGET_J2EE
-                                                       string navUrl = ResolveClientUrl (spot.NavigateUrl, String.Compare (target, "_blank", StringComparison.InvariantCultureIgnoreCase) != 0);
+                                                               string navUrl = ResolveClientUrl (spot.NavigateUrl, String.Compare (target, "_blank", StringComparison.InvariantCultureIgnoreCase) != 0);
 #else
-                                                       string navUrl = ResolveClientUrl (spot.NavigateUrl);
+                                                               string navUrl = ResolveClientUrl (spot.NavigateUrl);
+#endif
+                                                               writer.AddAttribute (HtmlTextWriterAttribute.Href, navUrl);
+#if NET_4_0
+                                                       }
 #endif
-                                                       writer.AddAttribute (HtmlTextWriterAttribute.Href, navUrl);
                                                        break;
                                                case HotSpotMode.PostBack:
                                                        writer.AddAttribute (HtmlTextWriterAttribute.Href, Page.ClientScript.GetPostBackClientHyperlink (this, n.ToString(), true));
index 722586b687c1232ab77e8374104c0bb7c123def1..adbb6c25d37d765babcc86950dae3159e3f7189a 100644 (file)
@@ -263,9 +263,6 @@ namespace MonoTests.System.Web.UI.WebControls
                        string originalHtml = "<img disabled=\"disabled\" src=\"\" usemap=\"#ImageMap\" style=\"border-width:0px;\" /><map name=\"ImageMap\" id=\"ImageMap\">\r\n\t<area shape=\"circle\" coords=\"0,0,0\" href=\"NavigateURL\" target=\"Target\" title=\"\" alt=\"\" />\r\n</map>";
 #endif
                        string renderedHtml = imageMap.Render ();
-                       Console.WriteLine (renderedHtml);
-                       Console.WriteLine ("-----------");
-                       Console.WriteLine (originalHtml);
                        HtmlDiff.AssertAreEqual (originalHtml, renderedHtml, "RenderDisabledTextAssigne");
                }