Class ListMultipleChoice<T>
- java.lang.Object
-
- org.apache.wicket.Component
-
- org.apache.wicket.MarkupContainer
-
- org.apache.wicket.markup.html.WebMarkupContainer
-
- org.apache.wicket.markup.html.form.LabeledWebMarkupContainer
-
- org.apache.wicket.markup.html.form.FormComponent<T>
-
- org.apache.wicket.markup.html.form.AbstractChoice<Collection<T>,T>
-
- org.apache.wicket.markup.html.form.ListMultipleChoice<T>
-
- Type Parameters:
T
- The model object type
- All Implemented Interfaces:
Serializable
,Iterable<Component>
,IEventSink
,IEventSource
,IFeedbackContributor
,IConverterLocator
,IGenericComponent<Collection<T>,FormComponent<Collection<T>>>
,IMetadataContext<Serializable,Component>
,IFormModelUpdateListener
,IFormVisitorParticipant
,ILabelProvider<String>
,IHeaderContributor
,IRequestableComponent
,IHierarchical<Component>
,IClusterable
- Direct Known Subclasses:
CheckBoxMultipleChoice
public class ListMultipleChoice<T> extends AbstractChoice<Collection<T>,T>
A multiple choice list component.- Author:
- Jonathan Locke, Johan Compagner, Martijn Dashorst
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.apache.wicket.markup.html.form.AbstractChoice
AbstractChoice.LabelPosition
-
-
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_RESERVED1, FLAG_RESERVED2, FLAG_RESERVED3, FLAG_RESERVED4, FLAG_RESERVED5, FLAG_RESERVED8, PARENT_PATH, PATH_SEPARATOR, RENDER, RFLAG_CONTAINER_DEQUEING, RFLAG_CONTAINER_HAS_REMOVALS
-
-
Constructor Summary
Constructors Constructor Description ListMultipleChoice(String id)
ListMultipleChoice(String id, List<? extends T> choices)
ListMultipleChoice(String id, List<? extends T> choices, int maxRows)
Creates a multiple choice list with a maximum number of visible rows.ListMultipleChoice(String id, List<? extends T> choices, IChoiceRenderer<? super T> renderer)
ListMultipleChoice(String id, IModel<? extends Collection<T>> object, List<? extends T> choices)
ListMultipleChoice(String id, IModel<? extends Collection<T>> object, List<? extends T> choices, IChoiceRenderer<? super T> renderer)
ListMultipleChoice(String id, IModel<? extends Collection<T>> model, IModel<? extends List<? extends T>> choices)
ListMultipleChoice(String id, IModel<? extends Collection<T>> model, IModel<? extends List<? extends T>> choices, IChoiceRenderer<? super T> renderer)
ListMultipleChoice(String id, IModel<? extends List<? extends T>> choices)
ListMultipleChoice(String id, IModel<? extends List<? extends T>> choices, IChoiceRenderer<? super T> renderer)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected List<T>
convertChoiceIdsToChoices(String[] ids)
Converts submitted choice ids to choice objects.protected Collection<T>
convertValue(String[] ids)
Subclasses should overwrite this if the conversion is not done through the type field and theIConverter
.String
getModelValue()
boolean
isRetainDisabledSelected()
If true, choices that were selected in the model but disabled in rendering will be retained in the model after a form submit.protected boolean
isSelected(T choice, int index, String selected)
Gets whether the given value represents the current selection.protected void
onComponentTag(ComponentTag tag)
Processes the component tag.ListMultipleChoice<T>
setMaxRows(int maxRows)
Sets the number of visible rows in the listbox.ListMultipleChoice<T>
setRetainDisabledSelected(boolean retain)
void
updateModel()
SeeFormComponent.updateCollectionModel(FormComponent)
for details on how the model is updated.-
Methods inherited from class org.apache.wicket.markup.html.form.AbstractChoice
appendOptionHtml, detachModel, escapeOptionHtml, getChoiceRenderer, getChoices, getChoicesModel, getDefaultChoice, isDisabled, localizeDisplayValues, onComponentTagBody, onDetach, setChoiceRenderer, setChoices, setChoices, setOptionAttributes, setType
-
Methods inherited from class org.apache.wicket.markup.html.form.FormComponent
add, add, checkRequired, clearInput, convertInput, error, getConvertedInput, getDefaultLabel, getDefaultLabel, getForm, getInput, getInputAsArray, getInputName, getParameterValues, getRawInput, getType, getValidatorKeyPrefix, getValidators, getValue, hasRawInput, inputAsInt, inputAsInt, inputAsIntArray, inputChanged, internalOnModelChanged, invalid, isInputNullable, isMultiPart, isRequired, isValid, newValidatable, newValidationError, onBeforeRender, onDisabled, onInvalid, onValid, processChildren, processInput, remove, reportRequiredError, setConvertedInput, setLabel, setModelValue, setRequired, shouldTrimInput, trim, updateAutoLabels, updateAutoLabels, updateCollectionModel, valid, validate, validateRequired, validateValidators, visitComponentsPostOrder, visitFormComponentsPostOrder
-
Methods inherited from class org.apache.wicket.markup.html.form.LabeledWebMarkupContainer
getLabel
-
Methods inherited from class org.apache.wicket.markup.html.WebMarkupContainer
getWebApplication, getWebPage, getWebRequest, getWebResponse, getWebSession
-
Methods inherited from class org.apache.wicket.MarkupContainer
add, addDequeuedComponent, addOrReplace, autoAdd, canDequeueTag, contains, dequeue, dequeue, dequeuePreamble, findChildComponent, findComponentToDequeue, get, getAssociatedMarkup, getAssociatedMarkupStream, getMarkup, getMarkupType, getRegionMarkup, internalAdd, internalInitialize, iterator, iterator, newDequeueContext, onInitialize, onRender, queue, remove, remove, removeAll, renderAll, renderAssociatedMarkup, renderAssociatedMarkup, renderNext, replace, setDefaultModel, size, stream, streamChildren, toString, toString, visitChildren, visitChildren
-
Methods inherited from class org.apache.wicket.Component
add, addStateChange, beforeRender, canCallListener, canCallListenerAfterExpiry, checkComponentTag, checkComponentTagAttribute, checkHierarchyChange, clearOriginalDestination, configure, continueToOriginalDestination, createConverter, debug, detach, detachModels, determineVisibility, error, exceptionMessage, fatal, findMarkupStream, findPage, findParent, findParentWithAssociatedMarkup, getAjaxRegionMarkupId, getApplication, getBehaviorById, getBehaviorId, getBehaviors, getBehaviors, getClassRelativePath, getConverter, getDefaultModel, getDefaultModelObject, getDefaultModelObjectAsString, getDefaultModelObjectAsString, getEscapeModelStrings, getFeedbackMessages, getFlag, getId, getInnermostModel, getInnermostModel, getLocale, getLocalizer, getMarkup, getMarkupAttributes, getMarkupId, getMarkupId, getMarkupIdFromMarkup, getMarkupIdImpl, getMarkupSourcingStrategy, getMarkupTag, 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, internalRenderComponent, internalRenderHead, isActionAuthorized, isAuto, isBehaviorAccepted, isEnableAllowed, isEnabled, isEnabledInHierarchy, isIgnoreAttributeModifier, isInitialized, isRenderAllowed, isRendering, isStateless, isVersioned, isVisibilityAllowed, isVisible, isVisibleInHierarchy, markRendering, modelChanged, modelChanging, newMarkupSourcingStrategy, onAfterRender, onConfigure, onEvent, onModelChanged, onModelChanging, onReAdd, onRemove, redirectToInterceptPage, remove, remove, render, renderComponentTag, rendered, renderHead, renderPart, renderPlaceholderTag, replaceComponentTagBody, replaceWith, sameInnermostModel, sameInnermostModel, send, setAuto, setDefaultModelObject, setEnabled, setEscapeModelStrings, setFlag, setIgnoreAttributeModifier, setMarkup, setMarkupId, setMarkupIdImpl, setMetaData, setOutputMarkupId, setOutputMarkupPlaceholderTag, setParent, setRenderBodyOnly, setResponsePage, setResponsePage, setResponsePage, setVersioned, setVisibilityAllowed, setVisible, success, urlFor, urlFor, urlFor, urlForListener, urlForListener, visitParents, visitParents, warn, wrap
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.apache.wicket.IGenericComponent
getDefaultModel, getDefaultModelObject, getModel, getModelObject, setDefaultModel, setDefaultModelObject, setModel, setModelObject
-
Methods inherited from interface java.lang.Iterable
forEach, spliterator
-
-
-
-
Constructor Detail
-
ListMultipleChoice
public ListMultipleChoice(String id)
- See Also:
AbstractChoice(String)
-
ListMultipleChoice
public ListMultipleChoice(String id, List<? extends T> choices)
- See Also:
AbstractChoice(String, List)
-
ListMultipleChoice
public ListMultipleChoice(String id, List<? extends T> choices, int maxRows)
Creates a multiple choice list with a maximum number of visible rows.- Parameters:
id
- component idchoices
- list of choicesmaxRows
- the maximum number of visible rows.- See Also:
AbstractChoice(String, List)
-
ListMultipleChoice
public ListMultipleChoice(String id, List<? extends T> choices, IChoiceRenderer<? super T> renderer)
-
ListMultipleChoice
public ListMultipleChoice(String id, IModel<? extends Collection<T>> object, List<? extends T> choices)
- Parameters:
id
-object
-choices
-- See Also:
AbstractChoice(String, IModel, List)
-
ListMultipleChoice
public ListMultipleChoice(String id, IModel<? extends Collection<T>> object, List<? extends T> choices, IChoiceRenderer<? super T> renderer)
- Parameters:
id
-object
-choices
-renderer
-- See Also:
AbstractChoice(String, IModel, List,IChoiceRenderer)
-
ListMultipleChoice
public ListMultipleChoice(String id, IModel<? extends List<? extends T>> choices)
- See Also:
AbstractChoice(String, IModel)
-
ListMultipleChoice
public ListMultipleChoice(String id, IModel<? extends Collection<T>> model, IModel<? extends List<? extends T>> choices)
- Parameters:
id
-model
-choices
-- See Also:
AbstractChoice(String, IModel,IModel)
-
ListMultipleChoice
public ListMultipleChoice(String id, IModel<? extends List<? extends T>> choices, IChoiceRenderer<? super T> renderer)
-
ListMultipleChoice
public ListMultipleChoice(String id, IModel<? extends Collection<T>> model, IModel<? extends List<? extends T>> choices, IChoiceRenderer<? super T> renderer)
- Parameters:
id
-model
-choices
-renderer
-- See Also:
AbstractChoice(String, IModel, IModel,IChoiceRenderer)
-
-
Method Detail
-
setMaxRows
public final ListMultipleChoice<T> setMaxRows(int maxRows)
Sets the number of visible rows in the listbox.- Parameters:
maxRows
- the number of visible rows- Returns:
- this
-
getModelValue
public final String getModelValue()
- Overrides:
getModelValue
in classFormComponent<Collection<T>>
- Returns:
- Value to return when model value is needed
- See Also:
FormComponent.getModelValue()
-
isSelected
protected final boolean isSelected(T choice, int index, String selected)
Description copied from class:AbstractChoice
Gets whether the given value represents the current selection.- Specified by:
isSelected
in classAbstractChoice<Collection<T>,T>
- Parameters:
choice
- The object to checkindex
- 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
- See Also:
AbstractChoice.isSelected(Object,int, String)
-
onComponentTag
protected void onComponentTag(ComponentTag tag)
Description copied from class:FormComponent
Processes the component tag.- Overrides:
onComponentTag
in classFormComponent<Collection<T>>
- Parameters:
tag
- Tag to modify- See Also:
Component.onComponentTag(ComponentTag)
-
convertValue
protected Collection<T> convertValue(String[] ids) throws ConversionException
Description copied from class:FormComponent
Subclasses should overwrite this if the conversion is not done through the type field and theIConverter
. WARNING: this method may be removed in future versions. If conversion fails then a ConversionException should be thrown- Overrides:
convertValue
in classFormComponent<Collection<T>>
- Parameters:
ids
- The value can be the getInput() or through a cookie- Returns:
- The converted value. default returns just the given value
- Throws:
ConversionException
- If input can't be converted- See Also:
FormComponent.convertValue(String[])
-
convertChoiceIdsToChoices
protected List<T> convertChoiceIdsToChoices(String[] ids)
Converts submitted choice ids to choice objects.- Parameters:
ids
- choice ids. this array is nonnull and always contains at least one id.- Returns:
- list of choices.
-
updateModel
public void updateModel()
SeeFormComponent.updateCollectionModel(FormComponent)
for details on how the model is updated.- Specified by:
updateModel
in interfaceIFormModelUpdateListener
- Overrides:
updateModel
in classFormComponent<Collection<T>>
-
isRetainDisabledSelected
public boolean isRetainDisabledSelected()
If true, choices that were selected in the model but disabled in rendering will be retained in the model after a form submit. Example: Choices are [1, 2, 3, 4]. Model collection is [2, 4]. In rendering, choices 2 and 3 are disabled (AbstractChoice.isDisabled(Object, int, String)
). That means that four checkboxes are rendered, checkboxes 2 and 4 are checked, but 2 and 3 are not clickable. User checks 1 and unchecks 4. If this flag is off, the model will be updated to [1]. This is because the browser does not re-submit a disabled checked checkbox: it only submits [1]. Therefore Wicket will only see the [1] and update the model accordingly. If you set this flag to true, Wicket will check the model before updating to find choices that were selected but disabled. These choices will then be retained, leading to a new model value of [1, 2] as (probably) expected by the user. Note that this will lead to additional calls toAbstractChoice.isDisabled(Object, int, String)
.- Returns:
- flag
-
setRetainDisabledSelected
public ListMultipleChoice<T> setRetainDisabledSelected(boolean retain)
- Parameters:
retain
- flag- Returns:
- this
- See Also:
isRetainDisabledSelected()
-
-