Update of /cvsroot/springnet/Spring.Net/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web
In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv7755
Modified Files:
CustomerEditor.aspx.cs CustomerList.aspx.cs Dao.xml Web.config
Web.xml
Added Files:
CustomerOrders.aspx CustomerOrders.aspx.cs
Log Message:
extended northwind sample with handling lazy-loading for session-stored nhibernate proxies
Index: Dao.xml
===================================================================
RCS file: /cvsroot/springnet/Spring.Net/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web/Dao.xml,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** Dao.xml 7 Aug 2007 19:49:57 -0000 1.2
--- Dao.xml 29 Sep 2007 21:32:08 -0000 1.3
***************
*** 25,29 ****
-->
! <object id="SessionFactory" type="Spring.Data.NHibernate.LocalSessionFactoryObject, Spring.Data.NHibernate">
<property name="DbProvider" ref="DbProvider"/>
<property name="MappingAssemblies">
--- 25,29 ----
-->
! <object id="NHibernateSessionFactory" type="Spring.Data.NHibernate.LocalSessionFactoryObject, Spring.Data.NHibernate">
<property name="DbProvider" ref="DbProvider"/>
<property name="MappingAssemblies">
***************
*** 54,63 ****
<property name="DbProvider" ref="DbProvider"/>
! <property name="SessionFactory" ref="SessionFactory"/>
</object>
<object id="HibernateTemplate" type="Spring.Data.NHibernate.HibernateTemplate">
! <property name="SessionFactory" ref="SessionFactory" />
<property name="TemplateFlushMode" value="Auto" />
<property name="CacheQueries" value="true" />
--- 54,63 ----
<property name="DbProvider" ref="DbProvider"/>
! <property name="SessionFactory" ref="NHibernateSessionFactory"/>
</object>
<object id="HibernateTemplate" type="Spring.Data.NHibernate.HibernateTemplate">
! <property name="SessionFactory" ref="NHibernateSessionFactory" />
<property name="TemplateFlushMode" value="Auto" />
<property name="CacheQueries" value="true" />
--- NEW FILE: CustomerOrders.aspx ---
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="CustomerOrders.aspx.cs" Inherits="CustomerOrders" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:DataGrid id="customerOrders" runat="server"
AllowPaging="false"
AllowSorting="false"
BorderColor="black"
BorderWidth="1"
CellPadding="3"
AutoGenerateColumns="false"
ShowFooter="true"
>
<Columns>
<asp:BoundColumn HeaderText="OrderID" DataField="ID" />
<asp:BoundColumn HeaderText="OrderDate" DataField="OrderDate" />
<asp:BoundColumn HeaderText="ShippedDate" DataField="ShippedDate"/>
</Columns>
</asp:DataGrid>
</div>
</form>
</body>
</html>
--- NEW FILE: CustomerOrders.aspx.cs ---
using System;
using System.Collections;
using System.Web.UI.WebControls;
using Spring.Northwind.Domain;
public partial class CustomerOrders:Spring.Web.UI.Page
{
private ICustomerEditController customerEditController;
public ICustomerEditController CustomerEditController
{
set { this.customerEditController = value; }
}
public Customer SelectedCustomer
{
get
{
return this.customerEditController.CurrentCustomer;
}
}
public CustomerOrders()
{
this.InitializeControls+=new EventHandler(Page_InitializeControls);
this.DataBound+=new EventHandler(Page_DataBound);
this.DataUnbound+=new EventHandler(Page_DataUnbound);
}
override protected void InitializeDataBindings()
{
base.InitializeDataBindings();
// do the "one time" setup for databinding
}
private void Page_DataBound(object sender, EventArgs e)
{
// perform custom tasks for binding data from model to the form
}
private void Page_DataUnbound(object sender, EventArgs e)
{
// perform custom tasks for unbinding data from form to the model
}
private void Page_InitializeControls(object sender, EventArgs e)
{
// create/initialize controls here
customerOrders.DataSource = SelectedCustomer.Orders;
if (!IsPostBack)
{
customerOrders.DataBind();
}
else
{
customerOrders.ItemCreated+=new DataGridItemEventHandler( this.CustomerList_ItemCreated );
}
}
private void CustomerList_ItemCreated(object sender, DataGridItemEventArgs e)
{
if(e.Item.DataSetIndex > -1)
{
e.Item.DataItem = ((IList)customerOrders.DataSource)[e.Item.DataSetIndex];
}
}
}
Index: Web.xml
===================================================================
RCS file: /cvsroot/springnet/Spring.Net/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web/Web.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** Web.xml 1 Jun 2007 02:54:44 -0000 1.1
--- Web.xml 29 Sep 2007 21:32:09 -0000 1.2
***************
*** 2,28 ****
<objects xmlns="http://www.springframework.net">
! <!-- Referenced by main application context configuration file -->
! <description>
! The Northwind web layer definitions
! </description>
! <object type="Default.aspx">
! <property name="FulfillmentService" ref="FulfillmentService" />
<property name="CustomerDao" ref="CustomerDao" />
! </object>
! <object type="CustomerList.aspx">
! <property name="CustomerDao" ref="CustomerDao" />
! <property name="Results">
! <dictionary>
! <entry key="EditCustomer" value="redirect:CustomerEditor.aspx" />
! </dictionary>
! </property>
! </object>
! <object type="CustomerEditor.aspx">
! <property name="CustomerDao" ref="CustomerDao" />
! </object>
</objects>
--- 2,39 ----
<objects xmlns="http://www.springframework.net">
! <!-- Referenced by main application context configuration file -->
! <description>
! The Northwind web layer definitions
! </description>
! <object name="CustomerEditController" type="NHibernateCustomerEditController" scope="session">
! <constructor-arg name="sessionFactory" ref="NHibernateSessionFactory"/>
! </object>
!
! <object type="Default.aspx">
! <property name="FulfillmentService" ref="FulfillmentService" />
<property name="CustomerDao" ref="CustomerDao" />
! </object>
! <object name="CustomerEditPage" abstract="true">
! <property name="CustomerEditController" ref="CustomerEditController" />
! </object>
!
! <object type="CustomerList.aspx" parent="CustomerEditPage">
! <property name="CustomerDao" ref="CustomerDao" />
! <property name="Results">
! <dictionary>
! <entry key="EditCustomer" value="redirect:CustomerEditor.aspx" />
! <entry key="ViewOrders" value="redirect:CustomerOrders.aspx" />
! </dictionary>
! </property>
! </object>
! <object type="CustomerEditor.aspx" parent="CustomerEditPage">
! <property name="CustomerDao" ref="CustomerDao" />
! </object>
!
! <object type="CustomerOrders.aspx" parent="CustomerEditPage" />
</objects>
Index: CustomerList.aspx.cs
===================================================================
RCS file: /cvsroot/springnet/Spring.Net/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web/CustomerList.aspx.cs,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** CustomerList.aspx.cs 20 Jul 2007 16:53:33 -0000 1.2
--- CustomerList.aspx.cs 29 Sep 2007 21:32:08 -0000 1.3
***************
*** 7,10 ****
--- 7,11 ----
public partial class CustomerList : Spring.Web.UI.Page
{
+ private ICustomerEditController customerEditController;
private ICustomerDao customerDao;
***************
*** 14,17 ****
--- 15,23 ----
}
+ public ICustomerEditController CustomerEditController
+ {
+ set { this.customerEditController = value; }
+ }
+
public Customer SelectedCustomer
{
***************
*** 75,79 ****
case "EditCustomer":
customerList.SelectedIndex = e.Item.ItemIndex;
! CustomerEditor.Edit(this.SelectedCustomer);
SetResult(e.CommandName);
break;
--- 81,85 ----
case "EditCustomer":
customerList.SelectedIndex = e.Item.ItemIndex;
! customerEditController.EditCustomer(this.SelectedCustomer);
SetResult(e.CommandName);
break;
Index: CustomerEditor.aspx.cs
===================================================================
RCS file: /cvsroot/springnet/Spring.Net/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web/CustomerEditor.aspx.cs,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** CustomerEditor.aspx.cs 1 Jun 2007 02:54:44 -0000 1.1
--- CustomerEditor.aspx.cs 29 Sep 2007 21:32:08 -0000 1.2
***************
*** 7,10 ****
--- 7,11 ----
public partial class CustomerEditor : Page
{
+ private ICustomerEditController customerEditController;
private ICustomerDao customerDao;
***************
*** 14,29 ****
}
public Customer CurrentCustomer
{
get
{
! return (Customer) Session[typeof(CustomerEditor).FullName + ".Customer"];
}
}
! public static void Edit( Customer customer )
! {
! HttpContext.Current.Session[typeof(CustomerEditor).FullName + ".Customer"] = customer;
! }
public CustomerEditor()
--- 15,36 ----
}
+ public ICustomerEditController CustomerEditController
+ {
+ set { this.customerEditController = value; }
+ }
+
public Customer CurrentCustomer
{
get
{
! //return (Customer) Session[typeof(CustomerEditor).FullName + ".Customer"];
! return customerEditController.CurrentCustomer;
}
}
! // public static void Edit( Customer customer )
! // {
! // HttpContext.Current.Session[typeof(CustomerEditor).FullName + ".Customer"] = customer;
! // }
public CustomerEditor()
Index: Web.config
===================================================================
RCS file: /cvsroot/springnet/Spring.Net/examples/Spring/Spring.Data.NHibernate.Northwind/src/Spring.Northwind.Web/Web.config,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** Web.config 8 Aug 2007 03:13:29 -0000 1.5
--- Web.config 29 Sep 2007 21:32:08 -0000 1.6
***************
*** 49,53 ****
</databaseSettings>
<appSettings>
! <add key="Spring.Data.NHibernate.Support.OpenSessionInViewModule.SessionFactoryObjectName" value="SessionFactory"/>
</appSettings>
<connectionStrings/>
--- 49,53 ----
</databaseSettings>
<appSettings>
! <add key="Spring.Data.NHibernate.Support.OpenSessionInViewModule.SessionFactoryObjectName" value="NHibernateSessionFactory"/>
</appSettings>
<connectionStrings/>
|