wicket.markup.html.form
Class RadioChoice

java.lang.Object
  extended by wicket.Component
      extended by wicket.MarkupContainer
          extended by wicket.markup.html.WebMarkupContainer
              extended by wicket.markup.html.form.FormComponent
                  extended by wicket.markup.html.form.RadioChoice
All Implemented Interfaces:
java.io.Serializable, IRequestListener, IOnChangeListener

public class RadioChoice
extends FormComponent
implements IOnChangeListener

A choice subclass that shows choices in radio style.

Java:

 List SITES = Arrays.asList(new String[] { "The Server Side", "Java Lobby", "Java.Net" });
 // Add a radio choice component that uses Input's 'site' property to designate the
 // current selection, and that uses the SITES list for the available options.
 form.add(new RadioChoice("site", SITES));
 
HTML:
   <span valign="top" wicket:id="site">
        <input type="radio">site 1</input>
        <input type="radio">site 2</input>
   </span>
 

You can can extend this class and override method wantOnSelectionChangedNotifications() to force server roundtrips on each selection change.

Author:
Jonathan Locke, Igor Vaynberg (ivaynberg)
See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class wicket.markup.html.form.FormComponent
FormComponent.IVisitor
 
Nested classes/interfaces inherited from class wicket.Component
Component.ComponentModelChange, Component.EnabledChange, Component.VisibilityChange
 
Field Summary
 
Fields inherited from class wicket.markup.html.form.FormComponent
FLAG_CONVERT_EMPTY_INPUT_STRING_TO_NULL, VALUE_SEPARATOR
 
Fields inherited from class wicket.Component
ENABLE, FLAG_RESERVED1, FLAG_RESERVED2, FLAG_RESERVED3, FLAG_RESERVED4, FLAG_RESERVED5, FLAG_RESERVED6, FLAG_RESERVED7, FLAG_RESERVED8, PATH_SEPARATOR, RENDER
 
Fields inherited from interface wicket.markup.html.form.IOnChangeListener
INTERFACE
 
Constructor Summary
RadioChoice(java.lang.String id)
          Constructor
RadioChoice(java.lang.String id, IModel choices)
          Constructor
RadioChoice(java.lang.String id, IModel choices, IChoiceRenderer renderer)
          Constructor
RadioChoice(java.lang.String id, IModel model, IModel choices)
          Constructor
RadioChoice(java.lang.String id, IModel model, IModel choices, IChoiceRenderer renderer)
          Constructor
RadioChoice(java.lang.String id, IModel model, java.util.List choices)
          Constructor
RadioChoice(java.lang.String id, IModel model, java.util.List choices, IChoiceRenderer renderer)
          Constructor
RadioChoice(java.lang.String id, java.util.List choices)
          Constructor
RadioChoice(java.lang.String id, java.util.List choices, IChoiceRenderer renderer)
          Constructor
 
Method Summary
protected  void appendOptionHtml(AppendingStringBuffer buffer, java.lang.Object choice, int index, java.lang.String selected)
          Generats and appends html for a single choice into the provided buffer
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.
 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()
           
 java.lang.String getPrefix()
           
 java.lang.String getSuffix()
           
 boolean isNullValid()
          Is the null value a valid value?
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.
 void onSelectionChanged()
          Called when a new option is selected.
protected  void onSelectionChanged(java.lang.Object newSelection)
          Template method that can be overriden by clients that implement IOnChangeListener to be notified by onChange events of a select element.
 void setChoiceRenderer(IChoiceRenderer renderer)
          Set the choice renderer to be used.
 void setChoices(IModel choices)
          Sets the list of choices
 void setChoices(java.util.List choices)
          Sets the list of choices.
 void setNullValid(boolean nullValid)
          Is the null value a valid value?
 RadioChoice setPrefix(java.lang.String prefix)
           
 RadioChoice setSuffix(java.lang.String suffix)
           
protected  boolean supportsPersistence()
           
protected  boolean wantOnSelectionChangedNotifications()
          Whether this component's onSelectionChanged event handler should called using javascript if the selection changes.
 
Methods inherited from class wicket.markup.html.form.FormComponent
add, checkRequired, clearInput, convert, error, getConvertedInput, getForm, getInput, getInputAsArray, getInputName, getLabel, getRawInput, getType, getValidatorKeyPrefix, getValidators, getValue, hasRawInput, inputAsInt, inputAsInt, inputAsIntArray, inputAsStringArray, inputChanged, internalOnModelChanged, invalid, isInputNullable, isMultiPart, isPersistent, isRequired, isValid, isValidated, onComponentTag, onDetach, onDisabled, onInvalid, onValid, processInput, setLabel, setModelValue, setModelValue, setPersistent, setRequired, setType, updateModel, valid, validate, validateRequired, validateValidators
 
Methods inherited from class wicket.markup.html.WebMarkupContainer
getMarkupType, getWebPage
 
Methods inherited from class wicket.MarkupContainer
add, autoAdd, contains, findMarkupStream, get, getAssociatedMarkupStream, getMarkupStream, internalAdd, internalAttach, internalDetach, isTransparentResolver, iterator, iterator, newMarkupResourceStream, onRender, remove, remove, removeAll, renderAll, renderAssociatedMarkup, renderComponentTagBody, replace, setMarkupStream, setModel, size, toString, toString, visitChildren, visitChildren
 
Methods inherited from class wicket.Component
add, addStateChange, checkComponentTag, checkComponentTagAttribute, continueToOriginalDestination, debug, detachBehaviors, detachModels, error, exceptionMessage, fatal, findPage, findParent, findParentWithAssociatedMarkup, getApplication, getApplicationPages, getApplicationSettings, getBehaviors, getBehaviors, getClassRelativePath, getConverter, getEscapeModelStrings, getFeedbackMessage, getFlag, getFlag, getId, getLocale, getLocalizer, getMarkupAttributes, getMarkupId, getMetaData, getModel, getModelComparator, getModelObject, getModelObjectAsString, getOutputMarkupId, getPage, getPageFactory, getPageRelativePath, getParent, getPath, getRenderBodyOnly, getRequest, getRequestCycle, getResponse, getSession, getSizeInBytes, getString, getString, getString, getStyle, getVariation, hasErrorMessage, hasFeedbackMessage, info, initModel, internalOnAttach, internalOnDetach, isActionAuthorized, isAncestorOf, isBehaviorAccepted, isEnableAllowed, isEnabled, isHeadRendered, isIgnoreAttributeModifier, isRenderAllowed, isVersioned, isVisible, isVisibleInHierarchy, modelChanged, modelChanging, newPage, newPage, onAfterRender, onAttach, onBeforeRender, onBeginRequest, onEndRequest, onModelChanged, onModelChanging, onRender, redirectToInterceptPage, remove, render, render, renderComponent, renderComponent, renderComponentTag, rendered, renderedBehaviors, renderHead, replaceComponentTagBody, replaceWith, resetHeadRendered, sameRootModel, sameRootModel, setAuto, setEnabled, setEscapeModelStrings, setFlag, setFlag, setIgnoreAttributeModifier, setMetaData, setModelObject, setOutputMarkupId, setRedirect, setRenderBodyOnly, setResponsePage, setResponsePage, setResponsePage, setVersioned, setVisible, urlFor, urlFor, urlFor, urlFor, urlFor, visitParents, warn
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

RadioChoice

public RadioChoice(java.lang.String id)
Constructor

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

RadioChoice

public RadioChoice(java.lang.String id,
                   java.util.List choices)
Constructor

Parameters:
id - See Component
choices - The collection of choices in the radio choice
See Also:
Component.Component(String), AbstractChoice.AbstractChoice(String, List)

RadioChoice

public RadioChoice(java.lang.String id,
                   java.util.List choices,
                   IChoiceRenderer renderer)
Constructor

Parameters:
id - See Component
renderer - The rendering engine
choices - The collection of choices in the radio choice
See Also:
Component.Component(String), AbstractChoice.AbstractChoice(String, List,IChoiceRenderer)

RadioChoice

public RadioChoice(java.lang.String id,
                   IModel model,
                   java.util.List choices)
Constructor

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

RadioChoice

public RadioChoice(java.lang.String id,
                   IModel model,
                   java.util.List choices,
                   IChoiceRenderer renderer)
Constructor

Parameters:
id - See Component
model - See Component
choices - The collection of choices in the radio choice
renderer - The rendering engine
See Also:
Component.Component(String, IModel), AbstractChoice.AbstractChoice(String, IModel, List,IChoiceRenderer)

RadioChoice

public RadioChoice(java.lang.String id,
                   IModel choices)
Constructor

Parameters:
id - See Component
choices - The collection of choices in the radio choice
See Also:
Component.Component(String), AbstractChoice.AbstractChoice(String, IModel)

RadioChoice

public RadioChoice(java.lang.String id,
                   IModel model,
                   IModel choices)
Constructor

Parameters:
id - See Component
model - The model that is updated with changes in this component. See Component
choices - The collection of choices in the radio choice
See Also:
AbstractChoice.AbstractChoice(String, IModel,IModel), Component.Component(String, IModel)

RadioChoice

public RadioChoice(java.lang.String id,
                   IModel choices,
                   IChoiceRenderer renderer)
Constructor

Parameters:
id - See Component
choices - The collection of choices in the radio choice
renderer - The rendering engine
See Also:
AbstractChoice.AbstractChoice(String, IModel,IChoiceRenderer), Component.Component(String)

RadioChoice

public RadioChoice(java.lang.String id,
                   IModel model,
                   IModel choices,
                   IChoiceRenderer renderer)
Constructor

Parameters:
id - See Component
model - The model that is updated with changes in this component. See Component
choices - The collection of choices in the radio choice
renderer - The rendering engine
See Also:
Component.Component(String, IModel), AbstractChoice.AbstractChoice(String, IModel, IModel,IChoiceRenderer)
Method Detail

onSelectionChanged

public void onSelectionChanged()
Description copied from interface: IOnChangeListener
Called when a new option is selected.

Specified by:
onSelectionChanged in interface IOnChangeListener
See Also:
IOnChangeListener.onSelectionChanged()

onSelectionChanged

protected void onSelectionChanged(java.lang.Object newSelection)
Template method that can be overriden by clients that implement IOnChangeListener to be notified by onChange events of a select element. This method does nothing by default.

Called when a option is selected of a dropdown list that wants to be notified of this event. This method is to be implemented by clients that want to be notified of selection events.

Parameters:
newSelection - The newly selected object of the backing model NOTE this is the same as you would get by calling getModelObject() if the new selection were current

wantOnSelectionChangedNotifications

protected boolean wantOnSelectionChangedNotifications()
Whether this component's onSelectionChanged event handler should called using javascript if the selection changes. If true, a roundtrip will be generated with each selection change, resulting in the model being updated (of just this component) and onSelectionChanged being called. This method returns false by default.

Returns:
True if this component's onSelectionChanged event handler should called using javascript if the selection changes

getPrefix

public final java.lang.String getPrefix()
Returns:
Prefix to use before choice

setPrefix

public final RadioChoice setPrefix(java.lang.String prefix)
Parameters:
prefix - Prefix to use before choice
Returns:
this

getSuffix

public final java.lang.String getSuffix()
Returns:
Separator to use between radio options

setSuffix

public final RadioChoice setSuffix(java.lang.String suffix)
Parameters:
suffix - Separator to use between radio options
Returns:
this

onComponentTagBody

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

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

getModelValue

public final 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?

Returns:
true when the null value is allowed.

setNullValid

public void setNullValid(boolean nullValid)
Is the null value a valid value?

Parameters:
nullValid - whether null is a valid value

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[])

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.

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

getChoices

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

setChoices

public final void setChoices(IModel choices)
Sets the list of choices

Parameters:
choices - model representing the list of choices

setChoices

public final void setChoices(java.util.List choices)
Sets the list of choices.

Parameters:
choices - the list of choices

getChoiceRenderer

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

setChoiceRenderer

public final void setChoiceRenderer(IChoiceRenderer renderer)
Set the choice renderer to be used.

Parameters:
renderer -

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()

appendOptionHtml

protected void appendOptionHtml(AppendingStringBuffer buffer,
                                java.lang.Object choice,
                                int index,
                                java.lang.String selected)
Generats 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

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-2007 Wicket developers. All Rights Reserved.