org.apache.wicket.markup.html.form
Class AbstractSingleSelectChoice

java.lang.Object
  extended by org.apache.wicket.Component
      extended by org.apache.wicket.MarkupContainer
          extended by org.apache.wicket.markup.html.WebMarkupContainer
              extended by org.apache.wicket.markup.html.form.LabeledWebMarkupContainer
                  extended by org.apache.wicket.markup.html.form.FormComponent
                      extended by org.apache.wicket.markup.html.form.AbstractSingleSelectChoice
All Implemented Interfaces:
java.io.Serializable, IClusterable, IConverterLocator, IFormVisitorParticipant, ILabelProvider
Direct Known Subclasses:
DropDownChoice, RadioChoice

public abstract class AbstractSingleSelectChoice
extends FormComponent

Abstract base class for single-select choices.

Author:
Jonathan Locke, Eelco Hillenius, Johan Compagner
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class org.apache.wicket.markup.html.form.FormComponent
FormComponent.AbstractVisitor, FormComponent.IVisitor
 
Nested classes/interfaces inherited from class org.apache.wicket.Component
Component.ComponentModelChange, Component.EnabledChange, Component.VisibilityChange
 
Field Summary
protected static java.lang.String NO_SELECTION_VALUE
           
 
Fields inherited from class org.apache.wicket.markup.html.form.FormComponent
FLAG_CONVERT_EMPTY_INPUT_STRING_TO_NULL, VALUE_SEPARATOR
 
Fields inherited from class org.apache.wicket.Component
ENABLE, FLAG_RESERVED1, FLAG_RESERVED2, FLAG_RESERVED3, FLAG_RESERVED4, FLAG_RESERVED5, FLAG_RESERVED6, FLAG_RESERVED7, FLAG_RESERVED8, PATH_SEPARATOR, RENDER
 
Constructor Summary
AbstractSingleSelectChoice(java.lang.String id)
           
AbstractSingleSelectChoice(java.lang.String id, IModel choices)
           
AbstractSingleSelectChoice(java.lang.String id, IModel choices, IChoiceRenderer renderer)
           
AbstractSingleSelectChoice(java.lang.String id, IModel model, IModel choices)
           
AbstractSingleSelectChoice(java.lang.String id, IModel model, IModel choices, IChoiceRenderer renderer)
           
AbstractSingleSelectChoice(java.lang.String id, IModel model, java.util.List data)
           
AbstractSingleSelectChoice(java.lang.String id, IModel model, java.util.List data, IChoiceRenderer renderer)
           
AbstractSingleSelectChoice(java.lang.String id, java.util.List choices)
           
AbstractSingleSelectChoice(java.lang.String id, java.util.List data, IChoiceRenderer renderer)
           
 
Method Summary
protected  void appendOptionHtml(AppendingStringBuffer buffer, java.lang.Object choice, int index, java.lang.String selected)
          Generates and appends html for a single choice into the provided buffer
protected  java.lang.Object convertChoiceIdToChoice(java.lang.String id)
          Converts submitted choice id string back to choice object.
protected  java.lang.Object convertValue(java.lang.String[] value)
          Subclasses should overwrite this if the conversion is not done through the type field and the IConverter.
protected  void detachModel()
          Detaches the model for this component if it is detachable.
protected  java.lang.CharSequence escapeOptionHtml(java.lang.String displayValue)
          Method to override if you want special escaping of the options html.
 IChoiceRenderer getChoiceRenderer()
           
 java.util.List getChoices()
           
protected  java.lang.CharSequence getDefaultChoice(java.lang.Object selected)
          The localizer will be ask for the property to display Depending on if null is allowed or not it will ask for: nullValid: when null is valid and by default it will show an empty string as a choice. null: when null is not a valid choice and it will make a choice with "Choose One" The choice for null is valid will always be returned.
 java.lang.String getModelValue()
           
protected  boolean isDisabled(java.lang.Object object, int index, java.lang.String selected)
          Gets whether the given value is disabled.
 boolean isNullValid()
          Is the null value a valid value? If it is, it means that the null value will be displayed, typically to the user as 'choose one' or something similar.
protected  boolean isSelected(java.lang.Object object, int index, java.lang.String selected)
          Gets whether the given value represents the current selection.
protected  boolean localizeDisplayValues()
          Override this method if you want to localize the display values of the generated options.
protected  void onComponentTagBody(MarkupStream markupStream, ComponentTag openTag)
          Handle the container's body.
 org.apache.wicket.markup.html.form.AbstractChoice setChoiceRenderer(IChoiceRenderer renderer)
          Set the choice renderer to be used.
 org.apache.wicket.markup.html.form.AbstractChoice setChoices(IModel choices)
          Sets the list of choices
 org.apache.wicket.markup.html.form.AbstractChoice setChoices(java.util.List choices)
          Sets the list of choices.
 AbstractSingleSelectChoice setNullValid(boolean nullValid)
          Is the null value a valid value? If it is, it means that the null value will be displayed, typically to the user as 'choose one' or something similar.
protected  boolean supportsPersistence()
           
 
Methods inherited from class org.apache.wicket.markup.html.form.FormComponent
add, checkRequired, clearInput, convertInput, error, getBehaviors, getConvertedInput, getForm, getInput, getInputAsArray, getInputName, getRawInput, getType, getValidatorKeyPrefix, getValidators, getValue, hasRawInput, inputAsInt, inputAsInt, inputAsIntArray, inputChanged, internalOnModelChanged, invalid, isInputNullable, isMultiPart, isPersistent, isRequired, isValid, onComponentTag, onDetach, onDisabled, onInvalid, onValid, processChildren, processInput, setConvertedInput, setLabel, setModelValue, setModelValue, setPersistent, setRequired, setType, shouldTrimInput, trim, updateModel, valid, validate, validateRequired, validateValidators, visitFormComponentsPostOrder
 
Methods inherited from class org.apache.wicket.markup.html.form.LabeledWebMarkupContainer
getLabel, setLabelInternal
 
Methods inherited from class org.apache.wicket.markup.html.WebMarkupContainer
getMarkupType, getWebPage
 
Methods inherited from class org.apache.wicket.MarkupContainer
add, addOrReplace, autoAdd, autoAdd, contains, findMarkupStream, get, getAssociatedMarkupStream, getMarkupStream, hasAssociatedMarkup, internalAdd, isTransparentResolver, iterator, iterator, newMarkupResourceStream, onRender, remove, remove, removeAll, renderAll, renderAssociatedMarkup, renderComponentTagBody, replace, setMarkupStream, setModel, size, toString, toString, visitChildren, visitChildren
 
Methods inherited from class org.apache.wicket.Component
add, addStateChange, afterRender, beforeRender, callOnBeforeRenderIfNotVisible, checkComponentTag, checkComponentTagAttribute, checkHierarchyChange, continueToOriginalDestination, debug, detach, detachBehaviors, detachModels, determineVisibility, error, exceptionMessage, fatal, findPage, findParent, findParentWithAssociatedMarkup, getApplication, getBehaviors, getBehaviorsRawList, getClassRelativePath, getComponentBorder, getConverter, getConverter, getEscapeModelStrings, getFeedbackMessage, getFlag, getFlag, getId, getInnermostModel, getInnermostModel, getLocale, getLocalizer, getMarkupAttributes, getMarkupId, getMarkupId, getMetaData, getModel, getModelComparator, getModelObject, getModelObjectAsString, getModelObjectAsString, getOutputMarkupId, getOutputMarkupPlaceholderTag, getPage, getPageFactory, getPageRelativePath, getParent, getPath, getRenderBodyOnly, getRequest, getRequestCycle, getResponse, getSession, getSizeInBytes, getStatelessHint, getString, getString, getString, getStyle, getVariation, hasBeenRendered, hasErrorMessage, hasFeedbackMessage, info, initModel, internalAttach, internalDetach, internalOnAttach, internalOnDetach, isActionAuthorized, isAncestorOf, isAttached, isBehaviorAccepted, isEnableAllowed, isEnabled, isIgnoreAttributeModifier, isRenderAllowed, isStateless, isVersioned, isVisibilityAllowed, isVisible, isVisibleInHierarchy, locateMarkupStream, markAttached, markRendering, modelChanged, modelChanging, newPage, newPage, onAfterRender, onAttach, onBeforeRender, onBeginRequest, onEndRequest, onModelChanged, onModelChanging, prepareForRender, redirectToInterceptPage, remove, remove, render, render, renderComponent, renderComponent, renderComponentTag, rendered, renderHead, replaceComponentTagBody, replaceWith, sameInnermostModel, sameInnermostModel, setAuto, setComponentBorder, setEnabled, setEscapeModelStrings, setFlag, setFlag, setIgnoreAttributeModifier, setMarkupId, setMetaData, setModelObject, setOutputMarkupId, setOutputMarkupPlaceholderTag, setRedirect, setRenderBodyOnly, setResponsePage, setResponsePage, setResponsePage, setVersioned, setVisibilityAllowed, setVisible, urlFor, urlFor, urlFor, urlFor, urlFor, urlFor, visitParents, warn, wrap
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

NO_SELECTION_VALUE

protected static final java.lang.String NO_SELECTION_VALUE
See Also:
Constant Field Values
Constructor Detail

AbstractSingleSelectChoice

public AbstractSingleSelectChoice(java.lang.String id)
See Also:
AbstractChoice.AbstractChoice(String)

AbstractSingleSelectChoice

public AbstractSingleSelectChoice(java.lang.String id,
                                  java.util.List choices)
See Also:
AbstractChoice.AbstractChoice(String, List)

AbstractSingleSelectChoice

public AbstractSingleSelectChoice(java.lang.String id,
                                  java.util.List data,
                                  IChoiceRenderer renderer)
Parameters:
id -
data -
renderer -
See Also:
AbstractChoice.AbstractChoice(String, List ,IChoiceRenderer)

AbstractSingleSelectChoice

public AbstractSingleSelectChoice(java.lang.String id,
                                  IModel model,
                                  java.util.List data)
See Also:
AbstractChoice.AbstractChoice(String, IModel, List)

AbstractSingleSelectChoice

public AbstractSingleSelectChoice(java.lang.String id,
                                  IModel model,
                                  java.util.List data,
                                  IChoiceRenderer renderer)
Parameters:
id -
model -
data -
renderer -
See Also:
AbstractChoice.AbstractChoice(String, IModel, List, IChoiceRenderer)

AbstractSingleSelectChoice

public AbstractSingleSelectChoice(java.lang.String id,
                                  IModel choices)
See Also:
AbstractChoice.AbstractChoice(String, IModel)

AbstractSingleSelectChoice

public AbstractSingleSelectChoice(java.lang.String id,
                                  IModel model,
                                  IModel choices)
See Also:
AbstractChoice.AbstractChoice(String, IModel,IModel)

AbstractSingleSelectChoice

public AbstractSingleSelectChoice(java.lang.String id,
                                  IModel choices,
                                  IChoiceRenderer renderer)
See Also:
AbstractChoice.AbstractChoice(String, IModel,IChoiceRenderer)

AbstractSingleSelectChoice

public AbstractSingleSelectChoice(java.lang.String id,
                                  IModel model,
                                  IModel choices,
                                  IChoiceRenderer renderer)
See Also:
AbstractChoice.AbstractChoice(String, IModel, IModel,IChoiceRenderer)
Method Detail

getModelValue

public java.lang.String getModelValue()
Overrides:
getModelValue in class FormComponent
Returns:
Value to return when model value is needed
See Also:
FormComponent.getModelValue()

isNullValid

public boolean isNullValid()
Is the null value a valid value? If it is, it means that the null value will be displayed, typically to the user as 'choose one' or something similar. Note that this doesn't say anything about whether a null value (not selecting a value) is permitted; use FormComponent.setRequired(boolean) for that.

Returns:
true when the null value is allowed.

setNullValid

public AbstractSingleSelectChoice setNullValid(boolean nullValid)
Is the null value a valid value? If it is, it means that the null value will be displayed, typically to the user as 'choose one' or something similar. Note that this doesn't say anything about whether a null value (not selecting a value) is permitted; use FormComponent.setRequired(boolean) for that.

Parameters:
nullValid - whether null is a valid value
Returns:
this for chaining

convertValue

protected final java.lang.Object convertValue(java.lang.String[] value)
Description copied from class: FormComponent
Subclasses should overwrite this if the conversion is not done through the type field and the IConverter. WARNING: this method may be removed in future versions. If conversion fails then a ConversionException should be thrown

Overrides:
convertValue in class FormComponent
Parameters:
value - The value can be the getInput() or through a cookie
Returns:
The converted value. default returns just the given value
See Also:
FormComponent.convertValue(String[])

convertChoiceIdToChoice

protected java.lang.Object convertChoiceIdToChoice(java.lang.String id)
Converts submitted choice id string back to choice object.

Parameters:
id - string id of one of the choice objects in the choices list. can be null.
Returns:
choice object. null if none match the specified id.

getDefaultChoice

protected java.lang.CharSequence getDefaultChoice(java.lang.Object selected)
The localizer will be ask for the property to display Depending on if null is allowed or not it will ask for: The choice for null is valid will always be returned. The choice when null is not valid will only be returned if the selected object is null.

Parameters:
selected - The object that's currently selected
Returns:
Any default choice, such as "Choose One", depending on the subclass
See Also:
AbstractChoice.getDefaultChoice(Object)

isSelected

protected boolean isSelected(java.lang.Object object,
                             int index,
                             java.lang.String selected)
Gets whether the given value represents the current selection. aram object The object to check

Parameters:
index - The index of the object in the collection
selected - The current selected id value
object - The object to check
Returns:
Whether the given value represents the current selection

getChoices

public java.util.List getChoices()
Returns:
The collection of object that this choice has

setChoices

public final org.apache.wicket.markup.html.form.AbstractChoice setChoices(IModel choices)
Sets the list of choices

Parameters:
choices - model representing the list of choices
Returns:
this for chaining

setChoices

public final org.apache.wicket.markup.html.form.AbstractChoice setChoices(java.util.List choices)
Sets the list of choices.

Parameters:
choices - the list of choices
Returns:
this for chaining

getChoiceRenderer

public final IChoiceRenderer getChoiceRenderer()
Returns:
The IChoiceRenderer used for rendering the data objects

setChoiceRenderer

public final org.apache.wicket.markup.html.form.AbstractChoice setChoiceRenderer(IChoiceRenderer renderer)
Set the choice renderer to be used.

Parameters:
renderer -
Returns:
this for chaining

detachModel

protected void detachModel()
Description copied from class: Component
Detaches the model for this component if it is detachable.

Overrides:
detachModel in class Component
See Also:
Component.detachModel()

isDisabled

protected boolean isDisabled(java.lang.Object object,
                             int index,
                             java.lang.String selected)
Gets whether the given value is disabled. This default implementation always returns false.

Parameters:
object - The object to check
index - The index in the choices collection this object is in.
selected - The currently selected string value
Returns:
Whether the given value represents the current selection

onComponentTagBody

protected void onComponentTagBody(MarkupStream markupStream,
                                  ComponentTag openTag)
Handle the container's body.

Overrides:
onComponentTagBody in class MarkupContainer
Parameters:
markupStream - The markup stream
openTag - The open tag for the body
See Also:
Component.onComponentTagBody(MarkupStream, ComponentTag)

appendOptionHtml

protected void appendOptionHtml(AppendingStringBuffer buffer,
                                java.lang.Object choice,
                                int index,
                                java.lang.String selected)
Generates and appends html for a single choice into the provided buffer

Parameters:
buffer - Appending string buffer that will have the generated html appended
choice - Choice object
index - The index of this option
selected - The currently selected string value

escapeOptionHtml

protected java.lang.CharSequence escapeOptionHtml(java.lang.String displayValue)
Method to override if you want special escaping of the options html.

Parameters:
displayValue -
Returns:
The escaped display value

supportsPersistence

protected boolean supportsPersistence()
Overrides:
supportsPersistence in class FormComponent
Returns:
True if this type of FormComponent can be persisted.
See Also:
FormComponent.supportsPersistence()

localizeDisplayValues

protected boolean localizeDisplayValues()
Override this method if you want to localize the display values of the generated options. By default false is returned so that the display values of options are not tested if they have a i18n key.

Returns:
true If you want to localize the display values, default == false


Copyright © 2004-2010 Apache Software Foundation. All Rights Reserved.