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]