org.apache.wicket.markup.html.form
Class AbstractChoice<T,E>

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<T>
                      extended by org.apache.wicket.markup.html.form.AbstractChoice<T,E>
Type Parameters:
T - The model object type
E - class of a single element in the choices list
All Implemented Interfaces:
java.io.Serializable, java.lang.Iterable<Component>, IEventSink, IEventSource, IClusterable, IConverterLocator, IFormModelUpdateListener, IFormVisitorParticipant, ILabelProvider<java.lang.String>, IHeaderContributor, IRequestableComponent, IHierarchical<Component>
Direct Known Subclasses:
AbstractSingleSelectChoice, ListMultipleChoice

public abstract class AbstractChoice<T,E>
extends FormComponent<T>

Abstract base class for all choice (html select) options.

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

Field Summary
 
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_INITIALIZED, FLAG_REMOVING_FROM_HIERARCHY, FLAG_RESERVED1, FLAG_RESERVED2, FLAG_RESERVED3, FLAG_RESERVED4, FLAG_RESERVED5, FLAG_RESERVED8, PARENT_PATH, PATH_SEPARATOR, RENDER
 
Constructor Summary
AbstractChoice(java.lang.String id)
          Constructor.
AbstractChoice(java.lang.String id, IModel<? extends java.util.List<? extends E>> choices)
          Constructor.
AbstractChoice(java.lang.String id, IModel<? extends java.util.List<? extends E>> choices, IChoiceRenderer<? super E> renderer)
          Constructor.
AbstractChoice(java.lang.String id, IModel<T> model, IModel<? extends java.util.List<? extends E>> choices)
          Constructor.
AbstractChoice(java.lang.String id, IModel<T> model, IModel<? extends java.util.List<? extends E>> choices, IChoiceRenderer<? super E> renderer)
          Constructor.
AbstractChoice(java.lang.String id, IModel<T> model, java.util.List<? extends E> choices)
          Constructor.
AbstractChoice(java.lang.String id, IModel<T> model, java.util.List<? extends E> choices, IChoiceRenderer<? super E> renderer)
          Constructor.
AbstractChoice(java.lang.String id, java.util.List<? extends E> choices)
          Constructor.
AbstractChoice(java.lang.String id, java.util.List<? extends E> choices, IChoiceRenderer<? super E> renderer)
          Constructor.
 
Method Summary
protected  void appendOptionHtml(AppendingStringBuffer buffer, E choice, int index, java.lang.String selected)
          Generates and appends html for a single choice into the provided buffer
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<? super E> getChoiceRenderer()
           
 java.util.List<? extends E> getChoices()
           
protected  java.lang.CharSequence getDefaultChoice(java.lang.String selectedValue)
          Get a default choice to be rendered additionally to the choices available in the model.
protected  boolean isDisabled(E object, int index, java.lang.String selected)
          Gets whether the given value is disabled.
protected abstract  boolean isSelected(E 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.
 void onComponentTagBody(MarkupStream markupStream, ComponentTag openTag)
          Handle the container's body.
 AbstractChoice<T,E> setChoiceRenderer(IChoiceRenderer<? super E> renderer)
          Set the choice renderer to be used.
 AbstractChoice<T,E> setChoices(IModel<? extends java.util.List<? extends E>> choices)
          Sets the list of choices
 AbstractChoice<T,E> setChoices(java.util.List<E> choices)
          Sets the list of choices.
 FormComponent<T> setType(java.lang.Class<?> type)
          Sets the type that will be used when updating the model for this component.
 
Methods inherited from class org.apache.wicket.markup.html.form.FormComponent
add, add, checkRequired, clearInput, convertInput, convertValue, error, getConvertedInput, getDefaultLabel, getDefaultLabel, getForm, getInput, getInputAsArray, getInputName, getModel, getModelObject, getModelValue, getRawInput, getType, getValidatorKeyPrefix, getValidators, getValue, hasRawInput, inputAsInt, inputAsInt, inputAsIntArray, inputChanged, internalOnModelChanged, invalid, isInputNullable, isMultiPart, isRequired, isValid, newValidatable, onComponentTag, onDetach, onDisabled, onInvalid, onValid, processChildren, processInput, remove, setConvertedInput, setLabel, setModel, setModelObject, setModelValue, setRequired, shouldTrimInput, trim, updateCollectionModel, updateModel, valid, validate, validateRequired, validateValidators, visitComponentsPostOrder, visitFormComponentsPostOrder
 
Methods inherited from class org.apache.wicket.markup.html.form.LabeledWebMarkupContainer
getLabel, setLabelInternal
 
Methods inherited from class org.apache.wicket.markup.html.WebMarkupContainer
getWebPage, getWebRequest
 
Methods inherited from class org.apache.wicket.MarkupContainer
add, addOrReplace, autoAdd, contains, get, get, getAssociatedMarkup, getAssociatedMarkupStream, getMarkup, getMarkupType, hasAssociatedMarkup, internalAdd, internalInitialize, iterator, iterator, onAfterRenderChildren, onMarkupAttached, onRender, remove, remove, removeAll, renderAll, renderAssociatedMarkup, renderNext, replace, setDefaultModel, size, swap, toString, toString, visitChildren, visitChildren, visitChildren, visitChildren
 
Methods inherited from class org.apache.wicket.Component
add, addStateChange, afterRender, beforeRender, canCallListenerInterface, checkComponentTag, checkComponentTagAttribute, checkHierarchyChange, configure, continueToOriginalDestination, debug, detach, detachModels, determineVisibility, error, exceptionMessage, fatal, findMarkupStream, findPage, findParent, findParentWithAssociatedMarkup, getAjaxRegionMarkupId, getApplication, getBehaviorById, getBehaviorId, getBehaviors, getBehaviors, getClassRelativePath, getConverter, getDefaultModel, getDefaultModelObject, getDefaultModelObjectAsString, getDefaultModelObjectAsString, getEscapeModelStrings, getFeedbackMessage, getFeedbackMessages, getFlag, getId, getInnermostModel, getInnermostModel, getLocale, getLocalizer, getMarkup, getMarkupAttributes, getMarkupId, getMarkupId, getMarkupIdFromMarkup, getMarkupIdImpl, getMarkupSourcingStrategy, getMetaData, getModelComparator, getOutputMarkupId, getOutputMarkupPlaceholderTag, getPage, getPageRelativePath, getParent, getPath, getRenderBodyOnly, getRequest, getRequestCycle, getRequestFlag, getResponse, getSession, getSizeInBytes, getStatelessHint, getString, getString, getString, getStyle, getVariation, hasBeenRendered, hasErrorMessage, hasFeedbackMessage, info, initModel, internalPrepareForRender, internalRenderComponent, isActionAuthorized, isAuto, isBehaviorAccepted, isEnableAllowed, isEnabled, isEnabledInHierarchy, isIgnoreAttributeModifier, isRenderAllowed, isStateless, isVersioned, isVisibilityAllowed, isVisible, isVisibleInHierarchy, locateMarkupStream, markRendering, modelChanged, modelChanging, newMarkupSourcingStrategy, onAfterRender, onBeforeRender, onConfigure, onEvent, onInitialize, onModelChanged, onModelChanging, onRemove, prepareForRender, redirectToInterceptPage, remove, remove, render, renderComponentTag, rendered, renderHead, renderHead, renderHead, renderPlaceholderTag, replaceComponentTagBody, replaceWith, sameInnermostModel, sameInnermostModel, send, setAuto, setDefaultModelObject, setEnabled, setEscapeModelStrings, setFlag, setIgnoreAttributeModifier, setMarkup, setMarkupId, setMarkupIdImpl, setMetaData, setOutputMarkupId, setOutputMarkupPlaceholderTag, setParent, setRenderBodyOnly, setRequestFlag, setResponsePage, setResponsePage, setResponsePage, setVersioned, setVisibilityAllowed, setVisible, success, 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
 

Constructor Detail

AbstractChoice

public AbstractChoice(java.lang.String id)
Constructor.

Parameters:
id - See Component

AbstractChoice

public AbstractChoice(java.lang.String id,
                      java.util.List<? extends E> choices)
Constructor.

Parameters:
id - See Component
choices - The collection of choices in the dropdown

AbstractChoice

public AbstractChoice(java.lang.String id,
                      java.util.List<? extends E> choices,
                      IChoiceRenderer<? super E> renderer)
Constructor.

Parameters:
id - See Component
renderer - The rendering engine
choices - The collection of choices in the dropdown

AbstractChoice

public AbstractChoice(java.lang.String id,
                      IModel<T> model,
                      java.util.List<? extends E> choices)
Constructor.

Parameters:
id - See Component
model - See Component
choices - The collection of choices in the dropdown

AbstractChoice

public AbstractChoice(java.lang.String id,
                      IModel<T> model,
                      java.util.List<? extends E> choices,
                      IChoiceRenderer<? super E> renderer)
Constructor.

Parameters:
id - See Component
model - See Component
choices - The drop down choices
renderer - The rendering engine

AbstractChoice

public AbstractChoice(java.lang.String id,
                      IModel<? extends java.util.List<? extends E>> choices)
Constructor.

Parameters:
id - See Component
choices - The collection of choices in the dropdown

AbstractChoice

public AbstractChoice(java.lang.String id,
                      IModel<? extends java.util.List<? extends E>> choices,
                      IChoiceRenderer<? super E> renderer)
Constructor.

Parameters:
id - See Component
renderer - The rendering engine
choices - The collection of choices in the dropdown

AbstractChoice

public AbstractChoice(java.lang.String id,
                      IModel<T> model,
                      IModel<? extends java.util.List<? extends E>> choices)
Constructor.

Parameters:
id - See Component
model - See Component
choices - The collection of choices in the dropdown

AbstractChoice

public AbstractChoice(java.lang.String id,
                      IModel<T> model,
                      IModel<? extends java.util.List<? extends E>> choices,
                      IChoiceRenderer<? super E> renderer)
Constructor.

Parameters:
id - See Component
model - See Component
renderer - The rendering engine
choices - The drop down choices
Method Detail

getChoices

public java.util.List<? extends E> getChoices()
Returns:
The collection of object that this choice has

setChoices

public final AbstractChoice<T,E> setChoices(IModel<? extends java.util.List<? extends E>> choices)
Sets the list of choices

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

setChoices

public final AbstractChoice<T,E> setChoices(java.util.List<E> choices)
Sets the list of choices.

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

getChoiceRenderer

public final IChoiceRenderer<? super E> getChoiceRenderer()
Returns:
The IChoiceRenderer used for rendering the data objects

setChoiceRenderer

public final AbstractChoice<T,E> setChoiceRenderer(IChoiceRenderer<? super E> 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

getDefaultChoice

protected java.lang.CharSequence getDefaultChoice(java.lang.String selectedValue)
Get a default choice to be rendered additionally to the choices available in the model.

Parameters:
selectedValue - The currently selected value
Returns:
Any default choice, such as "Choose One", depending on the subclass
See Also:
setChoices(IModel)

isSelected

protected abstract boolean isSelected(E object,
                                      int index,
                                      java.lang.String selected)
Gets whether the given value represents the current selection.

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

isDisabled

protected boolean isDisabled(E 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

public 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

appendOptionHtml

protected void appendOptionHtml(AppendingStringBuffer buffer,
                                E 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

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

setType

public final FormComponent<T> setType(java.lang.Class<?> type)
Description copied from class: FormComponent
Sets the type that will be used when updating the model for this component. If no type is specified String type is assumed.

Overrides:
setType in class FormComponent<T>
Returns:
this for chaining


Copyright © 2006-2011 Apache Software Foundation. All Rights Reserved.