Author: husted
Date: Fri Oct 21 06:47:54 2005
New Revision: 327181

URL: http://svn.apache.org/viewcvs?rev=327181&view=rev
Log:
OVR-23
* Add automatic binding for TextLabels
* Rename ErrorsText to AlertsText for consistency
* Add support methods for obtaining messages for an entity ID
* Rename View_Errors to View_Alerts for consistency

Modified:
    struts/sandbox/trunk/overdrive/Nexus/Core/Helpers/IViewHelper.cs
    struts/sandbox/trunk/overdrive/Nexus/Core/Helpers/ViewHelper.cs
    struts/sandbox/trunk/overdrive/Nexus/Web/AlertLabel.cs
    struts/sandbox/trunk/overdrive/Nexus/Web/FindControl.ascx.cs
    struts/sandbox/trunk/overdrive/Nexus/Web/GridControl.ascx.cs
    struts/sandbox/trunk/overdrive/Nexus/Web/MessageLabel.cs
    struts/sandbox/trunk/overdrive/Nexus/Web/ViewControl.ascx.cs
    struts/sandbox/trunk/overdrive/Nexus/Web/WebHelper.cs

Modified: struts/sandbox/trunk/overdrive/Nexus/Core/Helpers/IViewHelper.cs
URL: 
http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Core/Helpers/IViewHelper.cs?rev=327181&r1=327180&r2=327181&view=diff
==============================================================================
--- struts/sandbox/trunk/overdrive/Nexus/Core/Helpers/IViewHelper.cs (original)
+++ struts/sandbox/trunk/overdrive/Nexus/Core/Helpers/IViewHelper.cs Fri Oct 21 
06:47:54 2005
@@ -88,6 +88,29 @@
                IDictionary Alerts { get; }
 
                /// <summary>
+               /// Return the Alerts for the specifiied ID, 
+               /// formatted for display by a UI control.
+               /// </summary>
+               /// <remarks>
+               /// If messages are localized or customized, 
+               /// the helper will return correct version for the user.
+               /// UI specific implementation may markup the errors as needed.
+               /// </remarks>
+               /// 
+               string AlertsFor(string id);
+
+               /// <summary>
+               /// Return the Alerts, including any Fault, formatted for 
display by a UI control.
+               /// </summary>
+               /// <remarks>
+               /// If messages are localized or customized, 
+               /// the helper will return correct version for the user.
+               /// UI specific implementation may markup the errors as needed.
+               /// </remarks>
+               /// 
+               string AlertsText { get; }
+
+               /// <summary>
                /// Indicate if alerts are queued.
                /// </summary>
                /// <returns>True if alerts are queued.</returns>
@@ -118,7 +141,16 @@
                bool IsNominal { get; }
 
                /// <summary>
-               /// Return the Alerts, including any Fault, formatted for 
display by a UI control.
+               /// Record a list of hint (or advisory) messages, 
+               /// keyed by a field or other identifier, 
+               /// or to a magic global key.
+               /// </summary>
+               /// 
+               IDictionary Hints { get; }
+
+               /// <summary>
+               /// Return the Hints for the specifiied ID, 
+               /// formatted for display by a UI control.
                /// </summary>
                /// <remarks>
                /// If messages are localized or customized, 
@@ -126,15 +158,7 @@
                /// UI specific implementation may markup the errors as needed.
                /// </remarks>
                /// 
-               string ErrorsText { get; }
-
-               /// <summary>
-               /// Record a list of hint (or advisory) messages, 
-               /// keyed by a field or other identifier, 
-               /// or to a magic global key.
-               /// </summary>
-               /// 
-               IDictionary Hints { get; }
+               string HintsFor(string id);
 
                /// <summary>
                /// Indicate if Hints are queued.

Modified: struts/sandbox/trunk/overdrive/Nexus/Core/Helpers/ViewHelper.cs
URL: 
http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Core/Helpers/ViewHelper.cs?rev=327181&r1=327180&r2=327181&view=diff
==============================================================================
--- struts/sandbox/trunk/overdrive/Nexus/Core/Helpers/ViewHelper.cs (original)
+++ struts/sandbox/trunk/overdrive/Nexus/Core/Helpers/ViewHelper.cs Fri Oct 21 
06:47:54 2005
@@ -147,7 +147,11 @@
 
                #region Messages (abstract) 
 
-               public abstract string ErrorsText { get; }
+               public abstract string AlertsFor(string id);
+
+               public abstract string AlertsText { get; }
+
+               public abstract string HintsFor(string id);
 
                public abstract string HintsText { get; }
 

Modified: struts/sandbox/trunk/overdrive/Nexus/Web/AlertLabel.cs
URL: 
http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Web/AlertLabel.cs?rev=327181&r1=327180&r2=327181&view=diff
==============================================================================
--- struts/sandbox/trunk/overdrive/Nexus/Web/AlertLabel.cs (original)
+++ struts/sandbox/trunk/overdrive/Nexus/Web/AlertLabel.cs Fri Oct 21 06:47:54 
2005
@@ -10,18 +10,22 @@
                /// <summary>
                /// Default suffix for NameLabel IDs ["_alert"].
                /// </summary>
+               /// 
                public const string ALERT_SUFFIX = "_alert";
                
                /// <summary>
                /// Set the defaults for this subclass.
                /// </summary>
+               /// 
                public AlertLabel()
                {
                        Suffix = ALERT_SUFFIX;
                        Resource = false;
                        Required = false;
                        View_Hint = false;
+                       EnableViewState = false;
                }
+
        }
 }
 

Modified: struts/sandbox/trunk/overdrive/Nexus/Web/FindControl.ascx.cs
URL: 
http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Web/FindControl.ascx.cs?rev=327181&r1=327180&r2=327181&view=diff
==============================================================================
--- struts/sandbox/trunk/overdrive/Nexus/Web/FindControl.ascx.cs (original)
+++ struts/sandbox/trunk/overdrive/Nexus/Web/FindControl.ascx.cs Fri Oct 21 
06:47:54 2005
@@ -42,7 +42,7 @@
                                IViewHelper helper = Read(FindCommand);
                                if (!helper.IsNominal)
                                {
-                                       Page_Error = helper;
+                                       Page_Alert = helper;
                                }
                                return helper.Criteria;
                        }
@@ -82,7 +82,7 @@
                public virtual void Open()
                {
                        IViewHelper helper = ExecuteBind(FindCommand);
-                       if (!helper.IsNominal) Page_Error = helper;
+                       if (!helper.IsNominal) Page_Alert = helper;
                }
 
                public virtual void Open(IDictionary criteria)
@@ -90,7 +90,7 @@
                        IViewHelper helper = GetHelperFor(FindCommand);
                        helper.Read(criteria, true);
                        ExecuteBind(helper);
-                       if (!helper.IsNominal) Page_Error = helper;
+                       if (!helper.IsNominal) Page_Alert = helper;
                }
 
                /// <summary>

Modified: struts/sandbox/trunk/overdrive/Nexus/Web/GridControl.ascx.cs
URL: 
http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Web/GridControl.ascx.cs?rev=327181&r1=327180&r2=327181&view=diff
==============================================================================
--- struts/sandbox/trunk/overdrive/Nexus/Web/GridControl.ascx.cs (original)
+++ struts/sandbox/trunk/overdrive/Nexus/Web/GridControl.ascx.cs Fri Oct 21 
06:47:54 2005
@@ -549,7 +549,7 @@
                        bool okay = helper.IsNominal;
                        if (!okay)
                        {
-                               Page_Error = helper;
+                               Page_Alert = helper;
                        }
                        return okay;
                }
@@ -641,7 +641,7 @@
                                list_Insert = true;
                                list_ItemIndex = 0;
                        }
-                       else Page_Error = helper;
+                       else Page_Alert = helper;
                }
 
                #endregion
@@ -688,7 +688,7 @@
                                okay = this.Open();
                                // ISSUE: Event? Page_Prompt = (List_Insert) ? 
msg_ADD_SUCCESS : msg_SAVE_SUCCESS;
                        }
-                       if (!okay) Page_Error = helper;
+                       if (!okay) Page_Alert = helper;
                }
 
                private void list_Quit(object source, DataGridCommandEventArgs 
e)

Modified: struts/sandbox/trunk/overdrive/Nexus/Web/MessageLabel.cs
URL: 
http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Web/MessageLabel.cs?rev=327181&r1=327180&r2=327181&view=diff
==============================================================================
--- struts/sandbox/trunk/overdrive/Nexus/Web/MessageLabel.cs (original)
+++ struts/sandbox/trunk/overdrive/Nexus/Web/MessageLabel.cs Fri Oct 21 
06:47:54 2005
@@ -1,4 +1,6 @@
+using System;
 using System.Web.UI.WebControls;
+using Nexus.Core.Helpers;
 
 namespace Nexus.Web
 {
@@ -123,6 +125,34 @@
                        set { _View_Alert = value;}
                }
 
-       }
-               
+               /// <summary>
+               /// Present a list of error mesasges.
+               /// </summary>
+               /// 
+               protected IViewHelper Alerts
+               {
+                       set
+                       {
+                               if (value != null)
+                               {
+                                       Text = value.AlertsFor(EntryID);
+                               }
+                       }
+               }
+
+               /// <summary>
+               /// Provide a standard Event Handler for passing Alert messages.
+               /// </summary>
+               /// <param name="sender">Event source</param>
+               /// <param name="e">Runtime parameters</param>
+               /// 
+               public void View_Alert_Handler(object sender, EventArgs e)
+               {
+                       ViewArgs v = e as ViewArgs;
+                       if (v == null) throw new 
ArgumentException("ViewLabel.View_Alert_Handler: !(e is ViewArgs)");
+                       IViewHelper helper = v.Helper;
+                       if (helper != null) Alerts = helper;
+                       else throw new 
ArgumentException("ViewLabel.View_Alert_Handler: (e.helper==null)");
+               }
+       }               
 }

Modified: struts/sandbox/trunk/overdrive/Nexus/Web/ViewControl.ascx.cs
URL: 
http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Web/ViewControl.ascx.cs?rev=327181&r1=327180&r2=327181&view=diff
==============================================================================
--- struts/sandbox/trunk/overdrive/Nexus/Web/ViewControl.ascx.cs (original)
+++ struts/sandbox/trunk/overdrive/Nexus/Web/ViewControl.ascx.cs Fri Oct 21 
06:47:54 2005
@@ -34,9 +34,9 @@
                /// Psuedo property to generate an Error event encapsulating 
                /// our Helper property, containing the error.
                /// </summary>
-               protected IViewHelper Page_Error
+               protected IViewHelper Page_Alert
                {
-                       set { View_Error_Handler(this, new ViewArgs(value)); }
+                       set { View_Alert_Handler(this, new ViewArgs(value)); }
                }
 
                #region String utilities 
@@ -151,7 +151,7 @@
                /// <param name="control">Control to test.</param>
                /// <returns>True if control is a NameLabel</returns>
                /// 
-               protected bool IsMessageLabel(Control control)
+               protected bool IsViewLabel(Control control)
                {
                        return (control is MessageLabel);
                }
@@ -327,6 +327,22 @@
                        return helper;
                }
 
+               protected virtual void InitViewLabels()
+               {
+                       foreach (Control t in Controls)
+                       {
+                               if (IsViewLabel(t))
+                               {
+                                       MessageLabel x = (MessageLabel) t;
+                                       if (x.View_Alert)
+                                       {
+                                               View_Alert += new 
EventHandler(x.View_Alert_Handler);
+                                       }
+                                       continue;
+                               }                               
+                       }                       
+               }
+
                private void BindControls(ControlCollection controls, 
IDictionary dictionary, string prefix, string list_suffix)
                {
                        foreach (Control t in controls)
@@ -337,7 +353,7 @@
                                        object v = dictionary[ToColumn(x.ID, 
prefix)];
                                        if (v != null) x.Text = v.ToString();
                                }
-                               if (IsMessageLabel(t))
+                               if (IsViewLabel(t))
                                {
                                        MessageLabel x = (MessageLabel) t;
                                        object v = dictionary[ToColumn(x.ID, 
prefix)];
@@ -560,7 +576,7 @@
                {
                        foreach (Control t in controls)
                        {
-                               if (IsMessageLabel(t))
+                               if (IsViewLabel(t))
                                {
                                        MessageLabel x = (MessageLabel) t;
                                        if (x.Resource) try
@@ -669,29 +685,29 @@
                /// <summary>
                /// Signal when an error is exposed. 
                /// </summary>
-               public event EventHandler View_Error;
+               public event EventHandler View_Alert;
 
                /// <summary>
                /// Pass an error to another control registered to received it.
                /// </summary>
                /// <param name="sender">This object</param>
                /// <param name="e">A ViewArgs instance with the IViewHelper 
containing the error messages(s).</param>
-               private void View_Error_Handler(object sender, EventArgs e)
+               private void View_Alert_Handler(object sender, EventArgs e)
                {
-                       if (View_Error != null)
+                       if (View_Alert != null)
                        {
-                               View_Error(sender, e);
+                               View_Alert(sender, e);
                        }
                }
 
                /// <summary>
-               /// Initialize the control to use the stanard View_Error event 
handerl.
+               /// Initialize the control to use the standard View_Alert event 
handerl.
                /// </summary>
                /// <param name="c">Control to register</param>
                /// 
                protected void InitView(ViewControl c)
                {
-                       c.View_Error += new EventHandler(View_Error_Handler);
+                       c.View_Alert += new EventHandler(View_Alert_Handler); 
// Bubble event
                        c.Profile = Profile;
                }
 
@@ -723,6 +739,7 @@
                /// </p></remarks>
                protected virtual void Page_Init()
                {
+                       InitViewLabels();
                        if (IsPostBack) return;
                        GetMessages();
                }

Modified: struts/sandbox/trunk/overdrive/Nexus/Web/WebHelper.cs
URL: 
http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Web/WebHelper.cs?rev=327181&r1=327180&r2=327181&view=diff
==============================================================================
--- struts/sandbox/trunk/overdrive/Nexus/Web/WebHelper.cs (original)
+++ struts/sandbox/trunk/overdrive/Nexus/Web/WebHelper.cs Fri Oct 21 06:47:54 
2005
@@ -6,9 +6,32 @@
 {
        public class WebHelper : ViewHelper
        {
-               public override string ErrorsText
+               public override string AlertsFor(string id)
                {
-                       get { return HtmlMessageBuilder(Alerts); }
+                       string alert = null;                    
+                       IList list = Alerts[id] as IList;
+                       if (list==null) return alert; 
+
+                       if (list.Count==1)
+                       {
+                               alert = HtmlMessage(list[0]);
+                       }
+                       else
+                       {
+                               alert = HtmlMessageList(list);
+                       } 
+                       return alert;
+               }
+
+               public override string AlertsText
+               {
+                       get
+                       {       return HtmlMessageBuilder(Alerts); }
+               }
+
+               public override string HintsFor(string id)
+               {
+                        return HtmlMessageList(Hints[id] as IList); 
                }
 
                public override string HintsText
@@ -17,6 +40,20 @@
                }
 
                #region Message utilities
+
+               /// <summary>
+               /// Build a  message using HTML markup.
+               /// </summary>
+               /// <param name="message">A message</param>
+               /// <returns>HTML markup presenting the messages.</returns>
+               /// 
+               private string HtmlMessage(object message)
+               {
+                       StringBuilder sb = new StringBuilder("<p>");
+                       sb.Append(message.ToString());
+                       sb.Append("</p>");
+                       return sb.ToString();
+               }
 
                /// <summary>
                /// Build a set of messages using HTML markup.



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to