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:
Serializable, IClusterable, IConverterLocator, IFormModelUpdateListener, IFormVisitorParticipant, ILabelProvider<String>
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

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
 
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_CONFIGURED, FLAG_INITIALIZED, FLAG_REMOVING_FROM_HIERARCHY, FLAG_RESERVED1, FLAG_RESERVED2, FLAG_RESERVED3, FLAG_RESERVED4, FLAG_RESERVED5, FLAG_RESERVED6, FLAG_RESERVED7, FLAG_RESERVED8, PARENT_PATH, PATH_SEPARATOR, RENDER
 
Constructor Summary
AbstractChoice(String id)
          Constructor.
AbstractChoice(String id, IModel<? extends List<? extends E>> choices)
          Constructor.
AbstractChoice(String id, IModel<? extends List<? extends E>> choices, IChoiceRenderer<? super E> renderer)
          Constructor.
AbstractChoice(String id, IModel<T> model, IModel<? extends List<? extends E>> choices)
          Constructor.
AbstractChoice(String id, IModel<T> model, IModel<? extends List<? extends E>> choices, IChoiceRenderer<? super E> renderer)
          Constructor.
AbstractChoice(String id, IModel<T> model, List<? extends E> choices)
          Constructor.
AbstractChoice(String id, IModel<T> model, List<? extends E> choices, IChoiceRenderer<? super E> renderer)
          Constructor.
AbstractChoice(String id, List<? extends E> choices)
          Constructor.
AbstractChoice(String id, List<? extends E> choices, IChoiceRenderer<? super E> renderer)
          Constructor.
 
Method Summary
protected  void appendOptionHtml(AppendingStringBuffer buffer, E choice, int index, 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  CharSequence escapeOptionHtml(String displayValue)
          Method to override if you want special escaping of the options html.
 IChoiceRenderer<? super E> getChoiceRenderer()
           
 List<? extends E> getChoices()
           
protected  CharSequence getDefaultChoice(Object selected)
           
protected  boolean isDisabled(E object, int index, String selected)
          Gets whether the given value is disabled.
protected abstract  boolean isSelected(E object, int index, 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.
 AbstractChoice<T,E> setChoiceRenderer(IChoiceRenderer<? super E> renderer)
          Set the choice renderer to be used.
 AbstractChoice<T,E> setChoices(IModel<? extends List<? extends E>> choices)
          Sets the list of choices
 AbstractChoice<T,E> setChoices(List<E> choices)
          Sets the list of choices.
protected  boolean supportsPersistence()
           
 
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, isPersistent, isRequired, isValid, newValidatable, onComponentTag, onDetach, onDisabled, onInvalid, onValid, processChildren, processInput, setConvertedInput, setLabel, setModel, setModelObject, setModelValue, setModelValue, setPersistent, setRequired, setType, shouldTrimInput, trim, 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
getMarkupType, getWebPage, getWebRequest
 
Methods inherited from class org.apache.wicket.MarkupContainer
add, addOrReplace, autoAdd, autoAdd, contains, findMarkupStream, get, get, getAssociatedMarkupStream, getMarkupStream, hasAssociatedMarkup, internalAdd, isTransparentResolver, iterator, iterator, newMarkupResourceStream, onAfterRenderChildren, onRender, remove, remove, removeAll, renderAll, renderAssociatedMarkup, renderComponentTagBody, renderNext, replace, setDefaultModel, setMarkupStream, size, swap, toString, toString, visitChildren, visitChildren
 
Methods inherited from class org.apache.wicket.Component
add, addStateChange, afterRender, beforeRender, callOnBeforeRenderIfNotVisible, checkComponentTag, checkComponentTagAttribute, checkHierarchyChange, configure, continueToOriginalDestination, debug, detach, detachBehaviors, detachModels, determineVisibility, error, exceptionMessage, fatal, findPage, findParent, findParentWithAssociatedMarkup, getAjaxRegionMarkupId, getApplication, getBehaviors, getBehaviors, getBehaviorsRawList, getClassRelativePath, getComponentBorder, getConverter, getConverter, getDefaultModel, getDefaultModelObject, getDefaultModelObjectAsString, getDefaultModelObjectAsString, getEscapeModelStrings, getFeedbackMessage, getFlag, getFlag, getId, getInnermostModel, getInnermostModel, getLocale, getLocalizer, getMarkupAttributes, getMarkupId, getMarkupId, getMarkupIdImpl, getMetaData, getModelComparator, getOutputMarkupId, getOutputMarkupPlaceholderTag, getPage, 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, isEnabledInHierarchy, isIgnoreAttributeModifier, isRenderAllowed, isStateless, isVersioned, isVisibilityAllowed, isVisible, isVisibleInHierarchy, locateMarkupStream, markAttached, markRendering, modelChanged, modelChanging, onAfterRender, onAttach, onBeforeRender, onBeginRequest, onConfigure, onEndRequest, onInitialize, onModelChanged, onModelChanging, onRemove, prepareForRender, prepareForRender, redirectToInterceptPage, remove, remove, render, render, renderComponent, renderComponent, renderComponentTag, rendered, renderHead, renderPlaceholderTag, replaceComponentTagBody, replaceWith, sameInnermostModel, sameInnermostModel, setAuto, setComponentBorder, setDefaultModelObject, setEnabled, setEscapeModelStrings, setFlag, setFlag, setIgnoreAttributeModifier, setMarkupId, setMarkupIdImpl, setMetaData, 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
 

Constructor Detail

AbstractChoice

public AbstractChoice(String id)
Constructor.

Parameters:
id - See Component
See Also:
Component.Component(String)

AbstractChoice

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

Parameters:
id - See Component
choices - The collection of choices in the dropdown
See Also:
Component.Component(String)

AbstractChoice

public AbstractChoice(String id,
                      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
See Also:
Component.Component(String)

AbstractChoice

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

Parameters:
id - See Component
model - See Component
choices - The collection of choices in the dropdown
See Also:
Component.Component(String, IModel)

AbstractChoice

public AbstractChoice(String id,
                      IModel<T> model,
                      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
See Also:
Component.Component(String, IModel)

AbstractChoice

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

Parameters:
id - See Component
choices - The collection of choices in the dropdown
See Also:
Component.Component(String)

AbstractChoice

public AbstractChoice(String id,
                      IModel<? extends 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
See Also:
Component.Component(String)

AbstractChoice

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

Parameters:
id - See Component
model - See Component
choices - The collection of choices in the dropdown
See Also:
Component.Component(String, IModel)

AbstractChoice

public AbstractChoice(String id,
                      IModel<T> model,
                      IModel<? extends 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
See Also:
Component.Component(String, IModel)
Method Detail

getChoices

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

setChoices

public final AbstractChoice<T,E> setChoices(IModel<? extends 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(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
See Also:
Component.detachModel()

getDefaultChoice

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

isSelected

protected abstract boolean isSelected(E object,
                                      int index,
                                      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,
                             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,
                                E choice,
                                int index,
                                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 CharSequence escapeOptionHtml(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<T>
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-2011 Apache Software Foundation. All Rights Reserved.