Tapestry and Webapp components

Intended audience

This document is intended for people who want to understand how the Webapp and Tapestry library work together: the Dithaka-Webapp and Dithaka-Tapestry components

Introduction

The Dithaka-Tapestry library was created to provide an library that would help developers in setting up an web front-end to Dithaka in an easy and quick way. The Dithaka-Webapp was created as there where a lot of queries for an existing front-end to Dithaka to explore the functionalities of Dithaka.

Implementation

Here are the steps that are needed to use the library:

  • The library must be imported into the webapp
  • Need to create expert classes for all your resources that you want to store in the database: User, Document, etc.
  • Need to create your own Visit and Border objects as the library gives you this freedom and responsibility.

The Dithaka-Webapp has already implement these so an developer can use the Dithaka-Webapp as a basis and just extend it for their intended application. Dithaka-Webapp creates an uses a project as its core and adds forums, users and documents to an project. An project expert class was created for the webapp.

The structure/framework is shown in the diagram below:

Core packages of Dithaka-Tapestry

The figure above displays the packages of Dithaka-Tapestry. Some of the packages will be discussed in more details below. These packages consist mainly of tapestry pages, components and html files. I will use the term component to refer to all 3 types.

  • The calender-package:
  • The component-package:
  • The document and forum packages: Contains components to: edit, create, list, view and upload (only for documents) forums and documents.
  • The info-package:
  • The layout-package:
  • The link-package: Contains some customs tapestry links
  • The page-package:
  • Security packages: Contains components to view, list, create and edit persons and users. Contains components that are responsible to login users.
  • The util-package: Contains a component to use with deletions.
These packages also use Dithaka-base.

Known issues and future enhancements

Some future enhancements:

  • The Dithaka-Tapestry library contains components and pages. The pages should be removed and moved into the Webapp
  • Create some better pages for the Webapp. Look at the MailForum front-end in Coefficient.

Some known issues:

  • When the user is on the Change/edit Password page and then clicks on the logout screen an error occurs: "You have clicked on a stale link.........." This is because of the fact that the Edit page is in the Dithaka-tapestry library and the Border page is in the Webapp. This causes the current page not to find the parent page to return to. The changing of the password is performed in spite of this error message.
  • The user is assigned an password but this password is not e-mailed. Click on Login link. Select Forgot Password and then enter e-mail address and request that the password be sent to you. This will be fixed before the release.