CVS: Tapestry/examples/Vlib/context/WEB-INF Matches.page,NONE,1.1.2.1 EditProfile.page,NONE,1.1.2.1 Register.page,NONE,1.1.2.1 ConfirmBookDelete.page,NONE,1.1.2.1 ViewPerson.page,NONE,1.1.2.1 web.xml,NONE,1.1.2.1 BorrowedBooks.page,NONE,1.1.2.1 ViewBook.page,NONE,1.1.2.1 Home.page,NONE,1.1.2.1 MyLibrary.page,NONE,1.1.2.1 ApplicationUnavailable.page,NONE,1.1.2.1 EditBook.page,NONE,1.1.2.1 NewBook.page,NONE,1.1.2.1 Login.page,NONE,1.1.2.1
Howard Lewis Ship <[email protected]>
| Newsgroups | gmane.comp.java.tapestry.cvs |
|---|---|
| Message-ID | <[email protected]> |
Update of /cvsroot/tapestry/Tapestry/examples/Vlib/context/WEB-INF
In directory sc8-pr-cvs1:/tmp/cvs-serv29950/examples/Vlib/context/WEB-INF
Added Files:
Tag: hship-2-3
Matches.page EditProfile.page Register.page
ConfirmBookDelete.page ViewPerson.page web.xml
BorrowedBooks.page ViewBook.page Home.page MyLibrary.page
ApplicationUnavailable.page EditBook.page NewBook.page
Login.page
Log Message:
Reorganize the Vlib example to move templates into context, and specifications into WEB-INF.
--- NEW FILE: Matches.page ---
<?xml version="1.0" encoding="UTF-8"?>
<!-- $Id: Matches.page,v 1.1.2.1 2002/12/16 19:12:11 hship Exp $ -->
<!DOCTYPE page-specification PUBLIC
"-//Howard Lewis Ship//Tapestry Specification 1.3//EN"
"http://tapestry.sf.net/dtd/Tapestry_1_3.dtd">
<page-specification class="net.sf.tapestry.vlib.pages.Matches">
<component id="border" type="Border">
<static-binding name="title">Matching Books</static-binding>
</component>
<component id="insertMatchCount" type="Insert">
<binding name="value" expression="components.browser.resultCount"/>
</component>
<component id="browser" type="Browser">
<binding name="query" expression="bookQuery"/>
</component>
<component id="e" type="Foreach">
<binding name="source" expression="components.browser.pageResults"/>
<binding name="value" expression="currentMatch"/>
<static-binding name="element">tr</static-binding>
</component>
<component id="bookLink" type="BookLink">
<binding name="book" expression="currentMatch"/>
</component>
<component id="insertAuthor" type="Insert">
<binding name="value" expression="currentMatch.author"/>
</component>
<component id="insertPublisherName" type="Insert">
<binding name="value" expression="currentMatch.publisherName"/>
</component>
<component id="ownerLink" type="PersonLink">
<binding name="primaryKey" expression="currentMatch.ownerPrimaryKey"/>
<binding name="name" expression="currentMatch.ownerName"/>
<static-binding name="class">clsDataBlue</static-binding>
</component>
<component id="holderLink" type="PersonLink">
<binding name="primaryKey" expression="currentMatch.holderPrimaryKey"/>
<binding name="name" expression="currentMatch.holderName"/>
<binding name="omit" expression="omitHolderLink"/>
<static-binding name="class">clsDataBlue</static-binding>
</component>
<component id="borrow" type="Borrow">
<binding name="book" expression="currentMatch"/>
</component>
</page-specification>
--- NEW FILE: EditProfile.page ---
<?xml version="1.0" encoding="UTF-8"?>
<!-- $Id: EditProfile.page,v 1.1.2.1 2002/12/16 19:12:13 hship Exp $ -->
<!DOCTYPE page-specification PUBLIC
"-//Howard Lewis Ship//Tapestry Specification 1.3//EN"
"http://tapestry.sf.net/dtd/Tapestry_1_3.dtd">
<page-specification class="net.sf.tapestry.vlib.pages.EditProfile">
<property name="page-type">library</property>
<bean name="validator" class="net.sf.tapestry.valid.StringValidator" lifecycle="page">
<set-property name="required" expression="true"/>
<set-property name="clientScriptingEnabled" expression="true"/>
</bean>
<component id="border" type="Border">
<static-binding name="title">Edit Profile</static-binding>
</component>
<component id="showError" type="ShowError"/>
<component id="showValidationError" type="ShowValidationError">
<binding name="delegate" expression="validationDelegate"/>
</component>
<component id="form" type="Form">
<binding name="listener" expression="listeners.updateProfile"/>
<binding name="delegate" expression="validationDelegate"/>
</component>
<component id="inputFirstName" type="TextField">
<binding name="displayWidth" expression="30"/>
<binding name="maximumLength" expression="30"/>
<binding name="value" expression="attributes.firstName"/>
</component>
<component id="labelLastName" type="FieldLabel">
<binding name="field" expression="components.inputLastName"/>
</component>
<component id="inputLastName" type="ValidField">
<binding name="value" expression="attributes.lastName"/>
<static-binding name="displayName">Last Name</static-binding>
<binding name="displayWidth" expression="30"/>
<binding name="maximumLength" expression="30"/>
<binding name="validator" expression="beans.validator"/>
</component>
<component id="labelEmail" type="FieldLabel">
<binding name="field" expression="components.inputEmail"/>
</component>
<component id="inputEmail" type="ValidField">
<binding name="value" expression="attributes.email"/>
<static-binding name="displayName">E-Mail</static-binding>
<binding name="displayWidth" expression="30"/>
<binding name="maximumLength" expression="60"/>
<binding name="validator" expression="beans.validator"/>
</component>
<component id="labelPassword1" type="FieldLabel">
<binding name="field" expression="components.inputPassword1"/>
</component>
<component id="inputPassword1" type="ValidField">
<binding name="value" expression="password1"/>
<static-binding name="displayName">Password</static-binding>
<binding name="displayWidth" expression="20"/>
<binding name="maximumLength" expression="20"/>
<binding name="validator" expression="@net.sf.tapestry.valid.StringValidator@OPTIONAL"/>
<binding name="hidden" expression="true"/>
</component>
<component id="labelPassword2" type="FieldLabel">
<binding name="field" expression="components.inputPassword2"/>
</component>
<component id="inputPassword2" type="ValidField">
<binding name="value" expression="password2"/>
<static-binding name="displayName">Password (again)</static-binding>
<binding name="displayWidth" expression="20"/>
<binding name="maximumLength" expression="20"/>
<binding name="validator" expression="@net.sf.tapestry.valid.StringValidator@OPTIONAL"/>
<binding name="hidden" expression="true"/>
</component>
</page-specification>
--- NEW FILE: Register.page ---
<?xml version="1.0" encoding="UTF-8"?>
<!-- $Id: Register.page,v 1.1.2.1 2002/12/16 19:12:13 hship Exp $ -->
<!DOCTYPE page-specification PUBLIC
"-//Howard Lewis Ship//Tapestry Specification 1.3//EN"
"http://tapestry.sf.net/dtd/Tapestry_1_3.dtd">
<page-specification class="net.sf.tapestry.vlib.pages.Register">
<property name="page-type">login</property>
<bean name="validator" class="net.sf.tapestry.valid.StringValidator" lifecycle="page">
<set-property name="required" expression="true"/>
<set-property name="clientScriptingEnabled" expression="true"/>
</bean>
<component id="border" type="Border">
<static-binding name="title">Register</static-binding>
</component>
<component id="showError" type="ShowError"/>
<component id="showValidationError" type="ShowValidationError">
<binding name="delegate" expression="validationDelegate"/>
</component>
<component id="form" type="Form">
<binding name="listener" expression="listeners.attemptRegister"/>
<binding name="delegate" expression="validationDelegate"/>
<binding name="stateful" expression="false"/>
</component>
<component id="inputFirstName" type="TextField">
<binding name="displayWidth" expression="30"/>
<binding name="maximumLength" expression="30"/>
<binding name="value" expression="firstName"/>
</component>
<component id="labelLastName" type="FieldLabel">
<binding name="field" expression="components.inputLastName"/>
</component>
<component id="inputLastName" type="ValidField">
<binding name="value" expression="lastName"/>
<binding name="displayWidth" expression="30"/>
<binding name="maximumLength" expression="30"/>
<static-binding name="displayName">Last Name</static-binding>
<binding name="validator" expression="beans.validator"/>
</component>
<component id="labelEmail" type="FieldLabel">
<binding name="field" expression="components.inputEmail"/>
</component>
<component id="inputEmail" type="ValidField">
<binding name="value" expression="email"/>
<binding name="validator" expression="beans.validator"/>
<binding name="displayWidth" expression="30"/>
<binding name="maximumLength" expression="60"/>
<static-binding name="displayName">E-Mail</static-binding>
</component>
<component id="labelPassword1" type="FieldLabel">
<binding name="field" expression="components.inputPassword1"/>
</component>
<component id="inputPassword1" type="ValidField">
<binding name="value" expression="password1"/>
<binding name="displayWidth" expression="20"/>
<binding name="maximumLength" expression="20"/>
<static-binding name="displayName">Password</static-binding>
<binding name="validator" expression="beans.validator"/>
<binding name="hidden" expression="true"/>
</component>
<component id="labelPassword2" type="FieldLabel">
<binding name="field" expression="components.inputPassword2"/>
</component>
<component id="inputPassword2" type="ValidField">
<binding name="value" expression="password2"/>
<binding name="displayWidth" expression="20"/>
<binding name="maximumLength" expression="20"/>
<static-binding name="displayName">Password (again)</static-binding>
<binding name="validator" expression="beans.validator"/>
<binding name="hidden" expression="true"/>
</component>
</page-specification>
--- NEW FILE: ConfirmBookDelete.page ---
<?xml version="1.0" encoding="UTF-8"?>
<!-- $Id: ConfirmBookDelete.page,v 1.1.2.1 2002/12/16 19:12:13 hship Exp $ -->
<!DOCTYPE page-specification PUBLIC
"-//Howard Lewis Ship//Tapestry Specification 1.3//EN"
"http://tapestry.sf.net/dtd/Tapestry_1_3.dtd">
<page-specification class="net.sf.tapestry.vlib.pages.ConfirmBookDelete">
<property name="page-type">library</property>
<component id="border" type="Border">
<static-binding name="title">Delete Book</static-binding>
</component>
<component id="insertBookTitle" type="Insert">
<binding name="value" expression="bookTitle"/>
</component>
<component id="yes" type="DirectLink">
<binding name="listener" expression="listeners.deleteBook"/>
<binding name="parameters" expression="bookPrimaryKey"/>
</component>
<component id="no" type="PageLink">
<static-binding name="page">MyLibrary</static-binding>
</component>
</page-specification>
--- NEW FILE: ViewPerson.page ---
<?xml version="1.0" encoding="UTF-8"?>
<!-- $Id: ViewPerson.page,v 1.1.2.1 2002/12/16 19:12:13 hship Exp $ -->
<!DOCTYPE page-specification PUBLIC
"-//Howard Lewis Ship//Tapestry Specification 1.3//EN"
"http://tapestry.sf.net/dtd/Tapestry_1_3.dtd">
<page-specification class="net.sf.tapestry.vlib.pages.ViewPerson">
<property name="page-type">search</property>
<component id="border" type="Border">
<static-binding name="title">Book Inventory</static-binding>
<binding name="subtitle" expression="person.naturalName"/>
</component>
<component id="insertName" type="Insert">
<binding name="value" expression="person.naturalName"/>
</component>
<component id="emailLink" type="Any">
<static-binding name="element">a</static-binding>
<binding name="href" expression="emailURL"/>
</component>
<component id="insertEmail" type="Insert">
<binding name="value" expression="person.email"/>
</component>
<component id="insertCount" type="Insert">
<binding name="value" expression="components.browser.resultCount"/>
</component>
<component id="ifOwnsNoBooks" type="Conditional">
<binding name="condition" expression="components.browser.resultCount <= 0"/>
</component>
<component id="ifOwnsBooks" type="Conditional">
<binding name="condition" expression="components.browser.resultCount > 0"/>
</component>
<component id="browser" type="Browser">
<binding name="query" expression="query"/>
</component>
<component id="e" type="Foreach">
<binding name="source" expression="components.browser.pageResults"/>
<binding name="value" expression="currentMatch"/>
<static-binding name="element">tr</static-binding>
</component>
<component id="bookLink" type="BookLink">
<binding name="book" expression="currentMatch"/>
</component>
<component id="insertAuthor" type="Insert">
<binding name="value" expression="currentMatch.author"/>
</component>
<component id="insertPublisherName" type="Insert">
<binding name="value" expression="currentMatch.publisherName"/>
</component>
<component id="holderLink" type="PersonLink">
<binding name="primaryKey" expression="currentMatch.holderPrimaryKey"/>
<binding name="name" expression="currentMatch.holderName"/>
<static-binding name="class">clsDataBlue</static-binding>
<binding name="omit" expression="omitHolderLink"/>
</component>
<component id="borrow" type="Borrow">
<binding name="book" expression="currentMatch"/>
</component>
</page-specification>
--- NEW FILE: web.xml ---
<?xml version="1.0"?>
<!-- $Id: web.xml,v 1.1.2.1 2002/12/16 19:12:13 hship Exp $ -->
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
"http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
<web-app>
<display-name>Tapestry Virtual Library Demo</display-name>
<servlet>
<servlet-name>vlib</servlet-name>
<servlet-class>net.sf.tapestry.ApplicationServlet</servlet-class>
<init-param>
<param-name>net.sf.tapestry.application-specification</param-name>
<param-value>/net/sf/tapestry/vlib/Vlib.application</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
<!-- The single mapping used for the Virtual Library application -->
<servlet-mapping>
<servlet-name>vlib</servlet-name>
<url-pattern>/app</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>15</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
</web-app>
--- NEW FILE: BorrowedBooks.page ---
<?xml version="1.0" encoding="UTF-8"?>
<!-- $Id: BorrowedBooks.page,v 1.1.2.1 2002/12/16 19:12:13 hship Exp $ -->
<!DOCTYPE page-specification PUBLIC
"-//Howard Lewis Ship//Tapestry Specification 1.3//EN"
"http://tapestry.sf.net/dtd/Tapestry_1_3.dtd">
<page-specification class="net.sf.tapestry.vlib.pages.BorrowedBooks">
<property name="page-type">library</property>
<component id="border" type="Border">
<static-binding name="title">Borrowed Books</static-binding>
</component>
<component id="showError" type="ShowError"/>
<component id="showMessage" type="ShowMessage"/>
<component id="ifNoBooks" type="Conditional">
<binding name="condition" expression="components.browser.resultCount"/>
<field-binding name="invert" field-name="Boolean.TRUE"/>
</component>
<component id="ifBooks" type="Conditional">
<binding name="condition" expression="components.browser.resultCount"/>
</component>
<component id="browser" type="Browser">
<binding name="query" expression="borrowedQuery"/>
</component>
<component id="insertResultCount" type="Insert">
<binding name="value" expression="components.browser.resultCount"/>
</component>
<component id="e" type="Foreach">
<binding name="source" expression="components.browser.pageResults"/>
<binding name="value" expression="currentBook"/>
<static-binding name="element">tr</static-binding>
</component>
<component id="bookLink" type="BookLink">
<binding name="book" expression="currentBook"/>
</component>
<component id="insertAuthor" type="Insert">
<binding name="value" expression="currentBook.author"/>
</component>
<component id="insertPublisher" type="Insert">
<binding name="value" expression="currentBook.publisherName"/>
</component>
<component id="ownerLink" type="PersonLink">
<binding name="name" expression="currentBook.ownerName"/>
<binding name="primaryKey" expression="currentBook.ownerPrimaryKey"/>
<static-binding name="class">clsDataBlue</static-binding>
</component>
<component id="return" type="DirectLink">
<binding name="parameters" expression="currentBook.primaryKey"/>
<binding name="listener" expression="listeners.returnBook"/>
</component>
</page-specification>
--- NEW FILE: ViewBook.page ---
<?xml version="1.0" encoding="UTF-8"?>
<!-- $Id: ViewBook.page,v 1.1.2.1 2002/12/16 19:12:14 hship Exp $ -->
<!DOCTYPE page-specification PUBLIC
"-//Howard Lewis Ship//Tapestry Specification 1.3//EN"
"http://tapestry.sf.net/dtd/Tapestry_1_3.dtd">
<page-specification class="net.sf.tapestry.vlib.pages.ViewBook">
<component id="border" type="Border">
<static-binding name="title">View Book</static-binding>
<binding name="subtitle" expression="book.title"/>
</component>
<component id="insertTitle" type="Insert">
<binding name="value" expression="book.title"/>
</component>
<component id="insertAuthor" type="Insert">
<binding name="value" expression="book.author"/>
</component>
<component id="insertPublisherName" type="Insert">
<binding name="value" expression="book.publisherName"/>
</component>
<component id="insertISBN" type="Insert">
<binding name="value" expression="book.ISBN"/>
</component>
<component id="ownerLink" type="PersonLink">
<binding name="primaryKey" expression="book.ownerPrimaryKey"/>
<binding name="name" expression="book.ownerName"/>
</component>
<component id="insertDateAdded" type="Insert">
<binding name="value" expression="book.dateAdded"/>
<binding name="format" expression="dateFormat"/>
</component>
<component id="insertDescription" type="InsertText">
<binding name="value" expression="book.description"/>
</component>
<component id="ifShowHolder" type="Conditional">
<binding name="condition" expression="showHolder"/>
</component>
<component id="holderLink" type="PersonLink">
<binding name="primaryKey" expression="book.holderPrimaryKey"/>
<binding name="name" expression="book.holderName"/>
<static-binding name="class">clsDataBlue</static-binding>
</component>
<component id="ifNotLendable" type="Conditional">
<binding name="condition" expression="!book.lendable"/>
</component>
<component id="borrow" type="Borrow">
<binding name="book" expression="book"/>
</component>
</page-specification>
--- NEW FILE: Home.page ---
<?xml version="1.0" encoding="UTF-8"?>
<!-- $Id: Home.page,v 1.1.2.1 2002/12/16 19:12:14 hship Exp $ -->
<!DOCTYPE page-specification PUBLIC
"-//Howard Lewis Ship//Tapestry Specification 1.3//EN"
"http://tapestry.sf.net/dtd/Tapestry_1_3.dtd">
<page-specification class="net.sf.tapestry.vlib.pages.Home">
<component id="border" type="Border">
<static-binding name="title">Virtual Library</static-binding>
</component>
<component id="showError" type="ShowError"/>
<component id="showMessage" type="ShowMessage"/>
<component id="searchForm" type="Form">
<binding name="listener" expression="listeners.search"/>
<binding name="stateful" expression="false"/>
</component>
<component id="inputTitle" type="TextField">
<binding name="value" expression="searchTitle"/>
<binding name="displayWidth" expression="30"/>
<binding name="maximumLength" expression="100"/>
</component>
<component id="inputAuthor" type="TextField">
<binding name="value" expression="searchAuthor"/>
<binding name="displayWidth" expression="30"/>
<binding name="maximumLength" expression="100"/>
</component>
<component id="inputPublisher" type="PropertySelection">
<binding name="value" expression="searchPublisherPK"/>
<binding name="model" expression="engine.publisherModel"/>
</component>
</page-specification>
--- NEW FILE: MyLibrary.page ---
<?xml version="1.0" encoding="UTF-8"?>
<!-- $Id: MyLibrary.page,v 1.1.2.1 2002/12/16 19:12:14 hship Exp $ -->
<!DOCTYPE page-specification PUBLIC
"-//Howard Lewis Ship//Tapestry Specification 1.3//EN"
"http://tapestry.sf.net/dtd/Tapestry_1_3.dtd">
<page-specification class="net.sf.tapestry.vlib.pages.MyLibrary">
<property name="page-type">library</property>
<component id="border" type="Border">
<static-binding name="title">My Library</static-binding>
<static-binding name="subtitle">My Library</static-binding>
</component>
<component id="showError" type="ShowError"/>
<component id="showMessage" type="ShowMessage"/>
<component id="ifShowOwnedBooks" type="Conditional">
<binding name="condition" expression="components.browser.resultCount"/>
</component>
<component id="ifNoOwnedBooks" copy-of="ifShowOwnedBooks">
<binding name="condition" expression="components.browser.resultCount == 0"/>
</component>
<component id="browser" type="Browser">
<binding name="query" expression="ownedQuery"/>
</component>
<component id="insertResultCount" type="Insert">
<binding name="value" expression="components.browser.resultCount"/>
</component>
<component id="e" type="Foreach">
<binding name="source" expression="components.browser.pageResults"/>
<binding name="value" expression="currentBook"/>
<static-binding name="element">tr</static-binding>
</component>
<component id="insertTitle" type="Insert">
<binding name="value" expression="currentBook.title"/>
</component>
<component id="insertAuthor" type="Insert">
<binding name="value" expression="currentBook.author"/>
</component>
<component id="insertPublisher" type="Insert">
<binding name="value" expression="currentBook.publisherName"/>
</component>
<component id="holderLink" type="PersonLink">
<binding name="primaryKey" expression="currentBook.holderPrimaryKey"/>
<binding name="name" expression="currentBook.holderName"/>
<binding name="omit" expression="omitHolderLink"/>
<static-binding name="class">clsDataBlue</static-binding>
</component>
<component id="edit" type="DirectLink">
<binding name="listener" expression="listeners.editBook"/>
<binding name="parameters" expression="currentBook.primaryKey"/>
</component>
<component id="delete" type="DirectLink">
<binding name="listener" expression="listeners.deleteBook"/>
<binding name="parameters" expression="currentBook.primaryKey"/>
</component>
</page-specification>
--- NEW FILE: ApplicationUnavailable.page ---
<?xml version="1.0" encoding="UTF-8"?>
<!-- $Id: ApplicationUnavailable.page,v 1.1.2.1 2002/12/16 19:12:17 hship Exp $ -->
<!DOCTYPE page-specification PUBLIC
"-//Howard Lewis Ship//Tapestry Specification 1.3//EN"
"http://tapestry.sf.net/dtd/Tapestry_1_3.dtd">
<page-specification class="net.sf.tapestry.vlib.pages.ApplicationUnavailable">
<component id="shell" type="Shell">
<static-binding name="title">Virtual Library: Application Unavailable</static-binding>
<binding name="stylesheet" expression="assets.stylesheet"/>
</component>
<component id="body" type="Body"/>
<component id="showError" type="ShowError"/>
<component id="restart" type="ServiceLink">
<binding name="service" expression="@net.sf.tapestry.IEngineService@RESTART_SERVICE"/>
</component>
<component id="ifDebug" type="Conditional">
<binding name="condition" expression="engine.debugEnabled"/>
</component>
<component id="exceptionDisplay" type="ExceptionDisplay">
<binding name="exceptions" expression="exceptions"/>
</component>
<component id="showRequest" type="Delegator">
<binding name="delegate" expression="requestCycle.requestContext"/>
</component>
<component id="inspectorButton" type="InspectorButton"/>
<context-asset name="stylesheet" path="/scripts/style_virtlib_pcIE55.css"/>
</page-specification>
--- NEW FILE: EditBook.page ---
<?xml version="1.0" encoding="UTF-8"?>
<!-- $Id: EditBook.page,v 1.1.2.1 2002/12/16 19:12:20 hship Exp $ -->
<!DOCTYPE page-specification PUBLIC
"-//Howard Lewis Ship//Tapestry Specification 1.3//EN"
"http://tapestry.sf.net/dtd/Tapestry_1_3.dtd">
<page-specification class="net.sf.tapestry.vlib.pages.EditBook">
<property name="page-type">library</property>
<bean name="validator" class="net.sf.tapestry.valid.StringValidator" lifecycle="page">
<set-property name="required" expression="true"/>
<set-property name="clientScriptingEnabled" expression="true"/>
</bean>
<component id="border" type="Border">
<static-binding name="title">Edit Book</static-binding>
</component>
<component id="showError" type="ShowError"/>
<component id="showValidationError" type="ShowValidationError">
<binding name="delegate" expression="validationDelegate"/>
</component>
<component id="form" type="Form">
<binding name="listener" expression="listeners.formSubmit"/>
<binding name="delegate" expression="validationDelegate"/>
</component>
<component id="syncPrimaryKey" type="Hidden">
<binding name="value" expression="bookPrimaryKey"/>
</component>
<component id="labelTitle" type="FieldLabel">
<binding name="field" expression="components.inputTitle"/>
</component>
<component id="inputTitle" type="ValidField">
<binding name="value" expression="attributes.title"/>
<static-binding name="displayName">Title</static-binding>
<binding name="maximumLength" expression="100"/>
<binding name="displayWidth" expression="50"/>
<binding name="validator" expression="beans.validator"/>
</component>
<component id="labelAuthor" type="FieldLabel">
<binding name="field" expression="components.inputAuthor"/>
</component>
<component id="inputAuthor" type="ValidField">
<binding name="value" expression="attributes.author"/>
<static-binding name="displayName">Author</static-binding>
<binding name="maximumLength" expression="60"/>
<binding name="displayWidth" expression="30"/>
<binding name="validator" expression="beans.validator"/>
</component>
<component id="inputISBN" type="TextField">
<binding name="maximumLength" expression="20"/>
<binding name="displayWidth" expression="20"/>
<binding name="value" expression="attributes.ISBN"/>
</component>
<component id="labelPublisher" type="FieldLabel">
<binding name="field" expression="components.inputPublisherName"/>
</component>
<component id="inputPublisher" type="PropertySelection">
<binding name="value" expression="attributes.publisherPK"/>
<binding name="model" expression="engine.publisherModel"/>
</component>
<component id="inputPublisherName" type="ValidField">
<binding name="maximumLength" expression="40"/>
<binding name="displayWidth" expression="20"/>
<binding name="value" expression="publisherName"/>
<static-binding name="displayName">Publisher</static-binding>
<binding name="validator" expression="@net.sf.tapestry.valid.StringValidator@OPTIONAL"/>
</component>
<component id="inputDescription" type="TextArea">
<binding name="value" expression="attributes.description"/>
<binding name="columns" expression="35"/>
<binding name="rows" expression="8"/>
</component>
<component id="inputHolder" type="PropertySelection">
<binding name="value" expression="attributes.holderPK"/>
<binding name="model" expression="engine.personModel"/>
</component>
<component id="inputHidden" type="Checkbox">
<binding name="selected" expression="attributes.hidden"/>
</component>
<component id="inputLendable" type="Checkbox">
<binding name="selected" expression="attributes.lendable"/>
</component>
<component id="publisherScript" type="Script">
<static-binding name="script">/net/sf/tapestry/vlib/pages/Publisher.script</static-binding>
<binding name="select" expression="components.inputPublisher"/>
<binding name="field" expression="components.inputPublisherName"/>
</component>
</page-specification>
--- NEW FILE: NewBook.page ---
<?xml version="1.0" encoding="UTF-8"?>
<!-- $Id: NewBook.page,v 1.1.2.1 2002/12/16 19:12:21 hship Exp $ -->
<!DOCTYPE page-specification PUBLIC
"-//Howard Lewis Ship//Tapestry Specification 1.3//EN"
"http://tapestry.sf.net/dtd/Tapestry_1_3.dtd">
<page-specification class="net.sf.tapestry.vlib.pages.NewBook">
<property name="page-type">library</property>
<component id="border" type="Border">
<static-binding name="title">Add New Book</static-binding>
</component>
<component id="showError" type="ShowError"/>
<component id="form" type="Form">
<binding name="listener" expression="listeners.addBook"/>
<binding name="delegate" expression="validationDelegate"/>
</component>
<component id="showValidationError" type="ShowValidationError">
<binding name="delegate" expression="validationDelegate"/>
</component>
<component id="labelTitle" type="FieldLabel">
<binding name="field" expression="components.inputTitle"/>
</component>
<component id="inputTitle" type="ValidField">
<binding name="value" expression="attributes.title"/>
<static-binding name="maximumLength">100</static-binding>
<static-binding name="displayWidth">50</static-binding>
<static-binding name="displayName">Title</static-binding>
<field-binding name="validator" field-name="net.sf.tapestry.valid.StringValidator.REQUIRED"/>
</component>
<component id="labelAuthor" type="FieldLabel">
<binding name="field" expression="components.inputAuthor"/>
</component>
<component id="inputAuthor" type="ValidField">
<binding name="value" expression="attributes.author"/>
<field-binding name="validator" field-name="net.sf.tapestry.valid.StringValidator.REQUIRED"/>
<static-binding name="maximumLength">60</static-binding>
<static-binding name="displayWidth">30</static-binding>
<static-binding name="displayName">Author</static-binding>
</component>
<component id="inputISBN" type="TextField">
<static-binding name="maximumLength">20</static-binding>
<static-binding name="displayWidth">20</static-binding>
<binding name="value" expression="attributes.ISBN"/>
<field-binding name="validator" field-name="net.sf.tapestry.valid.StringValidator.OPTIONAL"/>
</component>
<component id="labelPublisher" type="FieldLabel">
<binding name="field" expression="components.inputPublisherName"/>
</component>
<component id="inputPublisher" type="PropertySelection">
<binding name="value" expression="attributes.publisherPK"/>
<binding name="model" expression="engine.publisherModel"/>
</component>
<component id="inputPublisherName" type="ValidField">
<static-binding name="maximumLength">40</static-binding>
<static-binding name="displayWidth">20</static-binding>
<binding name="value" expression="publisherName"/>
<field-binding name="validator" field-name="net.sf.tapestry.valid.StringValidator.OPTIONAL"/>
<static-binding name="displayName">Publisher</static-binding>
</component>
<component id="inputDescription" type="TextArea">
<binding name="value" expression="attributes.description"/>
<static-binding name="columns">35</static-binding>
<static-binding name="rows">8</static-binding>
</component>
<component id="inputHidden" type="Checkbox">
<binding name="selected" expression="attributes.hidden"/>
</component>
<component id="inputLendable" type="Checkbox">
<binding name="selected" expression="attributes.lendable"/>
</component>
<component id="publisherScript" type="Script">
<static-binding name="script">/net/sf/tapestry/vlib/pages/Publisher.script</static-binding>
<binding name="select" expression="components.inputPublisher"/>
<binding name="field" expression="components.inputPublisherName"/>
</component>
</page-specification>
--- NEW FILE: Login.page ---
<?xml version="1.0" encoding="UTF-8"?>
<!-- $Id: Login.page,v 1.1.2.1 2002/12/16 19:12:24 hship Exp $ -->
<!DOCTYPE page-specification PUBLIC
"-//Howard Lewis Ship//Tapestry Specification 1.3//EN"
"http://tapestry.sf.net/dtd/Tapestry_1_3.dtd">
<page-specification class="net.sf.tapestry.vlib.pages.Login">
<property name="page-type">login</property>
<bean name="validator" class="net.sf.tapestry.valid.StringValidator" lifecycle="page">
<set-property name="required" expression="true"/>
<set-property name="clientScriptingEnabled" expression="true"/>
</bean>
<component id="border" type="Border">
<static-binding name="title">Login</static-binding>
</component>
<component id="form" type="Form">
<binding name="listener" expression="listeners.attemptLogin"/>
<binding name="delegate" expression="validationDelegate"/>
<binding name="stateful" expression="false"/>
</component>
<component id="showError" type="ShowError"/>
<component id="showValidationError" type="ShowValidationError">
<binding name="delegate" expression="validationDelegate"/>
</component>
<component id="labelEmail" type="FieldLabel">
<binding name="field" expression="components.inputEmail"/>
</component>
<component id="inputEmail" type="ValidField">
<binding name="displayWidth" expression="30"/>
<binding name="maximumLength" expression="60"/>
<static-binding name="displayName">Email Address</static-binding>
<binding name="value" expression="email"/>
<binding name="validator" expression="beans.validator"/>
</component>
<component id="labelPassword" type="FieldLabel">
<binding name="field" expression="components.inputPassword"/>
</component>
<component id="inputPassword" type="ValidField">
<binding name="value" expression="password"/>
<binding name="validator" expression="beans.validator"/>
<binding name="displayWidth" expression="10"/>
<binding name="maximumLength" expression="20"/>
<static-binding name="displayName">Password</static-binding>
<binding name="hidden" expression="true"/>
</component>
<component id="register" type="PageLink">
<static-binding name="page">Register</static-binding>
</component>
</page-specification>
-------------------------------------------------------
This sf.net email is sponsored by:
With Great Power, Comes Great Responsibility
Learn to use your power at OSDN's High Performance Computing Channel
http://hpc.devchannel.org/