[jboss-dev-forums] [Design of JBoss jBPM] - Changes and new tags for the task forms designer

david.lloyd@jboss.com do-not-reply at jboss.com
Mon Nov 13 10:56:15 EST 2006


EL variables

Task forms should use the following EL variables to access form data:
#{comment}
This variable will be checked for a new comment to add to a task instance when a transition or save action is taken.

#{var['name']}
This is where all the process variables will be kept.

#{taskName}
Read-only variable; name of the current task.

Layout changes

Currently the task forms are formatted something like this:

<!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"
  |       xmlns:ui="http://java.sun.com/jsf/facelets"
  |       ...>
  | <head>
  |   <title>userForm</title>
  |   <link rel="stylesheet" type="text/css" href="../css/jbpm.css" />
  | </head>
  | <body>
  | <ui:composition>
  | <h:form id="taskform">
  | <h:inputHidden id="taskInstanceId" value="#{taskInstanceBean.id}" />
  | ...content here...
  | </h:form>
  | </ui:composition>
  | 
  | </body>
  | </html>
  | 

This should be simplified to exclude the head, body, ui:composition, h:form, and h:inputHidden tags, to look like this:

<!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"
  |       xmlns:ui="http://java.sun.com/jsf/facelets"
  |       ...
  |       xmlns:tf="http://jbpm.org/jsf/tf"
  |       xmlns:jbpm="http://jbpm.org/jsf">
  | 
  | ...content here...
  | 
  | </html>
  | 

The "nuts and bolts" tags will be generated by the task form renderer.

New tags

I'm specifying a prefix of "tf" for tags that are specific to task forms, assuming you will have the following attribute in your html element:
xmlns:tf="http://jbpm.org/jsf/tf"

Here's the tf tags:

<tf:transitionButton>

Save the task form and take a transition.  Accepts all attributes that "h:commandButton" does, with the exception of the "action" attribute.  Also, there is a new optional attribute called "to", whose value is the name of the transition to take.  If no value is given, take the only transition available.

<tf:saveButton>

Save the task form, but do not take a transition.  Accepts all attributes that "h:commandButton" does, with the exception of the "action" attribute.

<tf:cancelButton>

Cancel the task form without saving anything.  The user doesn't really have to click on this button to cancel though; (s)he can just choose a different menu item.  Accepts all attributes that "h:commandButton" does, with the exception of the "action" attribute.

This tag is not really a tf tag but it's one that you can use nonetheless:

<jbpm:dataform> / <jbpm:datacell>

This tag allows a nice way to lay out form data.  Definitely not required to use it, especially if the form is used outside of the console.  Here's an example of a task form that might use these tags:

<jbpm:dataform>
  |     <f:facet name="header">
  |         <h:outputText value="#{taskName}"/>
  |     </f:facet>
  |     <jbpm:datacell>
  |         <f:facet name="header">
  |             <h:outputText value="Item"/>
  |         </f:facet>
  |         <h:inputText value="#{var['item']}"/>
  |     </jbpm:datacell>
  |     <jbpm:datacell>
  |         <f:facet name="header">
  |             <h:outputText value="Quantity"/>
  |         </f:facet>
  |         <h:inputText value="#{var['quantity']}"/>
  |     </jbpm:datacell>
  |     <jbpm:datacell>
  |         <f:facet name="header">
  |             <h:outputText value="Address"/>
  |         </f:facet>
  |         <h:inputText value="#{var['address']}"/>
  |     </jbpm:datacell>
  |     <jbpm:datacell>
  |         <f:facet name="header">
  |             <h:outputText value="Actions"/>
  |         </f:facet>
  |         <tf:transitionButton value="Save and Close"/>
  |         <tf:saveButton value="Save"/>
  |         <tf:cancelButton value="Cancel"/>
  |     </jbpm:datacell>
  | </jbpm:dataform>

Let me know if something doesn't make sense, or if you have more ideas to simplify task forms.

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3985485#3985485

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3985485



More information about the jboss-dev-forums mailing list