org.apache.tapestry.contrib.form
Class MultiplePropertySelection

java.lang.Object
  extended by org.apache.hivemind.impl.BaseLocatable
      extended by org.apache.tapestry.AbstractComponent
          extended by org.apache.tapestry.form.AbstractFormComponent
              extended by org.apache.tapestry.contrib.form.MultiplePropertySelection
All Implemented Interfaces:
org.apache.hivemind.Locatable, org.apache.hivemind.LocationHolder, org.apache.tapestry.form.IFormComponent, org.apache.tapestry.form.ValidatableField, org.apache.tapestry.IComponent, org.apache.tapestry.IRender

public abstract class MultiplePropertySelection
extends org.apache.tapestry.form.AbstractFormComponent
implements org.apache.tapestry.form.ValidatableField

A component which uses <input type=checkbox> to set a property of some object. Typically, the values for the object are defined using an org.apache.commons.lang.enum.Enum. A MultiplePropertySelection is dependent on an {link IPropertySelectionModel} to provide the list of possible values.

Often, this is used to select one or more org.apache.commons.lang.enum.Enumto assign to a property; the org.apache.tapestry.form.EnumPropertySelectionModelclass simplifies this.

The Palettecomponent is more powerful, but requires client-side JavaScript and is not fully cross-browser compatible.

Parameter Type Direction Required Default Description
selectedList java.util.List in-out yes   The property to set. During rendering, this property is read, and sets the default value of the options in the select. When the form is submitted, list is cleared, then has each selected option added to it.
renderer IMultiplePropertySelectionRenderer in no shared instance of CheckBoxMultiplePropertySelectionRenderer Defines the object used to render this component. The default renders a table of checkboxes.
model IPropertySelectionModel in yes   The model provides a list of possible labels, and matches those labels against possible values that can be assigned back to the property.
disabled boolean in no false Controls whether the <select> is active or not. A disabled PropertySelection does not update its value parameter.

Corresponds to the disabled HTML attribute.

Informal parameters are not allowed.

As of 4.0, this component can be validated.

Author:
Sanjay Munjal

Field Summary
static IMultiplePropertySelectionRenderer DEFAULT_CHECKBOX_RENDERER
          A shared instance of CheckBoxMultiplePropertySelectionRenderer.
 
Constructor Summary
MultiplePropertySelection()
           
 
Method Summary
protected  void finishLoad()
           
abstract  org.apache.tapestry.form.IPropertySelectionModel getModel()
           
abstract  IMultiplePropertySelectionRenderer getRenderer()
           
abstract  java.util.Collection getSelectedList()
           
abstract  org.apache.tapestry.form.ValidatableFieldSupport getValidatableFieldSupport()
           
 boolean isRequired()
           
protected  void renderFormComponent(org.apache.tapestry.IMarkupWriter writer, org.apache.tapestry.IRequestCycle cycle)
           
protected  void rewindFormComponent(org.apache.tapestry.IMarkupWriter writer, org.apache.tapestry.IRequestCycle cycle)
           
abstract  void setRenderer(IMultiplePropertySelectionRenderer renderer)
           
abstract  void setSelectedList(java.util.Collection selectedList)
           
 
Methods inherited from class org.apache.tapestry.form.AbstractFormComponent
getAlwaysRenderBodyOnRewind, getCanTakeFocus, getForm, getIdParameter, getName, renderComponent, renderDelegateAttributes, renderDelegatePrefix, renderDelegateSuffix, renderIdAttribute, setClientId, setForm, setName, setName
 
Methods inherited from class org.apache.tapestry.AbstractComponent
addAsset, addBody, addComponent, checkActiveLock, cleanupAfterRender, enterActiveState, finishLoad, format, format, format, format, getAsset, getAssets, getBeans, getBinding, getBindingNames, getBindings, getBody, getBodyCount, getComponent, getComponents, getContainedComponent, getContainer, getExtendedId, getId, getIdPath, getListeners, getMessage, getMessages, getNamespace, getPage, getProperty, getSpecification, isInActiveState, isParameterBound, isRendering, pageEndRender, prepareForRender, render, renderBody, renderInformalParameters, setBinding, setContainedComponent, setContainer, setId, setNamespace, setPage, setProperty, toString
 
Methods inherited from class org.apache.hivemind.impl.BaseLocatable
getLocation, setLocation
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.apache.tapestry.form.ValidatableField
getValidators
 
Methods inherited from interface org.apache.tapestry.form.IFormComponent
getClientId, getDisplayName, getForm, getName, isDisabled, setName
 
Methods inherited from interface org.apache.tapestry.IComponent
addAsset, addBody, addComponent, enterActiveState, finishLoad, getAsset, getAssets, getBeans, getBinding, getBindingNames, getBindings, getComponent, getComponents, getContainedComponent, getContainer, getExtendedId, getId, getIdPath, getListeners, getMessage, getMessages, getNamespace, getPage, getProperty, getSpecification, isRendering, renderBody, setBinding, setContainedComponent, setContainer, setId, setNamespace, setPage, setProperty
 
Methods inherited from interface org.apache.tapestry.IRender
render
 
Methods inherited from interface org.apache.hivemind.LocationHolder
setLocation
 
Methods inherited from interface org.apache.hivemind.Locatable
getLocation
 

Field Detail

DEFAULT_CHECKBOX_RENDERER

public static final IMultiplePropertySelectionRenderer DEFAULT_CHECKBOX_RENDERER
A shared instance of CheckBoxMultiplePropertySelectionRenderer.

Constructor Detail

MultiplePropertySelection

public MultiplePropertySelection()
Method Detail

getSelectedList

public abstract java.util.Collection getSelectedList()

setSelectedList

public abstract void setSelectedList(java.util.Collection selectedList)

finishLoad

protected void finishLoad()
Overrides:
finishLoad in class org.apache.tapestry.AbstractComponent

renderFormComponent

protected void renderFormComponent(org.apache.tapestry.IMarkupWriter writer,
                                   org.apache.tapestry.IRequestCycle cycle)
Specified by:
renderFormComponent in class org.apache.tapestry.form.AbstractFormComponent

rewindFormComponent

protected void rewindFormComponent(org.apache.tapestry.IMarkupWriter writer,
                                   org.apache.tapestry.IRequestCycle cycle)
Specified by:
rewindFormComponent in class org.apache.tapestry.form.AbstractFormComponent
See Also:
org.apache.tapestry.form.AbstractRequirableField#rewindFormComponent(org.apache.tapestry.IMarkupWriter, org.apache.tapestry.IRequestCycle)

getModel

public abstract org.apache.tapestry.form.IPropertySelectionModel getModel()

getRenderer

public abstract IMultiplePropertySelectionRenderer getRenderer()

setRenderer

public abstract void setRenderer(IMultiplePropertySelectionRenderer renderer)

getValidatableFieldSupport

public abstract org.apache.tapestry.form.ValidatableFieldSupport getValidatableFieldSupport()

isRequired

public boolean isRequired()
Specified by:
isRequired in interface org.apache.tapestry.form.IFormComponent
Overrides:
isRequired in class org.apache.tapestry.form.AbstractFormComponent
See Also:
AbstractFormComponent.isRequired()