org.apache.click.extras.cayenne
Class TabbedCayenneForm

java.lang.Object
  extended by org.apache.click.control.AbstractControl
      extended by org.apache.click.control.AbstractContainer
          extended by org.apache.click.control.Form
              extended by org.apache.click.extras.cayenne.CayenneForm
                  extended by org.apache.click.extras.cayenne.TabbedCayenneForm
All Implemented Interfaces:
Serializable, Control, Container, Stateful

public class TabbedCayenneForm
extends CayenneForm

Provides Cayenne data aware tabbed Form control:   <form method='POST'>.

This control provides tab capabilities to the standard CayenneForm. For more information and examples please see:

CSS and JavaScript resources

In addition to Form's resources, the TabbedCayenneForm control makes use of the following resources (which Click automatically deploys to the application directory, /click): To import these TabbedCayenneForm files simply reference the variables $headElements and $jsElements in the page template.

See Also:
Serialized Form

Field Summary
protected  String backgroundColor
          The form HTML background color.
protected  int displayTab
          The tab number to display (indexed from 1).
protected  String tabHeight
          The tab sheet height HTML attribute value.
protected  List tabSheets
          The list of FieldSet tab sheets.
protected  String tabWidth
          The tab sheet width HTML attribute value.
protected  String template
          The path of the tabbed form Velocity template to render.
 
Fields inherited from class org.apache.click.extras.cayenne.CayenneForm
classField, dataObject, FO_CLASS, FO_ID, metaDataApplied, oidField
 
Fields inherited from class org.apache.click.control.Form
actionURL, ALIGN_CENTER, ALIGN_LEFT, ALIGN_RIGHT, buttonAlign, buttonList, buttonStyle, columns, defaultFieldSize, disabled, enctype, error, errorsAlign, errorsPosition, errorsStyle, fieldList, fieldStyle, fieldWidths, FOCUS_JAVASCRIPT, FORM_NAME, formSubmission, javaScriptValidation, labelAlign, labelsPosition, labelStyle, method, MULTIPART_FORM_DATA, POSITION_BOTTOM, POSITION_LEFT, POSITION_MIDDLE, POSITION_TOP, readonly, SUBMIT_CHECK, validate
 
Fields inherited from class org.apache.click.control.AbstractContainer
controlMap, controls
 
Fields inherited from class org.apache.click.control.AbstractControl
actionListener, attributes, behaviors, headElements, listener, listenerMethod, messages, name, parent, styles
 
Fields inherited from interface org.apache.click.Control
CONTROL_MESSAGES
 
Constructor Summary
TabbedCayenneForm()
          Create a Tabbed Cayenne Form with no name or dataObjectClass.
TabbedCayenneForm(Class dataClass)
          Create a Tabbed Cayenne Form with the given DataObject class.
TabbedCayenneForm(String name, Class dataClass)
          Create a Tabbed Cayenne Form with the given form name and DataObject class.
 
Method Summary
 void addTabSheet(FieldSet tabSheet)
          Add the given FieldSet tab sheet to the form.
 String getBackgroundColor()
          Return the form HTML background color.
 int getDisplayTab()
          Return the number of the tab sheet to display (indexed from 1).
 List<Element> getHeadElements()
          Return the TabbedCayenneForm HTML HEAD elements for the following resources: click/extras-control.js click/extras-control.css Additionally all the Form import statements are also returned.
 String getTabHeight()
          Return the tab sheet height HTML attribute value.
 int getTabSheetNumber(String fieldName)
          Return the tab sheet number for the given field name, indexed from 1.
 List getTabSheets()
          Return list FieldSet tab sheets.
 String getTabWidth()
          Return the tab sheet width HTML attribute value.
 String getTemplate()
          Return the path of the Velocity template to render.
 boolean onProcess()
          Process the Form request.
 void render(HtmlStringBuffer buffer)
          Render the HTML representation of the form.
protected  void renderValidationJavaScript(HtmlStringBuffer buffer, List<Field> formFields)
           
 void setBackgroundColor(String value)
          Set the form HTML background color.
 void setDisplayTab(int value)
          Set the number of the tab sheet to display (indexed from 1).
 void setTabHeight(String value)
          Set the tab sheet height HTML attribute value.
 void setTabWidth(String value)
          Set the tab sheet width HTML attribute value.
 void setTemplate(String template)
          Set the path of the Velocity template to render.
 
Methods inherited from class org.apache.click.extras.cayenne.CayenneForm
applyMetaData, clearValues, getDataContext, getDataObject, getDataObject, getDataObjectClass, getDataObjectPk, getState, isPersistent, onDestroy, saveChanges, setDataObject, setDataObjectClass
 
Methods inherited from class org.apache.click.control.Form
add, add, add, add, clearErrors, copyFrom, copyFrom, copyTo, copyTo, endTag, getActionURL, getButtonAlign, getButtonList, getButtonStyle, getColumns, getControlSizeEst, getDefaultFieldSize, getEnctype, getError, getErrorFields, getErrorsAlign, getErrorsPosition, getErrorsStyle, getField, getFieldList, getFields, getFieldStyle, getFieldValue, getFieldWidths, getFormSizeEst, getJavaScriptValidation, getLabelAlign, getLabelsPosition, getLabelStyle, getMethod, getTag, getValidate, hasPostError, insert, isDisabled, isFormSubmission, isJavaScriptValidation, isReadonly, isValid, onSubmitCheck, onSubmitCheck, onSubmitCheck, performSubmitCheck, remove, removeField, removeFields, removeState, renderButtons, renderControls, renderErrors, renderFields, renderFocusJavaScript, renderHeader, renderTagEnd, replace, restoreState, saveState, setActionURL, setButtonAlign, setButtonStyle, setColumns, setDefaultFieldSize, setDisabled, setEnctype, setError, setErrorsAlign, setErrorsPosition, setErrorsStyle, setFieldStyle, setJavaScriptValidation, setLabelAlign, setLabelsPosition, setLabelStyle, setListener, setMethod, setName, setReadonly, setState, setValidate, startTag, validate, validateFileUpload
 
Methods inherited from class org.apache.click.control.AbstractContainer
contains, getControl, getControlMap, getControls, hasControls, onInit, onRender, renderChildren, renderContent, renderTagEnd, toString
 
Methods inherited from class org.apache.click.control.AbstractControl
addBehavior, addStyleClass, appendAttributes, dispatchActionEvent, getActionListener, getAttribute, getAttributes, getBehaviors, getContext, getHtmlImports, getId, getMessage, getMessage, getMessages, getName, getPage, getParent, getStyle, getStyles, hasAttribute, hasAttributes, hasBehaviors, hasStyles, isAjaxTarget, onDeploy, removeBehavior, removeStyleClass, renderTagBegin, setActionListener, setAttribute, setId, setParent, setStyle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.apache.click.Control
getBehaviors, getContext, getId, getMessages, getName, getParent, hasBehaviors, isAjaxTarget, onDeploy, setParent
 

Field Detail

backgroundColor

protected String backgroundColor
The form HTML background color. The default background color is "#EFEFEF".


displayTab

protected int displayTab
The tab number to display (indexed from 1). The default tab number is 1.


tabHeight

protected String tabHeight
The tab sheet height HTML attribute value.


tabSheets

protected List tabSheets
The list of FieldSet tab sheets.


tabWidth

protected String tabWidth
The tab sheet width HTML attribute value.


template

protected String template
The path of the tabbed form Velocity template to render. The default template path is "/org/apache/click/extras/control/TabbedForm.htm".

Constructor Detail

TabbedCayenneForm

public TabbedCayenneForm(String name,
                         Class dataClass)
Create a Tabbed Cayenne Form with the given form name and DataObject class.

Parameters:
name - the form name
dataClass - the DataObject class

TabbedCayenneForm

public TabbedCayenneForm(Class dataClass)
Create a Tabbed Cayenne Form with the given DataObject class.

Parameters:
dataClass - the DataObject class

TabbedCayenneForm

public TabbedCayenneForm()
Create a Tabbed Cayenne Form with no name or dataObjectClass.

Important Note the form's name and dataObjectClass must be defined before it is valid.

Method Detail

addTabSheet

public void addTabSheet(FieldSet tabSheet)
Add the given FieldSet tab sheet to the form.

Parameters:
tabSheet - the FieldSet tab sheet to add

getBackgroundColor

public String getBackgroundColor()
Return the form HTML background color.

Returns:
the form HTML background color

setBackgroundColor

public void setBackgroundColor(String value)
Set the form HTML background color.

Parameters:
value - the form HTML background color

getDisplayTab

public int getDisplayTab()
Return the number of the tab sheet to display (indexed from 1).

Returns:
the number of the tab sheet to display

getHeadElements

public List<Element> getHeadElements()
Return the TabbedCayenneForm HTML HEAD elements for the following resources: Additionally all the Form import statements are also returned.

Specified by:
getHeadElements in interface Control
Overrides:
getHeadElements in class Form
Returns:
the control list of HEAD elements to be included in the page
See Also:
Control.getHeadElements()

setDisplayTab

public void setDisplayTab(int value)
Set the number of the tab sheet to display (indexed from 1).

Parameters:
value - the number of the tab sheet to display

getTabHeight

public String getTabHeight()
Return the tab sheet height HTML attribute value.

Returns:
the tab sheet height attribute value

setTabHeight

public void setTabHeight(String value)
Set the tab sheet height HTML attribute value.

Parameters:
value - the tab sheet height attribute value

getTabSheets

public List getTabSheets()
Return list FieldSet tab sheets.

Returns:
list FieldSet tab sheets

getTabSheetNumber

public int getTabSheetNumber(String fieldName)
Return the tab sheet number for the given field name, indexed from 1. If the field is not found this method will return 1.

Parameters:
fieldName - the name of the form field
Returns:
the tab sheet number for the given field (indexed from 1)

getTabWidth

public String getTabWidth()
Return the tab sheet width HTML attribute value.

Returns:
the tab sheet width attribute value

setTabWidth

public void setTabWidth(String value)
Set the tab sheet width HTML attribute value.

Parameters:
value - the tab sheet width attribute value

getTemplate

public String getTemplate()
Return the path of the Velocity template to render.

Returns:
the path of the Velocity template to render

setTemplate

public void setTemplate(String template)
Set the path of the Velocity template to render.

Parameters:
template - the path of the Velocity template to render

onProcess

public boolean onProcess()
Process the Form request. In addition to the normal Form onProcess() processing, if the Form is invalid this method will display the tab sheet with the first field error.

Specified by:
onProcess in interface Control
Overrides:
onProcess in class CayenneForm
Returns:
true to continue Page event processing or false otherwise
See Also:
Form.onProcess()

render

public void render(HtmlStringBuffer buffer)
Render the HTML representation of the form.

The form will be rendered using the classpath template:

 /org/apache/click/extras/control/TabbedForm.htm 
If the form contains errors after processing, these errors will be rendered.

Specified by:
render in interface Control
Overrides:
render in class CayenneForm
Parameters:
buffer - the specified buffer to render the control's output to
See Also:
AbstractContainer.toString()

renderValidationJavaScript

protected void renderValidationJavaScript(HtmlStringBuffer buffer,
                                          List<Field> formFields)
Overrides:
renderValidationJavaScript in class Form