Author: husted Date: Fri Jun 24 06:48:49 2005 New Revision: 201619 URL: http://svn.apache.org/viewcvs?rev=201619&view=rev Log: OVR-5 * Update to use Nexus IEntryList interface and EntryListProcessor * Stub in code and queries need to support editing, based on examples from intranet application.
Added: struts/sandbox/trunk/overdrive/PhoneBook/Core/Commands/BaseSave.cs struts/sandbox/trunk/overdrive/PhoneBook/Web/AppGridHelper.cs Modified: struts/sandbox/trunk/overdrive/PhoneBook/Core/App.cs struts/sandbox/trunk/overdrive/PhoneBook/Core/AppContext.cs struts/sandbox/trunk/overdrive/PhoneBook/Core/AppContextList.cs struts/sandbox/trunk/overdrive/PhoneBook/Core/AppProcessor.cs struts/sandbox/trunk/overdrive/PhoneBook/Core/Commands/AppCommand.cs struts/sandbox/trunk/overdrive/PhoneBook/Core/Core.csproj struts/sandbox/trunk/overdrive/PhoneBook/Test/Commands/SelectAllTest.cs struts/sandbox/trunk/overdrive/PhoneBook/Test/Forms/DirectoryTest.cs struts/sandbox/trunk/overdrive/PhoneBook/Test/Resources/Command/AppConfig.xml struts/sandbox/trunk/overdrive/PhoneBook/Test/Resources/Command/Catalog.xml struts/sandbox/trunk/overdrive/PhoneBook/Test/Resources/Query/SelectAll.xml struts/sandbox/trunk/overdrive/PhoneBook/Web/Forms/Directory.aspx struts/sandbox/trunk/overdrive/PhoneBook/Web/Forms/Directory.aspx.cs struts/sandbox/trunk/overdrive/PhoneBook/Web/Forms/Directory2.aspx struts/sandbox/trunk/overdrive/PhoneBook/Web/Forms/Directory2.aspx.cs struts/sandbox/trunk/overdrive/PhoneBook/Web/Forms/Web.config struts/sandbox/trunk/overdrive/PhoneBook/Web/Resources/Command/AppConfig.xml struts/sandbox/trunk/overdrive/PhoneBook/Web/Resources/Command/Catalog.xml struts/sandbox/trunk/overdrive/PhoneBook/Web/Resources/Query/SelectAll.xml struts/sandbox/trunk/overdrive/PhoneBook/Web/Web.csproj Modified: struts/sandbox/trunk/overdrive/PhoneBook/Core/App.cs URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/PhoneBook/Core/App.cs?rev=201619&r1=201618&r2=201619&view=diff ============================================================================== --- struts/sandbox/trunk/overdrive/PhoneBook/Core/App.cs (original) +++ struts/sandbox/trunk/overdrive/PhoneBook/Core/App.cs Fri Jun 24 06:48:49 2005 @@ -28,6 +28,12 @@ } /// <summary> + /// Token for entry_key property. + /// </summary> + /// + public const string ENTRY_KEY = "entry_key"; + + /// <summary> /// Token for first_name property. /// </summary> /// Modified: struts/sandbox/trunk/overdrive/PhoneBook/Core/AppContext.cs URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/PhoneBook/Core/AppContext.cs?rev=201619&r1=201618&r2=201619&view=diff ============================================================================== --- struts/sandbox/trunk/overdrive/PhoneBook/Core/AppContext.cs (original) +++ struts/sandbox/trunk/overdrive/PhoneBook/Core/AppContext.cs Fri Jun 24 06:48:49 2005 @@ -13,7 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -using Agility.Core; +using System.Collections; namespace PhoneBook.Core { @@ -21,51 +21,75 @@ /// Expose field attributes as public properties. /// </summary> /// - public class AppContext : Context + public class AppEntry { + public void Add(string key, string value) + { + _Value.Add (key,value); + } + + private IDictionary _Value = new Hashtable(5); + + private string Get(string key) + { + return _Value[key] as string; + } + + private void Set(string key, string value) + { + _Value[key] = value; + } + + /* - public string property + public string Property { - get { return _Store[App.PROPERTY] as string; } - set { _Store[App.PROPERTY] = value; } + get { return Get(App.PROPERTY); } + set { Set(App.PROPERTY, value); } } */ + public string entry_key + { + get { return Get(App.ENTRY_KEY); } + set { Set(App.ENTRY_KEY, value); } + } + public string first_name { - get { return this [App.FIRST_NAME] as string; } - set { this [App.FIRST_NAME] = value; } + get { return Get(App.FIRST_NAME); } + set { Set(App.FIRST_NAME, value); } } public string last_name { - get { return this [App.LAST_NAME] as string; } - set { this [App.LAST_NAME] = value; } + get { return Get(App.LAST_NAME); } + set { Set(App.LAST_NAME, value); } } public string extension { - get { return this [App.EXTENSION] as string; } - set { this [App.EXTENSION] = value; } + get { return Get(App.EXTENSION); } + set { Set(App.EXTENSION, value); } } public string user_name { - get { return this [App.USER_NAME] as string; } - set { this [App.USER_NAME] = value; } + get { return Get(App.USER_NAME); } + set { Set(App.USER_NAME, value); } } public string hired { - get { return this [App.HIRED] as string; } - set { this [App.HIRED] = value; } + get { return Get(App.HIRED); } + set { Set(App.HIRED, value); } } public string hours { - get { return this [App.HOURS] as string; } - set { this [App.HOURS] = value; } + get { return Get(App.HOURS); } + set { Set(App.HOURS, value); } } } Modified: struts/sandbox/trunk/overdrive/PhoneBook/Core/AppContextList.cs URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/PhoneBook/Core/AppContextList.cs?rev=201619&r1=201618&r2=201619&view=diff ============================================================================== --- struts/sandbox/trunk/overdrive/PhoneBook/Core/AppContextList.cs (original) +++ struts/sandbox/trunk/overdrive/PhoneBook/Core/AppContextList.cs Fri Jun 24 06:48:49 2005 @@ -1,31 +1,29 @@ using System.Collections; -using Agility.Core; using Nexus.Core; namespace PhoneBook.Core { /// <summary> - /// List AppContext objects. + /// Implement IEntryList for AppEntry objects. /// </summary> /// - public class AppContextList : ArrayList, IContextList + public class AppEntryList : ArrayList, IEntryList { - public IContext Insert (string key) + public object Insert (string key) { - AppContext entry = new AppContext(); - entry.last_name = key; + AppEntry entry = new AppEntry(); + entry.entry_key = key; this.Insert (0,entry); return entry; } public void AddEntry(IDictionary row) { - AppContext entry = new AppContext(); + AppEntry entry = new AppEntry(); foreach (DictionaryEntry col in row) - entry.Add (col.Key,col.Value); + entry.Add (col.Key.ToString (),col.Value.ToString ()); Add(entry); } - } } Modified: struts/sandbox/trunk/overdrive/PhoneBook/Core/AppProcessor.cs URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/PhoneBook/Core/AppProcessor.cs?rev=201619&r1=201618&r2=201619&view=diff ============================================================================== --- struts/sandbox/trunk/overdrive/PhoneBook/Core/AppProcessor.cs (original) +++ struts/sandbox/trunk/overdrive/PhoneBook/Core/AppProcessor.cs Fri Jun 24 06:48:49 2005 @@ -1,40 +1,14 @@ -using System.Collections; -using Agility.Nexus.Validators; using Nexus.Core; using Nexus.Core.Validators; namespace PhoneBook.Core { - /// <summary> - /// Transform IDictionary entries into formatted AppContext properties. - /// </summary> - public class AppProcessor : Processor - { - public override bool ConvertInput (IProcessorContext incoming) - { - incoming.Target = incoming.Source; - return true; - } - public override bool FormatOutput (IProcessorContext outgoing) + public class AppEntryListProcessor : EntryListProcessor + { + public override IEntryList NewEntryList() { - ProcessorCommand formatter = new FormatOutput (); - IList source = outgoing.Source as IList; - AppContextList target = new AppContextList (); - foreach (IDictionary row in source) - { - IRequestContext context = new RequestContext (row); - context.FieldTable = outgoing.FieldTable; - ICollection keys = row.Keys; - foreach (string key in keys) - { - IProcessorContext _context = new ProcessorContext (key, context); - formatter.ExecuteProcess (_context); - } - target.AddEntry (context.Criteria); - } - outgoing.Target = target; - return true; + return new AppEntryList(); } } } Modified: struts/sandbox/trunk/overdrive/PhoneBook/Core/Commands/AppCommand.cs URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/PhoneBook/Core/Commands/AppCommand.cs?rev=201619&r1=201618&r2=201619&view=diff ============================================================================== --- struts/sandbox/trunk/overdrive/PhoneBook/Core/Commands/AppCommand.cs (original) +++ struts/sandbox/trunk/overdrive/PhoneBook/Core/Commands/AppCommand.cs Fri Jun 24 06:48:49 2005 @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +using System; using IBatisNet.DataMapper; using Nexus.Core; @@ -29,5 +30,18 @@ // return IBatisNet.DataMapper.Mapper.Instance(); return IBatisNet.DataMapper.Mapper.Instance (); } + + public bool IsEmpty (string input) + { + return ((input == null) || (input.Equals (String.Empty))); + } + + public string GuidString () + { + Guid guid = Guid.NewGuid (); + string gs = guid.ToString (); + return gs; + } + } } Added: struts/sandbox/trunk/overdrive/PhoneBook/Core/Commands/BaseSave.cs URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/PhoneBook/Core/Commands/BaseSave.cs?rev=201619&view=auto ============================================================================== --- struts/sandbox/trunk/overdrive/PhoneBook/Core/Commands/BaseSave.cs (added) +++ struts/sandbox/trunk/overdrive/PhoneBook/Core/Commands/BaseSave.cs Fri Jun 24 06:48:49 2005 @@ -0,0 +1,70 @@ +using Nexus.Core; + +namespace PhoneBook.Core.Commands +{ + /// <summary> + /// Base Command for saving an Entity to the persistant store (database). + /// </summary> + public class BaseSave : AppCommand + { + private string _KeyID = null; + /// <summary> + /// The name of the key field. + /// </summary> + public string KeyID + { + get { return _KeyID; } + set { _KeyID = value; } + } + + private string _InsertID = null; + /// <summary> + /// The name of the "insert" mapping for the Entity. + /// </summary> + public string InsertID + { + get { return _InsertID; } + set { _InsertID = value; } + } + + private string _UpdateID = null; + /// <summary> + /// The name of the "update" mapping for the Entity. + /// </summary> + public string UpdateID + { + get { return _UpdateID; } + set { _UpdateID = value; } + } + + /// <summary> + /// If the "fieldID" is empty, use the insertID statement, + /// otherwise, use the updateID statement. + /// </summary> + /// <param name="context">The INexusContext we are processing.</param> + /// <param name="fieldID">The name of the key field.</param> + /// <param name="insertID">The name of the "insert" mapping for the Entity.</param> + /// <param name="updateID">The name of the "update" mapping for the Entity.</param> + /// <returns>False</returns> + protected bool Save (IRequestContext context, string fieldID, string insertID, string updateID) + { + bool insert = IsEmpty (context [fieldID] as string); + + if (insert) + { + context [fieldID] = GuidString (); + Mapper().Insert (insertID, context); + } + else + Mapper().Update (updateID, context); + + return CONTINUE; + } + + public override bool RequestExecute (IRequestContext context) + { + return Save (context, KeyID, InsertID, UpdateID); + } + + } +} Modified: struts/sandbox/trunk/overdrive/PhoneBook/Core/Core.csproj URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/PhoneBook/Core/Core.csproj?rev=201619&r1=201618&r2=201619&view=diff ============================================================================== --- struts/sandbox/trunk/overdrive/PhoneBook/Core/Core.csproj (original) +++ struts/sandbox/trunk/overdrive/PhoneBook/Core/Core.csproj Fri Jun 24 06:48:49 2005 @@ -149,6 +149,11 @@ SubType = "Code" BuildAction = "Compile" /> + <File + RelPath = "Commands\BaseSave.cs" + SubType = "Code" + BuildAction = "Compile" + /> </Include> </Files> </CSHARP> Modified: struts/sandbox/trunk/overdrive/PhoneBook/Test/Commands/SelectAllTest.cs URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/PhoneBook/Test/Commands/SelectAllTest.cs?rev=201619&r1=201618&r2=201619&view=diff ============================================================================== --- struts/sandbox/trunk/overdrive/PhoneBook/Test/Commands/SelectAllTest.cs (original) +++ struts/sandbox/trunk/overdrive/PhoneBook/Test/Commands/SelectAllTest.cs Fri Jun 24 06:48:49 2005 @@ -63,10 +63,10 @@ { IViewHelper helper = catalog.GetHelper ("directory_find_helper"); helper.Execute (); - AppContextList list = helper.Outcome as AppContextList; + AppEntryList list = helper.Outcome as AppEntryList; // AppContextList list = helper.Context.Criteria["filter"] as AppContextList; Assert.IsNotNull (list, "Expected list to be AppContextList"); - AppContext row = list [0] as AppContext; + AppEntry row = list [0] as AppEntry; Assert.IsNotNull (row, "Expected rows to be AppContexts"); string hired = row.hired; Modified: struts/sandbox/trunk/overdrive/PhoneBook/Test/Forms/DirectoryTest.cs URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/PhoneBook/Test/Forms/DirectoryTest.cs?rev=201619&r1=201618&r2=201619&view=diff ============================================================================== --- struts/sandbox/trunk/overdrive/PhoneBook/Test/Forms/DirectoryTest.cs (original) +++ struts/sandbox/trunk/overdrive/PhoneBook/Test/Forms/DirectoryTest.cs Fri Jun 24 06:48:49 2005 @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ +using System.Net; using NUnit.Extensions.Asp; using NUnit.Extensions.Asp.AspTester; using NUnit.Framework; @@ -35,7 +36,6 @@ private DropDownListTester hours_list; // TODO: private DropDownListTester editor_list; private ButtonTester cmdListAll; - private ButtonTester cmdPrint; private PanelTester pnlList; private DataGridTester repList; @@ -59,6 +59,9 @@ protected override void SetUp () { base.SetUp (); + string[] userLanguages = {"en-us"}; + Browser.UserLanguages = userLanguages; + Browser.Credentials = CredentialCache.DefaultCredentials; pnlFind = new PanelTester ("pnlFind", CurrentWebForm); last_name_list = new DropDownListTester (App.LAST_NAME_LIST, CurrentWebForm); @@ -69,7 +72,6 @@ hours_list = new DropDownListTester (App.HOURS_LIST, CurrentWebForm); // TODO: editor_list = new DropDownListTester (App.EDITOR_LIST, CurrentWebForm); cmdListAll = new ButtonTester ("cmdListAll", CurrentWebForm); - cmdPrint = new ButtonTester ("cmdPrint", CurrentWebForm); pnlList = new PanelTester ("pnlList", CurrentWebForm); repList = new DataGridTester ("repList", CurrentWebForm); @@ -92,7 +94,6 @@ WebAssert.Visible (list); } WebAssert.Visible (cmdListAll); - WebAssert.Visible (cmdPrint); WebAssert.Visible (pnlList); WebAssert.Visible (repList); WebAssert.NotVisible (cmdAdd); // Visible if Editor Modified: struts/sandbox/trunk/overdrive/PhoneBook/Test/Resources/Command/AppConfig.xml URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/PhoneBook/Test/Resources/Command/AppConfig.xml?rev=201619&r1=201618&r2=201619&view=diff ============================================================================== --- struts/sandbox/trunk/overdrive/PhoneBook/Test/Resources/Command/AppConfig.xml (original) +++ struts/sandbox/trunk/overdrive/PhoneBook/Test/Resources/Command/AppConfig.xml Fri Jun 24 06:48:49 2005 @@ -8,8 +8,12 @@ <object id="FieldTable" type="Nexus.Core.Tables.FieldTable"> <property name="AddFieldContexts"> <list> - <ref object="hired"/> + <ref object="last_name"/> + <ref object="first_name"/> <ref object="extension"/> + <ref object="user_name"/> + <ref object="hired"/> + <ref object="hours"/> <ref object="_filter"/> <ref object="_extension_list"/> <ref object="_hired_list"/> @@ -19,28 +23,51 @@ <list> <ref object="DateTimeProcessor"/> <ref object="TelephoneProcessor"/> - <ref object="AppProcessor"/> + <ref object="EntryListProcessor"/> <ref object="ExtensionListProcessor"/> <ref object="HiredListProcessor"/> </list> </property> </object> + + <object id="last_name" parent="BaseFieldContext"> + <property name="ID"><value>last_name</value></property> + <property name="Label"><value>Last Name</value></property> + </object> + + <object id="first_name" parent="BaseFieldContext"> + <property name="ID"><value>first_name</value></property> + <property name="Label"><value>First Name</value></property> + </object> + + <object id="user_name" parent="BaseFieldContext"> + <property name="ID"><value>user_name</value></property> + <property name="Label"><value>UserName</value></property> + </object> + <object id="extension" parent="BaseFieldContext"> + <property name="ID"><value>extension</value></property> + <property name="ProcessorID"><value>TelephoneProcessor</value></property> + <property name="Label"><value>Extension</value></property> + </object> + <object id="hired" parent="BaseFieldContext"> <property name="ID"><value>hired</value></property> <property name="Alert"><value>{0} must be a valid date</value></property> <property name="ProcessorID"><value>DateTimeProcessor</value></property> + <property name="Label"><value>Hired</value></property> </object> - - <object id="extension" parent="BaseFieldContext"> - <property name="ID"><value>extension</value></property> - <property name="ProcessorID"><value>TelephoneProcessor</value></property> + + <object id="hours" parent="BaseFieldContext"> + <property name="ID"><value>hours</value></property> + <property name="Label"><value>Hours</value></property> </object> + <!-- We need to "hash" the name with "_" to avoid conflict with the filter Command --> <object id="_filter" parent="BaseFieldContext"> <property name="ID"><value>filter</value></property> - <property name="ProcessorID"><value>AppProcessor</value></property> + <property name="ProcessorID"><value>EntryListProcessor</value></property> </object> <object id="_extension_list" parent="BaseFieldContext"> @@ -63,8 +90,8 @@ <property name="ID"><value>TelephoneProcessor</value></property> </object> - <object id="AppProcessor" type="PhoneBook.Core.AppProcessor"> - <property name="ID"><value>AppProcessor</value></property> + <object id="EntryListProcessor" type="PhoneBook.Core.AppEntryListProcessor"> + <property name="ID"><value>EntryListProcessor</value></property> </object> <object id="ExtensionListProcessor" parent="BaseKeyValueProcessor"> Modified: struts/sandbox/trunk/overdrive/PhoneBook/Test/Resources/Command/Catalog.xml URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/PhoneBook/Test/Resources/Command/Catalog.xml?rev=201619&r1=201618&r2=201619&view=diff ============================================================================== --- struts/sandbox/trunk/overdrive/PhoneBook/Test/Resources/Command/Catalog.xml (original) +++ struts/sandbox/trunk/overdrive/PhoneBook/Test/Resources/Command/Catalog.xml Fri Jun 24 06:48:49 2005 @@ -9,6 +9,7 @@ <property name="RelatedIDs"> <list> <value>filter</value> + <value>entry_key</value> <value>last_name</value> <value>first_name</value> <value>extension</value> @@ -72,7 +73,7 @@ </object> - <!-- helpers --> + <!-- directory1 helpers --> <object id="directory_view_helper" parent="BaseHelper" singleton="false"> <property name="Command"> @@ -85,5 +86,75 @@ <ref object="filter" /> </property> </object> + + <!-- directory2 helpers --> + + <object id="BaseGridHelper" type="PhoneBook.Web.AppGridHelper, PhoneBook.Web" singleton="false"> + <property name="Catalog"> + <ref object="Catalog" /> + </property> + </object> + + <object id="directory_grid_helper" parent="BaseGridHelper" singleton="false"> + <property name="ListHelper"> + <ref object="directory_find_helper" /> + </property> + <property name="SaveHelper"> + <ref object="entry_save_helper" /> + </property> + <property name="HasCriteria"> + <value>true</value> + </property> + <property name="DataKeyField"> + <value>entry_key</value> + </property> + <property name="FieldSet"> + <list> + <ref object="first_name"/> + <ref object="last_name"/> + <ref object="extension"/> + <ref object="user_name"/> + <ref object="hired"/> + <ref object="hours"/> + </list> + </property> + </object> + <object id="entry_save_helper" parent="BaseHelper" singleton="false"> + <property name="Command"> + <ref object="entry_save" /> + </property> + </object> + + <object id="entry_save" type="PhoneBook.Core.Commands.BaseSave, PhoneBook.Core"> + <property name="ID"> + <value>entry_save</value> + </property> + <property name="KeyID"> + <value>entry_key</value> + </property> + <property name="InsertID"> + <value>entry_insert</value> + </property> + <property name="UpdateID"> + <value>entry_update</value> + </property> + <property name="RelatedIDs"> + <list> + <value>entry_key</value> + </list> + </property> + <property name="RequiredIDs"> + <list> + <value>first_name</value> + <value>last_name</value> + <value>extension</value> + <value>user_name</value> + <value>hours</value> + <value>hired</value> + <value>editor</value> + </list> + </property> + </object> + </objects> Modified: struts/sandbox/trunk/overdrive/PhoneBook/Test/Resources/Query/SelectAll.xml URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/PhoneBook/Test/Resources/Query/SelectAll.xml?rev=201619&r1=201618&r2=201619&view=diff ============================================================================== --- struts/sandbox/trunk/overdrive/PhoneBook/Test/Resources/Query/SelectAll.xml (original) +++ struts/sandbox/trunk/overdrive/PhoneBook/Test/Resources/Query/SelectAll.xml Fri Jun 24 06:48:49 2005 @@ -5,10 +5,25 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="SqlMap.xsd" > +Â Â <parameterMaps> + +Â Â <parameterMap id="entry_save_param"> + <parameter property="last_name"/> + <parameter property="first_name"/> + <parameter property="extension"/> + <parameter property="user_name"/> + <parameter property="hired"/> + <parameter property="hours"/> + <parameter property="editor"/> +Â Â <parameter property="entry_key"/>Â Â +Â Â Â Â </parameterMap> Â Â +Â +Â </parameterMaps> + <statements> <select id="filter" paramClass="Hashtable" resultClass="Hashtable"> SELECT - pk_entry, + pk_entry AS entry_key, last_name, first_name, extension, @@ -38,8 +53,34 @@ </isNotNull> </dynamic> </select> - + + <insert id="entry_insert" parameterMap="entry_save_param"> + Â Â INSERT INTO entry ( Â Â + last_name, + first_name, + extension, + user_name, + hired, + hours, + editor, + pk_entry + ) + VALUES (?,?,?,?, ?,?,?,?) + </insert> + + <update id="entry_update" parameterMap="entry_save_param"> + UPDATE entry SET + last_name=?, + first_name=?, + extension=?, + user_name=?, + hired=?, + hours=?, + editor=? + WHERE + pk_entry=? + </update> + </statements> - </sqlMap> Added: struts/sandbox/trunk/overdrive/PhoneBook/Web/AppGridHelper.cs URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/PhoneBook/Web/AppGridHelper.cs?rev=201619&view=auto ============================================================================== --- struts/sandbox/trunk/overdrive/PhoneBook/Web/AppGridHelper.cs (added) +++ struts/sandbox/trunk/overdrive/PhoneBook/Web/AppGridHelper.cs Fri Jun 24 06:48:49 2005 @@ -0,0 +1,15 @@ +using Nexus; +using Nexus.Core; +using PhoneBook.Core; + +namespace PhoneBook.Web +{ + + public class AppGridHelper : GridViewHelper + { + public override IEntryList NewEntryList () + { + return new AppEntryList(); + } + } +} Modified: struts/sandbox/trunk/overdrive/PhoneBook/Web/Forms/Directory.aspx URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/PhoneBook/Web/Forms/Directory.aspx?rev=201619&r1=201618&r2=201619&view=diff ============================================================================== --- struts/sandbox/trunk/overdrive/PhoneBook/Web/Forms/Directory.aspx (original) +++ struts/sandbox/trunk/overdrive/PhoneBook/Web/Forms/Directory.aspx Fri Jun 24 06:48:49 2005 @@ -27,7 +27,7 @@ <table><tr> <td colspan="6" > <asp:Button ID="cmdListAll" Runat="server"></asp:Button> - <INPUT onclick="javascript:window.print();" type="button" value="PRINT" name="cmd_print" id="cmd_print"> </asp:Button> + <INPUT onclick="javascript:window.print();" type="button" value="PRINT" name="cmd_print" id="cmd_print"> </td> <tr> <td>Last Name</td> Modified: struts/sandbox/trunk/overdrive/PhoneBook/Web/Forms/Directory.aspx.cs URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/PhoneBook/Web/Forms/Directory.aspx.cs?rev=201619&r1=201618&r2=201619&view=diff ============================================================================== --- struts/sandbox/trunk/overdrive/PhoneBook/Web/Forms/Directory.aspx.cs (original) +++ struts/sandbox/trunk/overdrive/PhoneBook/Web/Forms/Directory.aspx.cs Fri Jun 24 06:48:49 2005 @@ -2,7 +2,7 @@ using System.Collections; using System.Web.UI.WebControls; using Nexus.Core.Helpers; -using Spring.Web.UI; +using System.Web.UI; namespace PhoneBook.Web.Forms { Modified: struts/sandbox/trunk/overdrive/PhoneBook/Web/Forms/Directory2.aspx URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/PhoneBook/Web/Forms/Directory2.aspx?rev=201619&r1=201618&r2=201619&view=diff ============================================================================== --- struts/sandbox/trunk/overdrive/PhoneBook/Web/Forms/Directory2.aspx (original) +++ struts/sandbox/trunk/overdrive/PhoneBook/Web/Forms/Directory2.aspx Fri Jun 24 06:48:49 2005 @@ -49,18 +49,10 @@ <!-- LIST --> <asp:Panel ID="pnlList" Runat="server"> <asp:DataGrid id="repList" Runat="server" - PagerStyle-Mode="NumericPages" AllowPaging="true" PageSize="10" AutoGenerateColumns=False> + PagerStyle-Mode="NumericPages" AllowPaging="true" PageSize="10" > <HeaderStyle CssClass="HeaderStyle" BackColor="#CCCC99"></HeaderStyle> <AlternatingItemStyle CssClass="AlternatingItemStyle" BackColor="#CCCC99"></AlternatingItemStyle> <EditItemStyle CssClass="EditItemStyle"></EditItemStyle> - <Columns> - <asp:BoundColumn DataField="last_name" HeaderText="LAST NAME"></asp:BoundColumn> - <asp:BoundColumn DataField="first_name" HeaderText="FIRST NAME"></asp:BoundColumn> - <asp:BoundColumn DataField="extension" HeaderText="EXTENSION"></asp:BoundColumn> - <asp:BoundColumn DataField="user_name" HeaderText="USER"></asp:BoundColumn> - <asp:BoundColumn DataField="hired" HeaderText="HIRE DATE"></asp:BoundColumn> - <asp:BoundColumn DataField="hours" HeaderText="HOURS"></asp:BoundColumn> - </Columns> </asp:DataGrid> <p><asp:Button ID="cmdAdd" Runat="server"></asp:Button></p> </asp:Panel> Modified: struts/sandbox/trunk/overdrive/PhoneBook/Web/Forms/Directory2.aspx.cs URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/PhoneBook/Web/Forms/Directory2.aspx.cs?rev=201619&r1=201618&r2=201619&view=diff ============================================================================== --- struts/sandbox/trunk/overdrive/PhoneBook/Web/Forms/Directory2.aspx.cs (original) +++ struts/sandbox/trunk/overdrive/PhoneBook/Web/Forms/Directory2.aspx.cs Fri Jun 24 06:48:49 2005 @@ -12,6 +12,7 @@ /// public class Directory2 : BaseGridPage { + #region Messages private const string msg_ADD_CMD = "ADD NEW"; @@ -27,7 +28,7 @@ /// <summary> /// Display a list of error mesasges. /// </summary> - public IViewHelper Page_Error + protected override IViewHelper Page_Error { set { @@ -204,5 +205,6 @@ } #endregion + } } Modified: struts/sandbox/trunk/overdrive/PhoneBook/Web/Forms/Web.config URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/PhoneBook/Web/Forms/Web.config?rev=201619&r1=201618&r2=201619&view=diff ============================================================================== --- struts/sandbox/trunk/overdrive/PhoneBook/Web/Forms/Web.config (original) +++ struts/sandbox/trunk/overdrive/PhoneBook/Web/Forms/Web.config Fri Jun 24 06:48:49 2005 @@ -21,6 +21,8 @@ </object> <object id="Directory2" type="Directory2.aspx"> + <property name="Helper"><ref object="directory_grid_helper"/></property> + <property name="ViewHelper"><ref object="directory_view_helper"/></property> <property name="FindHelper"><ref object="directory_find_helper"/></property> </object> Modified: struts/sandbox/trunk/overdrive/PhoneBook/Web/Resources/Command/AppConfig.xml URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/PhoneBook/Web/Resources/Command/AppConfig.xml?rev=201619&r1=201618&r2=201619&view=diff ============================================================================== --- struts/sandbox/trunk/overdrive/PhoneBook/Web/Resources/Command/AppConfig.xml (original) +++ struts/sandbox/trunk/overdrive/PhoneBook/Web/Resources/Command/AppConfig.xml Fri Jun 24 06:48:49 2005 @@ -8,8 +8,12 @@ <object id="FieldTable" type="Nexus.Core.Tables.FieldTable"> <property name="AddFieldContexts"> <list> - <ref object="hired"/> + <ref object="last_name"/> + <ref object="first_name"/> <ref object="extension"/> + <ref object="user_name"/> + <ref object="hired"/> + <ref object="hours"/> <ref object="_filter"/> <ref object="_extension_list"/> <ref object="_hired_list"/> @@ -19,28 +23,51 @@ <list> <ref object="DateTimeProcessor"/> <ref object="TelephoneProcessor"/> - <ref object="AppProcessor"/> + <ref object="EntryListProcessor"/> <ref object="ExtensionListProcessor"/> <ref object="HiredListProcessor"/> </list> </property> </object> + + <object id="last_name" parent="BaseFieldContext"> + <property name="ID"><value>last_name</value></property> + <property name="Label"><value>Last Name</value></property> + </object> + + <object id="first_name" parent="BaseFieldContext"> + <property name="ID"><value>first_name</value></property> + <property name="Label"><value>First Name</value></property> + </object> + + <object id="user_name" parent="BaseFieldContext"> + <property name="ID"><value>user_name</value></property> + <property name="Label"><value>UserName</value></property> + </object> + <object id="extension" parent="BaseFieldContext"> + <property name="ID"><value>extension</value></property> + <property name="ProcessorID"><value>TelephoneProcessor</value></property> + <property name="Label"><value>Extension</value></property> + </object> + <object id="hired" parent="BaseFieldContext"> <property name="ID"><value>hired</value></property> <property name="Alert"><value>{0} must be a valid date</value></property> <property name="ProcessorID"><value>DateTimeProcessor</value></property> + <property name="Label"><value>Hired</value></property> </object> - - <object id="extension" parent="BaseFieldContext"> - <property name="ID"><value>extension</value></property> - <property name="ProcessorID"><value>TelephoneProcessor</value></property> + + <object id="hours" parent="BaseFieldContext"> + <property name="ID"><value>hours</value></property> + <property name="Label"><value>Hours</value></property> </object> + <!-- We need to "hash" the name with "_" to avoid conflict with the filter Command --> <object id="_filter" parent="BaseFieldContext"> <property name="ID"><value>filter</value></property> - <property name="ProcessorID"><value>AppProcessor</value></property> + <property name="ProcessorID"><value>EntryListProcessor</value></property> </object> <object id="_extension_list" parent="BaseFieldContext"> @@ -63,8 +90,8 @@ <property name="ID"><value>TelephoneProcessor</value></property> </object> - <object id="AppProcessor" type="PhoneBook.Core.AppProcessor"> - <property name="ID"><value>AppProcessor</value></property> + <object id="EntryListProcessor" type="PhoneBook.Core.AppEntryListProcessor"> + <property name="ID"><value>EntryListProcessor</value></property> </object> <object id="ExtensionListProcessor" parent="BaseKeyValueProcessor"> Modified: struts/sandbox/trunk/overdrive/PhoneBook/Web/Resources/Command/Catalog.xml URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/PhoneBook/Web/Resources/Command/Catalog.xml?rev=201619&r1=201618&r2=201619&view=diff ============================================================================== --- struts/sandbox/trunk/overdrive/PhoneBook/Web/Resources/Command/Catalog.xml (original) +++ struts/sandbox/trunk/overdrive/PhoneBook/Web/Resources/Command/Catalog.xml Fri Jun 24 06:48:49 2005 @@ -9,6 +9,7 @@ <property name="RelatedIDs"> <list> <value>filter</value> + <value>entry_key</value> <value>last_name</value> <value>first_name</value> <value>extension</value> @@ -72,7 +73,7 @@ </object> - <!-- helpers --> + <!-- directory1 helpers --> <object id="directory_view_helper" parent="BaseHelper" singleton="false"> <property name="Command"> @@ -85,5 +86,75 @@ <ref object="filter" /> </property> </object> + + <!-- directory2 helpers --> + + <object id="BaseGridHelper" type="PhoneBook.Web.AppGridHelper, PhoneBook.Web" singleton="false"> + <property name="Catalog"> + <ref object="Catalog" /> + </property> + </object> + + <object id="directory_grid_helper" parent="BaseGridHelper" singleton="false"> + <property name="ListHelper"> + <ref object="directory_find_helper" /> + </property> + <property name="SaveHelper"> + <ref object="entry_save_helper" /> + </property> + <property name="HasCriteria"> + <value>true</value> + </property> + <property name="DataKeyField"> + <value>entry_key</value> + </property> + <property name="FieldSet"> + <list> + <ref object="first_name"/> + <ref object="last_name"/> + <ref object="extension"/> + <ref object="user_name"/> + <ref object="hired"/> + <ref object="hours"/> + </list> + </property> + </object> + <object id="entry_save_helper" parent="BaseHelper" singleton="false"> + <property name="Command"> + <ref object="entry_save" /> + </property> + </object> + + <object id="entry_save" type="PhoneBook.Core.Commands.BaseSave, PhoneBook.Core"> + <property name="ID"> + <value>entry_save</value> + </property> + <property name="KeyID"> + <value>entry_key</value> + </property> + <property name="InsertID"> + <value>entry_insert</value> + </property> + <property name="UpdateID"> + <value>entry_update</value> + </property> + <property name="RelatedIDs"> + <list> + <value>entry_key</value> + </list> + </property> + <property name="RequiredIDs"> + <list> + <value>first_name</value> + <value>last_name</value> + <value>extension</value> + <value>user_name</value> + <value>hours</value> + <value>hired</value> + <value>editor</value> + </list> + </property> + </object> + </objects> Modified: struts/sandbox/trunk/overdrive/PhoneBook/Web/Resources/Query/SelectAll.xml URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/PhoneBook/Web/Resources/Query/SelectAll.xml?rev=201619&r1=201618&r2=201619&view=diff ============================================================================== --- struts/sandbox/trunk/overdrive/PhoneBook/Web/Resources/Query/SelectAll.xml (original) +++ struts/sandbox/trunk/overdrive/PhoneBook/Web/Resources/Query/SelectAll.xml Fri Jun 24 06:48:49 2005 @@ -5,10 +5,25 @@ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="SqlMap.xsd" > +Â Â <parameterMaps> + +Â Â <parameterMap id="entry_save_param"> + <parameter property="last_name"/> + <parameter property="first_name"/> + <parameter property="extension"/> + <parameter property="user_name"/> + <parameter property="hired"/> + <parameter property="hours"/> + <parameter property="editor"/> +Â Â <parameter property="entry_key"/>Â Â +Â Â Â Â </parameterMap> Â Â +Â +Â </parameterMaps> + <statements> <select id="filter" paramClass="Hashtable" resultClass="Hashtable"> SELECT - pk_entry, + pk_entry AS entry_key, last_name, first_name, extension, @@ -38,8 +53,34 @@ </isNotNull> </dynamic> </select> - + + <insert id="entry_insert" parameterMap="entry_save_param"> + Â Â INSERT INTO entry ( Â Â + last_name, + first_name, + extension, + user_name, + hired, + hours, + editor, + pk_entry + ) + VALUES (?,?,?,?, ?,?,?,?) + </insert> + + <update id="entry_update" parameterMap="entry_save_param"> + UPDATE entry SET + last_name=?, + first_name=?, + extension=?, + user_name=?, + hired=?, + hours=?, + editor=? + WHERE + pk_entry=? + </update> + </statements> - </sqlMap> Modified: struts/sandbox/trunk/overdrive/PhoneBook/Web/Web.csproj URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/PhoneBook/Web/Web.csproj?rev=201619&r1=201618&r2=201619&view=diff ============================================================================== --- struts/sandbox/trunk/overdrive/PhoneBook/Web/Web.csproj (original) +++ struts/sandbox/trunk/overdrive/PhoneBook/Web/Web.csproj Fri Jun 24 06:48:49 2005 @@ -144,6 +144,11 @@ <Files> <Include> <File + RelPath = "AppGridHelper.cs" + SubType = "Code" + BuildAction = "Compile" + /> + <File RelPath = "AppHelper.cs" SubType = "Code" BuildAction = "Compile" @@ -221,7 +226,7 @@ <File RelPath = "Forms\Directory2.aspx.cs" DependentUpon = "Directory2.aspx" - SubType = "Code" + SubType = "ASPXCodeBehind" BuildAction = "Compile" /> <File --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]