What is this app about?

I originally needed to develop a number of pages that maintained master data or lookup tables. These pages perform the use cases of Create, Read, Update and Delete - hence the unimaginative name of CRUD for the application.

Beyond these functions I have added:

  • A simple menu and layout. Menu left, main content right with nav bar and footer
  • Menu allows navigation to different tables/Cayenne data objects
  • Navigation bar for Creating a new object, first page, previous page, next page and last page of data
  • Configurable paging of the resultset
  • Copying an object
  • Data Validation
  • Simple look using CSS
  • Column ordering for the list page
  • Turning off fields to display
  • Turning on fields to allow for Quick Search. Quick Search is available from the list page, usually for 1 or 2 fields
  • Advanced search (not yet implemented). Searching of any field in the table/Cayenne data object
  • Editable/searchable fields are displayed using an appropriate screen object type, eg bit is Radio button, Date is Tapestry Date picker.

    My intentions were to display some of the excellent features of some popular open source frameworks to the developer community and have an application that I and hopefully others will find of use either as a basis for new projects or a useable framework.

What are the Frameworks used?

Jakarta Tapestry 4 for the web. Note that there are no page or component specs to be found, thanks Tap 4.

Objectstyle Cayenne 1.2 for ORM/data layer. Thanks to this we get easy to use object life cycles and the meta-data about them.

Maven for build, documentation and artifact management etc. Sorry Ant folks I've now been converted.

JDK 1.5, I went with taking advantage of 1.5 features, couldn't help myself.

What has this been tested against?

MS SQL server using a simple test table

Tomcat 5.5.12