adapforms.form.elements
Class ChoiceElement

java.lang.Object
  extended by adapforms.form.elements.FormElement
      extended by adapforms.form.elements.ValueHoldingElement
          extended by adapforms.form.elements.ChoiceElement

public class ChoiceElement
extends ValueHoldingElement

Single- or multiple-choice form element. Presents the user with a finite list of choices.

The value type is a String that represents the value of the selected ListItem(s).

Author:
Henrik Gammelmark, geemark@cs.au.dk

Constructor Summary
ChoiceElement(java.lang.String id, SimpleLabel label, java.util.List<ListItem> choices, boolean multiChoice)
           
 
Method Summary
 boolean allowBlankChoice()
          Allow the user to select the "blank" choice?
 ChoiceElement clone(java.lang.String id, SimpleLabel label)
          Create a clone of the element, given a new ID and label.
 java.lang.String convertValue(java.lang.Object rawValue, Localization localization)
          Given a raw input value, perform relevant conversions, so that the type integrity is preserved.
 java.util.List<ListItem> getChoices()
          Possible choices.
 java.lang.String getDefault()
          Get the default choice the form will be initialized with.
 java.lang.String getInitialValue()
          Get the value this element should be initialized with when the element is instantiated in the form instance.
 boolean isMultiChoice()
          Determine the element type.
 java.lang.String marshallValue(java.lang.Object value)
          Given a value of the expected type, convert it to a string representation.
 void setAllowBlankChoice(boolean allow)
          Allow the user to select the "blank" choice?
 void setDefault(java.lang.String value)
          See getDefault()
 java.lang.String toString()
          Used for pretty-printing the element.
 java.util.List<ValidationProblem> validateValue(java.lang.Object value, Localization localization)
          Given a converted (see ValueHoldingElement.convertValue(java.lang.Object, adapforms.runtime.i18n.Localization)) value, check if it is valid.
 
Methods inherited from class adapforms.form.elements.ValueHoldingElement
buildError, buildSingleError, cloneFinalize, getRolesWrite, getValidationRules, isEmptyValue, isReadOnly, isRequired, setReadOnly, setRequired, setRolesWrite, setValidationRules, toStringHelper
 
Methods inherited from class adapforms.form.elements.FormElement
cloneFinalize, getElementID, getLabel, getRolesRead, getUIFlags, isRelevant, setRelevant, setRolesRead, setUIFlags
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ChoiceElement

public ChoiceElement(java.lang.String id,
                     SimpleLabel label,
                     java.util.List<ListItem> choices,
                     boolean multiChoice)
Method Detail

clone

public ChoiceElement clone(java.lang.String id,
                           SimpleLabel label)
Description copied from class: FormElement
Create a clone of the element, given a new ID and label.

Important: The method should call FormElement.cloneFinalize(FormElement) before returning. This adds common parameters to the clone.

Specified by:
clone in class FormElement

getChoices

public java.util.List<ListItem> getChoices()
Possible choices.


isMultiChoice

public boolean isMultiChoice()
Determine the element type.
For single-choice elements, false is returned. For multi-choice elements, true is returned.


allowBlankChoice

public boolean allowBlankChoice()
Allow the user to select the "blank" choice?


setAllowBlankChoice

public void setAllowBlankChoice(boolean allow)
Allow the user to select the "blank" choice?


toString

public java.lang.String toString()
Description copied from class: FormElement
Used for pretty-printing the element. See Form.prettyPrintStructure().

Specified by:
toString in class FormElement

validateValue

public java.util.List<ValidationProblem> validateValue(java.lang.Object value,
                                                       Localization localization)
Description copied from class: ValueHoldingElement
Given a converted (see ValueHoldingElement.convertValue(java.lang.Object, adapforms.runtime.i18n.Localization)) value, check if it is valid. This enables the element to perform simple validation.

Overrides:
validateValue in class ValueHoldingElement
Parameters:
value - Value to validate
localization - Localization to use, when generating problem messages
Returns:
null or empty list if ok, problem list otherwise.

getDefault

public java.lang.String getDefault()
Get the default choice the form will be initialized with.


setDefault

public void setDefault(java.lang.String value)
See getDefault()


convertValue

public java.lang.String convertValue(java.lang.Object rawValue,
                                     Localization localization)
                              throws TypeException
Description copied from class: ValueHoldingElement
Given a raw input value, perform relevant conversions, so that the type integrity is preserved.

Specified by:
convertValue in class ValueHoldingElement
Parameters:
rawValue - Value to convert
localization - Localization to use, when generating problem messages
Throws:
TypeException - If the value cannot be converted

marshallValue

public java.lang.String marshallValue(java.lang.Object value)
                               throws TypeException
Description copied from class: ValueHoldingElement
Given a value of the expected type, convert it to a string representation.

Specified by:
marshallValue in class ValueHoldingElement
Parameters:
value - Value to marshall
Returns:
String representation
Throws:
TypeException - If the given value is not recognized

getInitialValue

public java.lang.String getInitialValue()
Description copied from class: ValueHoldingElement
Get the value this element should be initialized with when the element is instantiated in the form instance.

Specified by:
getInitialValue in class ValueHoldingElement
Returns:
Value to set, or null to set no initial value