For WebWork 2.2 we're going to be including an Ajax theme with rich UI components. The client-side XmlHttpRequest communication with the server will be handled by Dojo. We'll also make use of Dojo's event / topic support for loosely coupling the UI components and providing event-driven content refreshes.
Design discussions
Ajax components
Component Name |
Dojo widget |
JSP tag |
Description |
Status |
Remote Div |
dojo:binddiv |
ww:div tag (new tag) |
Allows for a segment of content which can be refreshed from the server asynchronously without a full page refresh |
Initial prototypes working, tutorial working, updated WW tags to utilize dojo widget |
Remote Link |
dojo:bindanchor |
ww:a tag (new tag) |
Creates a link which will call the server asynchronously and send a message on a client topic when it returns -> will this return JS to be eval'd? |
Initial prototypes working, tutorial updated, updated WW tags to utilize dojo widget |
Remote Submit |
dojo:bindbutton |
ww:submit tag |
Submits the form asynchronously to update server-side state, then sends a message on a client topic when it returns |
dojo widget prototypes working, updated WW tags to utilize dojo widget |
Tabbed Panel |
dojo:tabbedpanel dojo:panel ?? |
ww:tabbedpanel and ww:panel tags |
Creates a tabbed panel interface where the content is held in hidden <div> tags and the correct one is shown. Can be combined with listening / publishing with topics to asynchronously refresh included remote divs to have dynamically updating panel contents |
ww:tabbedpanel and ww:panel tags are working, no dojo work yet |