org.xmpp.forms
Class FormField

java.lang.Object
  extended by org.xmpp.forms.FormField

@NotThreadSafe
public class FormField
extends java.lang.Object

Represents a field of a form. The field could be used to represent a question to complete, a completed question or a data returned from a search. The exact interpretation of the field depends on the context where the field is used.

Author:
Gaston Dombiak

Nested Class Summary
static class FormField.Option
          Represents the available option of a given FormField.
static class FormField.Type
          Type-safe enumeration to represent the field type of the Data forms.
 
Method Summary
 void addOption(java.lang.String label, java.lang.String value)
          Adds an available option to the question that the user has in order to answer the question.
 void addValue(java.lang.Object value)
          Adds a default value to the question if the question is part of a form to fill out.
 void clearValues()
          Removes all the values of the field.
 FormField createCopy()
          Creates and returns a new object that is an exact copy of this FormField object.
 java.lang.String getDescription()
          Returns a description that provides extra clarification about the question.
 java.lang.String getFirstValue()
          Returns the first value from the FormField, or 'null' if no value has been set.
 java.lang.String getLabel()
          Returns the label of the question which should give enough information to the user to fill out the form.
 java.util.List<FormField.Option> getOptions()
          Returns the available options to answer for this question.
 FormField.Type getType()
          Returns an indicative of the format for the data to answer.
 java.util.List<java.lang.String> getValues()
          Returns an Iterator for the default values of the question if the question is part of a form to fill out.
 java.lang.String getVariable()
          Returns the variable name that the question is filling out.
 boolean isRequired()
          Returns true if the question must be answered in order to complete the questionnaire.
 void setDescription(java.lang.String description)
          Sets a description that provides extra clarification about the question.
 void setLabel(java.lang.String label)
          Sets the label of the question which should give enough information to the user to fill out the form.
 void setRequired(boolean required)
          Sets if the question must be answered in order to complete the questionnaire.
 void setType(FormField.Type type)
          Sets an indicative of the format for the data to answer.
 void setVariable(java.lang.String var)
          Sets the attribute that uniquely identifies the field in the context of the form.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

addValue

public void addValue(java.lang.Object value)
Adds a default value to the question if the question is part of a form to fill out. Otherwise, adds an answered value to the question.

Nothing will be added if the provided argument is null.

Parameters:
value - a default value or an answered value of the question.

clearValues

public void clearValues()
Removes all the values of the field.


addOption

public void addOption(java.lang.String label,
                      java.lang.String value)
Adds an available option to the question that the user has in order to answer the question.

If argument 'value' is null or an empty String, no option element will be added.

Parameters:
label - a label that represents the option. Optional argument.
value - the value of the option.

getOptions

public java.util.List<FormField.Option> getOptions()
Returns the available options to answer for this question. The returned options cannot be modified but they will be updated if the underlying DOM object gets updated.

Returns:
the available options to answer for this question.

setType

public void setType(FormField.Type type)
Sets an indicative of the format for the data to answer. Valid formats are:

Parameters:
type - an indicative of the format for the data to answer.

setVariable

public void setVariable(java.lang.String var)
Sets the attribute that uniquely identifies the field in the context of the form. If the field is of type "fixed" then the variable is optional.

Parameters:
var - the unique identifier of the field in the context of the form.

setLabel

public void setLabel(java.lang.String label)
Sets the label of the question which should give enough information to the user to fill out the form.

Parameters:
label - the label of the question.

setRequired

public void setRequired(boolean required)
Sets if the question must be answered in order to complete the questionnaire.

Parameters:
required - if the question must be answered in order to complete the questionnaire.

setDescription

public void setDescription(java.lang.String description)
Sets a description that provides extra clarification about the question. This information could be presented to the user either in tool-tip, help button, or as a section of text before the question.

If the question is of type FIXED then the description should remain empty.

No new description will be set, if the provided argument is null or an empty String (although an existing description will be removed).

Parameters:
description - provides extra clarification about the question.

isRequired

public boolean isRequired()
Returns true if the question must be answered in order to complete the questionnaire.

Returns:
true if the question must be answered in order to complete the questionnaire.

getVariable

public java.lang.String getVariable()
Returns the variable name that the question is filling out.

Returns:
the variable name of the question.

getValues

public java.util.List<java.lang.String> getValues()
Returns an Iterator for the default values of the question if the question is part of a form to fill out. Otherwise, returns an Iterator for the answered values of the question.

Returns:
an Iterator for the default values or answered values of the question.

getFirstValue

public java.lang.String getFirstValue()
Returns the first value from the FormField, or 'null' if no value has been set.

Parameters:
formField - The field from which to return the first value.
Returns:
String based value, or 'null' if the FormField has no values.

getType

public FormField.Type getType()
Returns an indicative of the format for the data to answer. Valid formats are:

Returns:
format for the data to answer.

getLabel

public java.lang.String getLabel()
Returns the label of the question which should give enough information to the user to fill out the form.

Returns:
label of the question.

getDescription

public java.lang.String getDescription()
Returns a description that provides extra clarification about the question. This information could be presented to the user either in tool-tip, help button, or as a section of text before the question.

If the question is of type FIXED then the description should remain empty.

Returns:
description that provides extra clarification about the question.

createCopy

public FormField createCopy()
Creates and returns a new object that is an exact copy of this FormField object.

Returns:
an exact copy of this instance.


Copyright © 2009-2010 Ignite Realtime. All Rights Reserved.