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]

Reply via email to