Author: husted Date: Sat Sep 10 12:18:01 2005 New Revision: 280030 URL: http://svn.apache.org/viewcvs?rev=280030&view=rev Log: OVR-21 * First round of refactorings toward a user-control centric architecture.
Added: struts/sandbox/trunk/overdrive/PhoneBook/Web/Controls/ struts/sandbox/trunk/overdrive/PhoneBook/Web/Controls/Finder.ascx struts/sandbox/trunk/overdrive/PhoneBook/Web/Controls/Finder.ascx.cs struts/sandbox/trunk/overdrive/PhoneBook/Web/Controls/Finder.ascx.resx struts/sandbox/trunk/overdrive/PhoneBook/Web/Controls/Lister.ascx struts/sandbox/trunk/overdrive/PhoneBook/Web/Controls/Lister.ascx.cs struts/sandbox/trunk/overdrive/PhoneBook/Web/Controls/Lister.ascx.resx Modified: struts/sandbox/trunk/overdrive/PhoneBook/Core/Core.csproj struts/sandbox/trunk/overdrive/PhoneBook/Test/Commands/DirectoryViewTest.cs struts/sandbox/trunk/overdrive/PhoneBook/Test/Commands/FilterLists.cs struts/sandbox/trunk/overdrive/PhoneBook/Test/Commands/SelectAllTest.cs struts/sandbox/trunk/overdrive/PhoneBook/Test/Resources/Command/AppConfig.xml struts/sandbox/trunk/overdrive/PhoneBook/Test/Test.csproj 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/Web.config struts/sandbox/trunk/overdrive/PhoneBook/Web/Resources/Command/AppConfig.xml struts/sandbox/trunk/overdrive/PhoneBook/Web/Web.csproj struts/sandbox/trunk/overdrive/PhoneBook/Web/default.htm Modified: struts/sandbox/trunk/overdrive/PhoneBook/Core/Core.csproj URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/PhoneBook/Core/Core.csproj?rev=280030&r1=280029&r2=280030&view=diff ============================================================================== --- struts/sandbox/trunk/overdrive/PhoneBook/Core/Core.csproj (original) +++ struts/sandbox/trunk/overdrive/PhoneBook/Core/Core.csproj Sat Sep 10 12:18:01 2005 @@ -82,17 +82,17 @@ <Reference Name = "Nexus.Core" AssemblyName = "Nexus.Core" - HintPath = "..\..\Nexus\Core\bin\Debug\Nexus.Core.dll" - /> - <Reference - Name = "Agility.Core" - AssemblyName = "Agility.Core" - HintPath = "..\..\Nexus\Core\bin\Debug\Agility.Core.dll" + HintPath = "..\..\local-cache\Nexus\Nexus.Core.dll" /> <Reference Name = "IBatisNet.DataMapper" AssemblyName = "IBatisNet.DataMapper" - HintPath = "..\..\iBatisNet.bin\IBatisNet.DataMapper.dll" + HintPath = "..\..\local-cache\iBatisNet\IBatisNet.DataMapper.dll" + /> + <Reference + Name = "Agility.Core" + AssemblyName = "Agility.Core" + HintPath = "..\..\local-cache\Agility\Agility.Core.dll" /> </References> </Build> Modified: struts/sandbox/trunk/overdrive/PhoneBook/Test/Commands/DirectoryViewTest.cs URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/PhoneBook/Test/Commands/DirectoryViewTest.cs?rev=280030&r1=280029&r2=280030&view=diff ============================================================================== --- struts/sandbox/trunk/overdrive/PhoneBook/Test/Commands/DirectoryViewTest.cs (original) +++ struts/sandbox/trunk/overdrive/PhoneBook/Test/Commands/DirectoryViewTest.cs Sat Sep 10 12:18:01 2005 @@ -11,14 +11,16 @@ [TestFixture] public class DirectoryViewTest : BaseTest { + /// <summary> - /// Confirm that Context contains the expected attributes for the list filters. + /// Confirm that Context contains the expected attributes for the list filter-0ps. /// </summary> /// [Test] public void ContainsFilters () { IRequestContext context = catalog.ExecuteRequest (App.DIRECTORY_VIEW); + this.AssertNominal(context); string[] FILTERS = {App.LAST_NAME_LIST, App.FIRST_NAME_LIST, App.EXTENSION_LIST, App.USER_NAME_LIST, App.HIRED_LIST, App.HOURS_LIST}; foreach (string filter in FILTERS) { @@ -32,7 +34,7 @@ [Test] public void HelperContains () { - IViewHelper helper = catalog.GetHelper (App.DIRECTORY_FIND_HELPER); + IViewHelper helper = catalog.GetHelperFor (App.DIRECTORY_VIEW); IRequestCommand command = helper.Command; Assert.IsNotNull (command, "Expected Helper to have a Command"); Assert.AreEqual (App.DIRECTORY_VIEW, command.ID, "Expected Helper to have View Command."); Modified: struts/sandbox/trunk/overdrive/PhoneBook/Test/Commands/FilterLists.cs URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/PhoneBook/Test/Commands/FilterLists.cs?rev=280030&r1=280029&r2=280030&view=diff ============================================================================== --- struts/sandbox/trunk/overdrive/PhoneBook/Test/Commands/FilterLists.cs (original) +++ struts/sandbox/trunk/overdrive/PhoneBook/Test/Commands/FilterLists.cs Sat Sep 10 12:18:01 2005 @@ -71,7 +71,7 @@ private IKeyValueList FilterList (string key) { - IViewHelper helper = catalog.GetHelper (App.DIRECTORY_FIND_HELPER); + IViewHelper helper = catalog.GetHelperFor (App.DIRECTORY_VIEW); helper.Execute (); IKeyValueList list = helper.Criteria [key] as IKeyValueList; Assert.IsNotNull (list, "Expected KeyValueList"); 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=280030&r1=280029&r2=280030&view=diff ============================================================================== --- struts/sandbox/trunk/overdrive/PhoneBook/Test/Commands/SelectAllTest.cs (original) +++ struts/sandbox/trunk/overdrive/PhoneBook/Test/Commands/SelectAllTest.cs Sat Sep 10 12:18:01 2005 @@ -27,6 +27,7 @@ [TestFixture] public class SelectAllTest : BaseTest { + /// <summary> /// Assert result of SelectAll, after another method runs the command. /// </summary> @@ -61,8 +62,9 @@ [Test] public void FilterHelper_Format () { - IViewHelper helper = catalog.GetHelper (App.DIRECTORY_LIST_HELPER); + IViewHelper helper = catalog.GetHelperFor (App.ENTRY_LIST); helper.Execute (); + AssertNominal(helper); AppEntryList list = helper.Outcome as AppEntryList; Assert.IsNotNull (list, "Expected list to be AppEntryList"); AppEntry row = list [0] as AppEntry; 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=280030&r1=280029&r2=280030&view=diff ============================================================================== --- struts/sandbox/trunk/overdrive/PhoneBook/Test/Resources/Command/AppConfig.xml (original) +++ struts/sandbox/trunk/overdrive/PhoneBook/Test/Resources/Command/AppConfig.xml Sat Sep 10 12:18:01 2005 @@ -156,7 +156,7 @@ <property name="FieldTable"><ref object="FieldTable"/></property> <property name="PreOp"><ref object="pre-op"/></property> <property name="PostOp"><ref object="post-op"/></property> + <property name="ViewHelper"><object type="Nexus.Web.WebHelper" singleton="false"/></property> </object> - </objects> Modified: struts/sandbox/trunk/overdrive/PhoneBook/Test/Test.csproj URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/PhoneBook/Test/Test.csproj?rev=280030&r1=280029&r2=280030&view=diff ============================================================================== --- struts/sandbox/trunk/overdrive/PhoneBook/Test/Test.csproj (original) +++ struts/sandbox/trunk/overdrive/PhoneBook/Test/Test.csproj Sat Sep 10 12:18:01 2005 @@ -16,7 +16,7 @@ DefaultTargetSchema = "IE50" DelaySign = "false" OutputType = "Library" - PreBuildEvent = "" + PreBuildEvent = "$(SolutionDir)prebuild $(SolutionDir)" PostBuildEvent = "" RootNamespace = "PhoneBook.Core" RunPostBuildEvent = "OnBuildSuccess" @@ -86,26 +86,6 @@ AssemblyFolderKey = "hklm\dn\nunit.framework" /> <Reference - Name = "Nexus.Core" - AssemblyName = "Nexus.Core" - HintPath = "..\..\Nexus\Core\bin\Debug\Nexus.Core.dll" - /> - <Reference - Name = "Nexus.Test" - AssemblyName = "Nexus.Test" - HintPath = "..\..\Nexus\Test\bin\Debug\Nexus.Test.dll" - /> - <Reference - Name = "Agility.Core" - AssemblyName = "Agility.Core" - HintPath = "..\..\Nexus\Core\bin\Debug\Agility.Core.dll" - /> - <Reference - Name = "ByteFX.MySqlClient" - AssemblyName = "ByteFX.MySqlClient" - HintPath = "..\..\iBatisNet.bin\ByteFX.MySqlClient.dll" - /> - <Reference Name = "Core" Project = "{3150F3E8-9A04-4FED-B16F-CEA57756E934}" Package = "{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}" @@ -113,17 +93,32 @@ <Reference Name = "NUnitAspTest" AssemblyName = "NUnitAspTest" - HintPath = "..\..\NUnitAsp.bin\NUnitAspTest.dll" + HintPath = "..\..\local-cache\NUnitAsp\NUnitAspTest.dll" /> <Reference Name = "NUnitAsp" AssemblyName = "NUnitAsp" - HintPath = "..\..\NUnitAsp.bin\NUnitAsp.dll" + HintPath = "..\..\local-cache\NUnitAsp\NUnitAsp.dll" /> <Reference - Name = "Web" - Project = "{948EE344-D033-4358-88E8-77FDE080D93C}" - Package = "{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}" + Name = "Nexus.Core" + AssemblyName = "Nexus.Core" + HintPath = "..\..\local-cache\Nexus\Nexus.Core.dll" + /> + <Reference + Name = "Nexus.Test" + AssemblyName = "Nexus.Test" + HintPath = "..\..\local-cache\Nexus\Nexus.Test.dll" + /> + <Reference + Name = "Agility.Core" + AssemblyName = "Agility.Core" + HintPath = "..\..\local-cache\Agility\Agility.Core.dll" + /> + <Reference + Name = "Nexus.Web" + AssemblyName = "Nexus.Web" + HintPath = "..\..\local-cache\Nexus\Nexus.Web.dll" /> </References> </Build> Added: struts/sandbox/trunk/overdrive/PhoneBook/Web/Controls/Finder.ascx URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/PhoneBook/Web/Controls/Finder.ascx?rev=280030&view=auto ============================================================================== --- struts/sandbox/trunk/overdrive/PhoneBook/Web/Controls/Finder.ascx (added) +++ struts/sandbox/trunk/overdrive/PhoneBook/Web/Controls/Finder.ascx Sat Sep 10 12:18:01 2005 @@ -0,0 +1,24 @@ +<%@ Control Language="c#" AutoEventWireup="false" Codebehind="Finder.ascx.cs" Inherits="PhoneBook.Web.Controls.Finder" TargetSchema="http://schemas.microsoft.com/intellisense/ie5"%> +<table> + <tr> + <td colspan="6" > + <asp:Button ID="find" Runat="server"></asp:Button> + <INPUT onclick="javascript:window.print();" type="button" value="PRINT" name="print" id="print"> + </td> + <tr> + <td>Last Name</td> + <td>First Name</td> + <td>Extension</td> + <td>User</td> + <td>Hire Date</td> + <td>Hours</td> + </tr> + <tr> + <td><asp:DropDownList ID="last_name_list" Runat=server></asp:DropDownList></td> + <td><asp:DropDownList ID="first_name_list" Runat=server></asp:DropDownList></td> + <td><asp:DropDownList ID="extension_list" Runat=server></asp:DropDownList></td> + <td><asp:DropDownList ID="user_name_list" Runat=server></asp:DropDownList></td> + <td><asp:DropDownList ID="hired_list" Runat=server></asp:DropDownList></td> + <td><asp:DropDownList ID="hours_list" Runat=server></asp:DropDownList></td> + </tr> +</table> Added: struts/sandbox/trunk/overdrive/PhoneBook/Web/Controls/Finder.ascx.cs URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/PhoneBook/Web/Controls/Finder.ascx.cs?rev=280030&view=auto ============================================================================== --- struts/sandbox/trunk/overdrive/PhoneBook/Web/Controls/Finder.ascx.cs (added) +++ struts/sandbox/trunk/overdrive/PhoneBook/Web/Controls/Finder.ascx.cs Sat Sep 10 12:18:01 2005 @@ -0,0 +1,105 @@ +using System; +using System.Web.UI.WebControls; +using Nexus.Core.Helpers; +using Nexus.Web.Controls; +using PhoneBook.Core; +using PhoneBook.Web.Forms; + +namespace PhoneBook.Web.Controls +{ + public class Finder : ViewControl + { + + protected DropDownList last_name_list; + protected DropDownList first_name_list; + protected DropDownList extension_list; + protected DropDownList user_name_list; + protected DropDownList hired_list; + protected DropDownList hours_list; + protected Button find; + + /// <summary> + /// Fires when search criteria is input. + /// </summary> + public event EventHandler Click; + + private DropDownList[] FilterList () + { + DropDownList[] lists = {last_name_list, first_name_list, extension_list, user_name_list, hired_list, hours_list}; + return lists; + } + + private void Filter_Reset (DropDownList except) + { + int exceptIndex = 0; + if (except != null) exceptIndex = except.SelectedIndex; + foreach (DropDownList filter in FilterList ()) + { + filter.SelectedIndex = 0; + } + if (except != null) except.SelectedIndex = exceptIndex; + } + + private void Filter_Changed (object sender, EventArgs e) + { + IViewHelper helper = Catalog.GetHelperFor(App.ENTRY_LIST); + DropDownList list = sender as DropDownList; + string id = list.ID; + int v = id.LastIndexOf (helper.ListSuffix); + string key = id.Substring (0, v); + helper.Criteria [key] = list.SelectedValue; + Filter_Reset (list); + Click(this, new ViewArgs(helper)); + } + + public void Open () + { + IViewHelper h = this.ExecuteBind(App.DIRECTORY_VIEW); + bool ok = (h.IsNominal); + if (!ok) + Page_Error = h; + } + + private void find_Click (object sender, EventArgs e) + { + if (Click == null) return; + Filter_Reset (null); + IViewHelper helper = Read(App.DIRECTORY_VIEW); + Click(this, new ViewArgs(helper)); + } + + private void Page_Load(object sender, System.EventArgs e) + { + find.Text = Directory.msg_LIST_ALL_CMD; + find.Click += new EventHandler (find_Click); + + foreach (DropDownList filter in FilterList ()) + { + filter.AutoPostBack = true; + filter.SelectedIndexChanged += new EventHandler (Filter_Changed); + } + + Open(); + } + + #region Web Form Designer generated code + override protected void OnInit(EventArgs e) + { + // + // CODEGEN: This call is required by the ASP.NET Web Form Designer. + // + InitializeComponent(); + base.OnInit(e); + } + + /// <summary> + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// </summary> + private void InitializeComponent() + { + this.Load += new System.EventHandler(this.Page_Load); + } + #endregion + } +} Added: struts/sandbox/trunk/overdrive/PhoneBook/Web/Controls/Finder.ascx.resx URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/PhoneBook/Web/Controls/Finder.ascx.resx?rev=280030&view=auto ============================================================================== --- struts/sandbox/trunk/overdrive/PhoneBook/Web/Controls/Finder.ascx.resx (added) +++ struts/sandbox/trunk/overdrive/PhoneBook/Web/Controls/Finder.ascx.resx Sat Sep 10 12:18:01 2005 @@ -0,0 +1,42 @@ +<?xml version="1.0" encoding="utf-8" ?> +<root> + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> + <xsd:element name="root" msdata:IsDataSet="true"> + <xsd:complexType> + <xsd:choice maxOccurs="unbounded"> + <xsd:element name="data"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" /> + <xsd:attribute name="type" type="xsd:string" /> + <xsd:attribute name="mimetype" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="resheader"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" /> + </xsd:complexType> + </xsd:element> + </xsd:choice> + </xsd:complexType> + </xsd:element> + </xsd:schema> + <resheader name="ResMimeType"> + <value>text/microsoft-resx</value> + </resheader> + <resheader name="Version"> + <value>1.0.0.0</value> + </resheader> + <resheader name="Reader"> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <resheader name="Writer"> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> +</root> Added: struts/sandbox/trunk/overdrive/PhoneBook/Web/Controls/Lister.ascx URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/PhoneBook/Web/Controls/Lister.ascx?rev=280030&view=auto ============================================================================== --- struts/sandbox/trunk/overdrive/PhoneBook/Web/Controls/Lister.ascx (added) +++ struts/sandbox/trunk/overdrive/PhoneBook/Web/Controls/Lister.ascx Sat Sep 10 12:18:01 2005 @@ -0,0 +1,13 @@ +<%@ Control Language="c#" AutoEventWireup="false" Codebehind="Lister.ascx.cs" Inherits="PhoneBook.Web.Controls.Lister" TargetSchema="http://schemas.microsoft.com/intellisense/ie5"%> +<asp:DataGrid id="list" Runat="server" AutoGenerateColumns=False> + <HeaderStyle CssClass="HeaderStyle" BackColor="#CCCC99"></HeaderStyle> + <AlternatingItemStyle CssClass="AlternatingItemStyle" BackColor="#CCCC99"></AlternatingItemStyle> + <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> Added: struts/sandbox/trunk/overdrive/PhoneBook/Web/Controls/Lister.ascx.cs URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/PhoneBook/Web/Controls/Lister.ascx.cs?rev=280030&view=auto ============================================================================== --- struts/sandbox/trunk/overdrive/PhoneBook/Web/Controls/Lister.ascx.cs (added) +++ struts/sandbox/trunk/overdrive/PhoneBook/Web/Controls/Lister.ascx.cs Sat Sep 10 12:18:01 2005 @@ -0,0 +1,54 @@ +using System; +using System.Collections; +using System.Web.UI.WebControls; +using Nexus.Core.Helpers; +using Nexus.Web.Controls; +using PhoneBook.Core; + +namespace PhoneBook.Web.Controls +{ + public class Lister : ViewControl + { + + protected DataGrid list; + + public void Open(IDictionary criteria) + { + IViewHelper helper = ReadExecute(App.ENTRY_LIST, criteria); + bool ok = helper.IsNominal; + if (!ok) Page_Error = helper; + else + { + IList result = helper.Outcome; + list.DataSource = result; + list.DataBind (); + } + } + + private void Page_Load(object sender, System.EventArgs e) + { + if (IsPostBack) return; + Open(null); + } + + #region Web Form Designer generated code + override protected void OnInit(EventArgs e) + { + // + // CODEGEN: This call is required by the ASP.NET Web Form Designer. + // + InitializeComponent(); + base.OnInit(e); + } + + /// <summary> + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// </summary> + private void InitializeComponent() + { + this.Load += new System.EventHandler(this.Page_Load); + } + #endregion + } +} Added: struts/sandbox/trunk/overdrive/PhoneBook/Web/Controls/Lister.ascx.resx URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/PhoneBook/Web/Controls/Lister.ascx.resx?rev=280030&view=auto ============================================================================== --- struts/sandbox/trunk/overdrive/PhoneBook/Web/Controls/Lister.ascx.resx (added) +++ struts/sandbox/trunk/overdrive/PhoneBook/Web/Controls/Lister.ascx.resx Sat Sep 10 12:18:01 2005 @@ -0,0 +1,42 @@ +<?xml version="1.0" encoding="utf-8" ?> +<root> + <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> + <xsd:element name="root" msdata:IsDataSet="true"> + <xsd:complexType> + <xsd:choice maxOccurs="unbounded"> + <xsd:element name="data"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" /> + <xsd:attribute name="type" type="xsd:string" /> + <xsd:attribute name="mimetype" type="xsd:string" /> + </xsd:complexType> + </xsd:element> + <xsd:element name="resheader"> + <xsd:complexType> + <xsd:sequence> + <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> + </xsd:sequence> + <xsd:attribute name="name" type="xsd:string" use="required" /> + </xsd:complexType> + </xsd:element> + </xsd:choice> + </xsd:complexType> + </xsd:element> + </xsd:schema> + <resheader name="ResMimeType"> + <value>text/microsoft-resx</value> + </resheader> + <resheader name="Version"> + <value>1.0.0.0</value> + </resheader> + <resheader name="Reader"> + <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> + <resheader name="Writer"> + <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> + </resheader> +</root> 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=280030&r1=280029&r2=280030&view=diff ============================================================================== --- struts/sandbox/trunk/overdrive/PhoneBook/Web/Forms/Directory.aspx (original) +++ struts/sandbox/trunk/overdrive/PhoneBook/Web/Forms/Directory.aspx Sat Sep 10 12:18:01 2005 @@ -1,4 +1,7 @@ <%@ Page language="c#" Codebehind="Directory.aspx.cs" AutoEventWireup="true" Inherits="PhoneBook.Web.Forms.Directory" %> +<%@ Register TagPrefix="my" TagName="Finder" Src="../Controls/Finder.ascx" %> +<%@ Register TagPrefix="my" TagName="Lister" Src="../Controls/Lister.ascx" %> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" > <HTML> <HEAD> @@ -22,45 +25,9 @@ <!-- PROMPT --> <p>Select a filter to display fewer entries.</p> - <!-- FIND --> - <asp:Panel ID="pnlFind" Runat="server"> - <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"> - </td> - <tr> - <td>Last Name</td> - <td>First Name</td> - <td>Extension</td> - <td>User</td> - <td>Hire Date</td> - <td>Hours</td> - </tr><tr> - <td><asp:DropDownList ID="last_name_list" Runat=server></asp:DropDownList></td> - <td><asp:DropDownList ID="first_name_list" Runat=server></asp:DropDownList></td> - <td><asp:DropDownList ID="extension_list" Runat=server></asp:DropDownList></td> - <td><asp:DropDownList ID="user_name_list" Runat=server></asp:DropDownList></td> - <td><asp:DropDownList ID="hired_list" Runat=server></asp:DropDownList></td> - <td><asp:DropDownList ID="hours_list" Runat=server></asp:DropDownList></td> - </tr></table> - </asp:panel> + <my:Finder id="finder" Runat="server" OnClick="finder_Click"></my:Finder> - <!-- LIST --> - <asp:Panel ID="pnlList" Runat="server"> - <asp:DataGrid id="repList" Runat="server" AutoGenerateColumns=False> - <HeaderStyle CssClass="HeaderStyle" BackColor="#CCCC99"></HeaderStyle> - <AlternatingItemStyle CssClass="AlternatingItemStyle" BackColor="#CCCC99"></AlternatingItemStyle> - <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> - </asp:Panel> + <my:Lister id="lister" runat="server" OnClick="lister_Click"></my:Lister> </form> </body> 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=280030&r1=280029&r2=280030&view=diff ============================================================================== --- struts/sandbox/trunk/overdrive/PhoneBook/Web/Forms/Directory.aspx.cs (original) +++ struts/sandbox/trunk/overdrive/PhoneBook/Web/Forms/Directory.aspx.cs Sat Sep 10 12:18:01 2005 @@ -1,8 +1,10 @@ using System; -using System.Collections; using System.Web.UI; using System.Web.UI.WebControls; +using Nexus.Core; using Nexus.Core.Helpers; +using Nexus.Web.Controls; +using PhoneBook.Web.Controls; namespace PhoneBook.Web.Forms { @@ -14,7 +16,7 @@ { #region Messages - private const string msg_LIST_ALL_CMD = "SHOW ALL"; + public const string msg_LIST_ALL_CMD = "SHOW ALL"; #endregion @@ -35,137 +37,65 @@ } } - #endregion - - #region Helpers + private IRequestCatalog _Catalog; - private IViewHelper _FindHelper; /// <summary> - /// Display the filter lists. + /// Helper passed by an enclosing control (e.g. Page). /// </summary> - /// - public virtual IViewHelper FindHelper + /// <remarks><p> + /// Subclasses adding EventHandlers + /// should pass a reference to themselves with a ViewArgs instance, + /// encapsulating the Helper. + /// </p></remarks> + public virtual IRequestCatalog Catalog { - get { return _FindHelper; } - set { _FindHelper = value; } - } - - /// <summary> - /// Apply filter and display matching entries. - /// </summary> - /// - private IViewHelper _ListHelper; - public virtual IViewHelper ListHelper - { - get { return _ListHelper; } - set { _ListHelper = value; } + get { return _Catalog; } + set { _Catalog = value; } } #endregion - #region Find - - protected Panel pnlFind; - protected DropDownList last_name_list; - protected DropDownList first_name_list; - protected DropDownList extension_list; - protected DropDownList user_name_list; - protected DropDownList hired_list; - protected DropDownList hours_list; - protected Button cmdListAll; - - private DropDownList[] FilterList () - { - DropDownList[] lists = {last_name_list, first_name_list, extension_list, user_name_list, hired_list, hours_list}; - return lists; - } + #region Control Events - private void Find_Init () - { - cmdListAll.Text = msg_LIST_ALL_CMD; - cmdListAll.Click += new EventHandler (ListAll_Click); + protected Lister lister; + protected Finder finder; - foreach (DropDownList filter in FilterList ()) - { - filter.AutoPostBack = true; - filter.SelectedIndexChanged += new EventHandler (Filter_Changed); - } - } - - private void Filter_Reset (DropDownList except) + protected void finder_Click(object sender, EventArgs e) { - int exceptIndex = 0; - if (except != null) exceptIndex = except.SelectedIndex; - foreach (DropDownList filter in FilterList ()) - { - filter.SelectedIndex = 0; - } - if (except != null) except.SelectedIndex = exceptIndex; + ViewArgs a = e as ViewArgs; + IViewHelper helper = a.Helper; + lister.Open(helper.Criteria); } - private void Filter_Changed (object sender, EventArgs e) - { - DropDownList list = sender as DropDownList; - string id = list.ID; - int v = id.LastIndexOf (ListHelper.ListSuffix); - string key = id.Substring (0, v); - ListHelper.Criteria [key] = list.SelectedValue; - Filter_Reset (list); - List_Load (ListHelper); - } + #endregion - private void Find_Load () - { - IViewHelper h = FindHelper; - h.ExecuteBind (pnlFind.Controls); - bool ok = (h.IsNominal); - if (!ok) - Page_Error = h; - } + #region Page Events - private void ListAll_Click (object sender, EventArgs e) + private void View_Error(object sender, EventArgs e) { - Filter_Reset (null); - List_Load (ListHelper); + ViewArgs v = e as ViewArgs; + if (v==null) throw new ArgumentException("View_Error: !(e is ViewArgs)"); + IViewHelper helper = v.Helper; + if (helper != null) Page_Error = helper; + else throw new ArgumentException("View_Error: (e.helper==null)"); } - #endregion - - #region List - - protected Panel pnlList; - protected DataGrid repList; - - private void List_Load (IViewHelper helper) + private void View_Init(ViewControl c) { - helper.Execute (); - bool ok = helper.IsNominal; - if (!ok) Page_Error = helper; - else - { - IList result = helper.Outcome; - repList.DataSource = result; - repList.DataBind (); - } + c.View_Error += new EventHandler(View_Error); + c.Catalog = this.Catalog; // ISSUE: Why isn't control injection working? } - #endregion - - #region Page Events - protected void Page_Init () { pnlError.Visible = false; - Find_Init (); + View_Init(finder); + View_Init(lister); } protected void Page_Load (object sender, EventArgs e) { - if (!IsPostBack) - { - Find_Load (); - List_Load (ListHelper); - } + // Put user code to initialize the page here } #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=280030&r1=280029&r2=280030&view=diff ============================================================================== --- struts/sandbox/trunk/overdrive/PhoneBook/Web/Forms/Web.config (original) +++ struts/sandbox/trunk/overdrive/PhoneBook/Web/Forms/Web.config Sat Sep 10 12:18:01 2005 @@ -16,14 +16,25 @@ <objects xmlns="http://www.springframework.net"> <object id="Directory" type="Directory.aspx"> - <property name="FindHelper"><ref object="directory_find_helper"/></property> - <property name="ListHelper"><ref object="directory_list_helper"/></property> + <property name="Catalog"> + <ref object="Catalog"/> + </property> </object> <object id="Directory2" type="Directory2.aspx"> <property name="GridHelper"><ref object="directory_grid_helper"/></property> <property name="UserHelper"><ref object="directory_entry_helper"/></property> </object> + + <!-- User Controls --> + + <object id="ViewControl" abstract="true"> + <property name="Catalog"> + <ref object="Catalog"/> + </property> + </object> + <object id="PhoneBook.Web.Controls.Finder" abstract="true" parent="ViewControl"/> + <object id="PhoneBook.Web.Controls.Lister" abstract="true" parent="ViewControl"/> </objects> 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=280030&r1=280029&r2=280030&view=diff ============================================================================== --- struts/sandbox/trunk/overdrive/PhoneBook/Web/Resources/Command/AppConfig.xml (original) +++ struts/sandbox/trunk/overdrive/PhoneBook/Web/Resources/Command/AppConfig.xml Sat Sep 10 12:18:01 2005 @@ -161,7 +161,7 @@ <property name="FieldTable"><ref object="FieldTable"/></property> <property name="PreOp"><ref object="pre-op"/></property> <property name="PostOp"><ref object="post-op"/></property> - </object> + <property name="ViewHelper"><object type="Nexus.Web.WebHelper" singleton="false"/></property> + </object> - </objects> Modified: struts/sandbox/trunk/overdrive/PhoneBook/Web/Web.csproj URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/PhoneBook/Web/Web.csproj?rev=280030&r1=280029&r2=280030&view=diff ============================================================================== --- struts/sandbox/trunk/overdrive/PhoneBook/Web/Web.csproj (original) +++ struts/sandbox/trunk/overdrive/PhoneBook/Web/Web.csproj Sat Sep 10 12:18:01 2005 @@ -16,7 +16,7 @@ DefaultTargetSchema = "IE50" DelaySign = "false" OutputType = "Library" - PreBuildEvent = "" + PreBuildEvent = "$(SolutionDir)prebuild $(SolutionDir)" PostBuildEvent = "" RootNamespace = "PhoneBook.Web" RunPostBuildEvent = "OnBuildSuccess" @@ -90,44 +90,44 @@ HintPath = "..\..\..\..\..\..\..\WINDOWS\Microsoft.NET\Framework\v1.1.4322\System.XML.dll" /> <Reference + Name = "Nexus.Core" + AssemblyName = "Nexus.Core" + HintPath = "..\..\local-cache\Nexus\Nexus.Core.dll" + /> + <Reference Name = "Core" Project = "{3150F3E8-9A04-4FED-B16F-CEA57756E934}" Package = "{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}" /> <Reference - Name = "Agility.Core" - AssemblyName = "Agility.Core" - HintPath = "..\..\Agility\Core\bin\Debug\Agility.Core.dll" - /> - <Reference - Name = "Nexus.Core" - AssemblyName = "Nexus.Core" - HintPath = "..\..\Nexus\Core\bin\Debug\Nexus.Core.dll" + Name = "Nexus.Web" + AssemblyName = "Nexus.Web" + HintPath = "..\..\local-cache\Nexus\Nexus.Web.dll" /> <Reference Name = "Spring.Core" AssemblyName = "Spring.Core" - HintPath = "..\..\SpringNet.bin\Spring.Core.dll" + HintPath = "..\..\local-cache\SpringNet\Spring.Core.dll" /> <Reference Name = "Spring.Web" AssemblyName = "Spring.Web" - HintPath = "..\..\SpringNet.bin\Spring.Web.dll" + HintPath = "..\..\local-cache\SpringNet\Spring.Web.dll" /> <Reference - Name = "Nexus.Extras" - AssemblyName = "Nexus.Extras" - HintPath = "..\..\Nexus\Extras\bin\Debug\Nexus.Extras.dll" + Name = "ByteFX.MySqlClient" + AssemblyName = "ByteFX.MySqlClient" + HintPath = "..\..\local-cache\iBatisNet\ByteFX.MySqlClient.dll" /> <Reference - Name = "Nexus.Web" - AssemblyName = "Nexus.Web" - HintPath = "..\..\Nexus\Web\bin\Nexus.Web.dll" + Name = "Agility.Core" + AssemblyName = "Agility.Core" + HintPath = "..\..\local-cache\Agility\Agility.Core.dll" /> <Reference - Name = "ByteFX.MySqlClient" - AssemblyName = "ByteFX.MySqlClient" - HintPath = "..\..\iBatisNet.bin\ByteFX.MySqlClient.dll" + Name = "Nexus.Extras" + AssemblyName = "Nexus.Extras" + HintPath = "..\..\local-cache\Nexus\Nexus.Extras.dll" /> </References> </Build> @@ -182,6 +182,38 @@ <File RelPath = "Web.config" BuildAction = "Content" + /> + <File + RelPath = "Controls\Finder.ascx" + SubType = "UserControl" + BuildAction = "Content" + /> + <File + RelPath = "Controls\Finder.ascx.cs" + DependentUpon = "Finder.ascx" + SubType = "ASPXCodeBehind" + BuildAction = "Compile" + /> + <File + RelPath = "Controls\Finder.ascx.resx" + DependentUpon = "Finder.ascx.cs" + BuildAction = "EmbeddedResource" + /> + <File + RelPath = "Controls\Lister.ascx" + SubType = "UserControl" + BuildAction = "Content" + /> + <File + RelPath = "Controls\Lister.ascx.cs" + DependentUpon = "Lister.ascx" + SubType = "ASPXCodeBehind" + BuildAction = "Compile" + /> + <File + RelPath = "Controls\Lister.ascx.resx" + DependentUpon = "Lister.ascx.cs" + BuildAction = "EmbeddedResource" /> <File RelPath = "Forms\default.css" Modified: struts/sandbox/trunk/overdrive/PhoneBook/Web/default.htm URL: http://svn.apache.org/viewcvs/struts/sandbox/trunk/overdrive/PhoneBook/Web/default.htm?rev=280030&r1=280029&r2=280030&view=diff ============================================================================== --- struts/sandbox/trunk/overdrive/PhoneBook/Web/default.htm (original) +++ struts/sandbox/trunk/overdrive/PhoneBook/Web/default.htm Sat Sep 10 12:18:01 2005 @@ -1,7 +1,7 @@ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> - <META HTTP-EQUIV="Refresh" CONTENT="0;URL=./Forms/Directory2.aspx"> + <META HTTP-EQUIV="Refresh" CONTENT="0;URL=./Forms/Directory.aspx"> </head> <body> <p>Loading...</p> --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]