Author: husted Date: Thu Oct 20 09:02:35 2005 New Revision: 326929 URL: http://svn.apache.org/viewcvs?rev=326929&view=rev Log: OVR-23 * Add MessageLabel class and several "strategy" classes that modify the initial defaults for common cases. * Update GetMessages to observe MessageLabel properties. * Add MessageLabel (and subsclasses) to the root Bind method. ** Note that Labels and MessageLabels can be bound from the Criteria, like any other control.
Added: struts/sandbox/trunk/overdrive/Nexus/Web/AlertLabel.cs struts/sandbox/trunk/overdrive/Nexus/Web/HintLabel.cs struts/sandbox/trunk/overdrive/Nexus/Web/MessageLabel.cs struts/sandbox/trunk/overdrive/Nexus/Web/TextLabel.cs Modified: struts/sandbox/trunk/overdrive/Nexus/Test/bin/Debug/Nexus.Core.dll struts/sandbox/trunk/overdrive/Nexus/Test/bin/Debug/Nexus.Core.pdb struts/sandbox/trunk/overdrive/Nexus/Test/bin/Debug/Nexus.Extras.dll struts/sandbox/trunk/overdrive/Nexus/Test/bin/Debug/Nexus.Extras.pdb struts/sandbox/trunk/overdrive/Nexus/Test/bin/Debug/Nexus.Test.dll struts/sandbox/trunk/overdrive/Nexus/Test/bin/Debug/Nexus.Test.pdb struts/sandbox/trunk/overdrive/Nexus/Web/GridControl.ascx.cs struts/sandbox/trunk/overdrive/Nexus/Web/ViewControl.ascx.cs struts/sandbox/trunk/overdrive/Nexus/Web/Web.csproj Modified: struts/sandbox/trunk/overdrive/Nexus/Test/bin/Debug/Nexus.Core.dll URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Test/bin/Debug/Nexus.Core.dll?rev=326929&r1=326928&r2=326929&view=diff ============================================================================== Binary files - no diff available. Modified: struts/sandbox/trunk/overdrive/Nexus/Test/bin/Debug/Nexus.Core.pdb URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Test/bin/Debug/Nexus.Core.pdb?rev=326929&r1=326928&r2=326929&view=diff ============================================================================== Binary files - no diff available. Modified: struts/sandbox/trunk/overdrive/Nexus/Test/bin/Debug/Nexus.Extras.dll URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Test/bin/Debug/Nexus.Extras.dll?rev=326929&r1=326928&r2=326929&view=diff ============================================================================== Binary files - no diff available. Modified: struts/sandbox/trunk/overdrive/Nexus/Test/bin/Debug/Nexus.Extras.pdb URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Test/bin/Debug/Nexus.Extras.pdb?rev=326929&r1=326928&r2=326929&view=diff ============================================================================== Binary files - no diff available. Modified: struts/sandbox/trunk/overdrive/Nexus/Test/bin/Debug/Nexus.Test.dll URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Test/bin/Debug/Nexus.Test.dll?rev=326929&r1=326928&r2=326929&view=diff ============================================================================== Binary files - no diff available. Modified: struts/sandbox/trunk/overdrive/Nexus/Test/bin/Debug/Nexus.Test.pdb URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Test/bin/Debug/Nexus.Test.pdb?rev=326929&r1=326928&r2=326929&view=diff ============================================================================== Binary files - no diff available. Added: struts/sandbox/trunk/overdrive/Nexus/Web/AlertLabel.cs URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Web/AlertLabel.cs?rev=326929&view=auto ============================================================================== --- struts/sandbox/trunk/overdrive/Nexus/Web/AlertLabel.cs (added) +++ struts/sandbox/trunk/overdrive/Nexus/Web/AlertLabel.cs Thu Oct 20 09:02:35 2005 @@ -0,0 +1,27 @@ +namespace Nexus.Web +{ + /// <summary> + /// Extend MessageLabel to respond only to the View_Alert event + /// and use an alternate suffix. + /// </summary> + public class AlertLabel : MessageLabel + { + + /// <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; + } + } +} + 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=326929&r1=326928&r2=326929&view=diff ============================================================================== --- struts/sandbox/trunk/overdrive/Nexus/Web/GridControl.ascx.cs (original) +++ struts/sandbox/trunk/overdrive/Nexus/Web/GridControl.ascx.cs Thu Oct 20 09:02:35 2005 @@ -863,13 +863,14 @@ /// private void Page_Load(object sender, EventArgs e) { - Grid.AutoGenerateColumns = false; - Grid.EditItemIndex = list_ItemIndex; - Grid.CancelCommand += new DataGridCommandEventHandler(list_Quit); - Grid.EditCommand += new DataGridCommandEventHandler(list_Edit); - Grid.UpdateCommand += new DataGridCommandEventHandler(list_Save); - Grid.ItemCommand += new DataGridCommandEventHandler(List_Item); - Grid.PageIndexChanged += new DataGridPageChangedEventHandler(list_PageIndexChanged); + DataGrid grid = Grid; + grid.AutoGenerateColumns = false; + grid.EditItemIndex = list_ItemIndex; + grid.CancelCommand += new DataGridCommandEventHandler(list_Quit); + grid.EditCommand += new DataGridCommandEventHandler(list_Edit); + grid.UpdateCommand += new DataGridCommandEventHandler(list_Save); + grid.ItemCommand += new DataGridCommandEventHandler(List_Item); + grid.PageIndexChanged += new DataGridPageChangedEventHandler(list_PageIndexChanged); if (this.Visible) Open(); } Added: struts/sandbox/trunk/overdrive/Nexus/Web/HintLabel.cs URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Web/HintLabel.cs?rev=326929&view=auto ============================================================================== --- struts/sandbox/trunk/overdrive/Nexus/Web/HintLabel.cs (added) +++ struts/sandbox/trunk/overdrive/Nexus/Web/HintLabel.cs Thu Oct 20 09:02:35 2005 @@ -0,0 +1,27 @@ +namespace Nexus.Web +{ + /// <summary> + /// Extend MessageLabel to respond only to the View_Hint event + /// and use an alternate suffix. + /// </summary> + public class HintLabel : MessageLabel + { + + /// <summary> + /// Default suffix for NameLabel IDs ["_hint"]. + /// </summary> + public const string HINT_SUFFIX = "_hint"; + + /// <summary> + /// Set the defaults for this subclass. + /// </summary> + public HintLabel() + { + Suffix = HINT_SUFFIX; + Resource = false; + Required = false; + View_Alert = false; + } + } +} + Added: struts/sandbox/trunk/overdrive/Nexus/Web/MessageLabel.cs URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Web/MessageLabel.cs?rev=326929&view=auto ============================================================================== --- struts/sandbox/trunk/overdrive/Nexus/Web/MessageLabel.cs (added) +++ struts/sandbox/trunk/overdrive/Nexus/Web/MessageLabel.cs Thu Oct 20 09:02:35 2005 @@ -0,0 +1,128 @@ +using System.Web.UI.WebControls; + +namespace Nexus.Web +{ + + /// <summary> + /// Present dynamic message by consulting with Message Resources + /// or handling an event. + /// </summary> + public class MessageLabel : Label + { + + /// <summary> + /// Field for EntryID property. + /// </summary> + /// + private string _EntryID; + + /// <summary> + /// Name of corresponding entry. + /// </summary> + /// <remarks><p> + /// If this is not set, + /// the EntryId is obtained by truncating the Suffix + /// from the ID. + /// </p></remarks> + public string EntryID + { + get + { + if ((_EntryID==null) || (_EntryID.Length==0)) + { + int v = ID.LastIndexOf(Suffix); + _EntryID = ID.Substring(0, v); + } + return _EntryID; + } + set { _EntryID = value;} + } + + public const string MESSAGE_SUFFIX = "_msg"; + + /// <summary> + /// Field for Suffix property. + /// </summary> + /// + private string _Suffix = MESSAGE_SUFFIX; + + /// <summary> + /// Suffix to trim from ID to obtain EntryID [MESSAGE_SUFFIX]. + /// </summary> + /// + public string Suffix + { + get { return _Suffix; } + set { _Suffix = value;} + } + + /// <summary> + /// Field for Resource property. + /// </summary> + /// + private bool _Resource = true; + + /// <summary> + /// If true, populate from Message Resources [TRUE]. + /// </summary> + /// + public bool Resource + { + get { return _Resource; } + set { _Resource = value;} + } + + /// <summary> + /// Field for Required property. + /// </summary> + /// + private bool _Required = false; + + /// <summary> + /// If true, throw exception if Resource==true + /// and message not in resource [FALSE]. + /// </summary> + /// + public bool Required + { + get { return _Required; } + set { _Required = value;} + } + + /// <summary> + /// Field for View_Hint property. + /// </summary> + /// + private bool _View_Hint = true; + + /// <summary> + /// If true, register for View_Alert event + /// and display any alert for corresponding field [TRUE]. + /// </summary> + /// + public bool View_Hint + { + get { return _View_Hint; } + set { _View_Hint = value;} + } + + /// <summary> + /// Field for View_Alert property. + /// </summary> + /// + private bool _View_Alert = true; + + /// <summary> + /// If true, register for View_Hint event + /// and display any hint for corresponding field [TRUE]. + /// </summary> + /// + public bool View_Alert + { + get { return _View_Alert; } + set { _View_Alert = value;} + } + + } + +} Added: struts/sandbox/trunk/overdrive/Nexus/Web/TextLabel.cs URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Web/TextLabel.cs?rev=326929&view=auto ============================================================================== --- struts/sandbox/trunk/overdrive/Nexus/Web/TextLabel.cs (added) +++ struts/sandbox/trunk/overdrive/Nexus/Web/TextLabel.cs Thu Oct 20 09:02:35 2005 @@ -0,0 +1,26 @@ +namespace Nexus.Web +{ + /// <summary> + /// Extend MessageLabel to ignore runtime events, + /// require an entry, and use an alternate suffix. + /// </summary> + public class TextLabel : MessageLabel + { + + /// <summary> + /// Default suffix for NameLabel IDs ["_label"]. + /// </summary> + public const string TEXT_SUFFIX = "_label"; + + /// <summary> + /// Set the defaults for this subclass. + /// </summary> + public TextLabel() + { + Suffix = TEXT_SUFFIX; + Required = true; + View_Hint = false; + View_Alert = false; + } + } +} 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=326929&r1=326928&r2=326929&view=diff ============================================================================== --- struts/sandbox/trunk/overdrive/Nexus/Web/ViewControl.ascx.cs (original) +++ struts/sandbox/trunk/overdrive/Nexus/Web/ViewControl.ascx.cs Thu Oct 20 09:02:35 2005 @@ -52,7 +52,8 @@ /// <param name="id">The full id, including prefix and suffix.</param> /// <param name="prefix">The prefix to omit.</param> /// <param name="suffix">The suffix to omit.</param> - /// <returns></returns> + /// <returns>ID for corresponding entry</returns> + /// private string RootId(string id, string prefix, string suffix) { int v = id.LastIndexOf(suffix); @@ -62,10 +63,11 @@ } /// <summary> - /// Trim Sany QL wildcards that may have been added to a search string. + /// Trim any SQL wildcards that may have been added to a search string. /// </summary> /// <param name="input">String to trim</param> /// <returns>Input without SQL wildcards</returns> + /// protected string TrimWildCards(string input) { string trimmed = null; @@ -143,6 +145,18 @@ } /// <summary> + /// Return true if control is a MessageLabel + /// or MessageLabel subclass. + /// </summary> + /// <param name="control">Control to test.</param> + /// <returns>True if control is a NameLabel</returns> + /// + protected bool IsMessageLabel(Control control) + { + return (control is MessageLabel); + } + + /// <summary> /// Return true if control is a List Control or one of the standard subclasses. /// </summary> /// <param name="control">Control to test.</param> @@ -301,7 +315,8 @@ { IViewHelper helper = Catalog.GetHelperFor(command); helper.Profile = Profile; - // helper; + // IDictionary criteria = Profile.Criteria; + // helper.Read(criteria); return helper; } @@ -322,6 +337,13 @@ object v = dictionary[ToColumn(x.ID, prefix)]; if (v != null) x.Text = v.ToString(); } + if (IsMessageLabel(t)) + { + MessageLabel x = (MessageLabel) t; + object v = dictionary[ToColumn(x.ID, prefix)]; + if (v != null) x.Text = v.ToString(); + continue; + } if (IsLabel(t)) { Label x = (Label) t; @@ -538,10 +560,17 @@ { foreach (Control t in controls) { - if (IsLabel(t)) + if (IsMessageLabel(t)) { - Label x = (Label) t; - x.Text = GetMessage(x.ID); + MessageLabel x = (MessageLabel) t; + if (x.Resource) try + { + x.Text = GetMessage(x.ID); + } + catch (Exception e) + { + if (x.Required) throw(e); + } continue; } if (IsButton(t)) Modified: struts/sandbox/trunk/overdrive/Nexus/Web/Web.csproj URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/Nexus/Web/Web.csproj?rev=326929&r1=326928&r2=326929&view=diff ============================================================================== --- struts/sandbox/trunk/overdrive/Nexus/Web/Web.csproj (original) +++ struts/sandbox/trunk/overdrive/Nexus/Web/Web.csproj Thu Oct 20 09:02:35 2005 @@ -114,6 +114,11 @@ <Files> <Include> <File + RelPath = "AlertLabel.cs" + SubType = "Code" + BuildAction = "Compile" + /> + <File RelPath = "AssemblyInfo.cs" SubType = "Code" BuildAction = "Compile" @@ -166,13 +171,28 @@ BuildAction = "EmbeddedResource" /> <File + RelPath = "HintLabel.cs" + SubType = "Code" + BuildAction = "Compile" + /> + <File RelPath = "IViewControl.cs" SubType = "Code" BuildAction = "Compile" /> <File + RelPath = "MessageLabel.cs" + SubType = "Code" + BuildAction = "Compile" + /> + <File RelPath = "Messages.resx" BuildAction = "EmbeddedResource" + /> + <File + RelPath = "TextLabel.cs" + SubType = "Code" + BuildAction = "Compile" /> <File RelPath = "ViewControl.ascx" --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]