javax.microedition.lcdui
Class DateField

java.lang.Object
  |
  +--javax.microedition.lcdui.Item
        |
        +--javax.microedition.lcdui.DateField

public class DateField
extends Item

A DateField is an editable component for presenting date and time (calendar) information that may be placed into a Form. The value for this field can be initially set or left unset. If the value is not set then the UI for the field shows this clearly. The field value for "not initialized state" is the not valid value and getDate() for this state returns null.

Instance of a DateField can be configured to accept date or time information or both. This input mode configuration is indicated by the DATE, TIME and DATE_TIME static fields of this class. DATE input mode allows an application to set only date information and TIME only time information (hours, minutes). DATE_TIME allows an application to set both clock time and date values.

In TIME input mode the date components of the Date object must be set to the "zero epoch" value of January 1, 1970.

Calendar calculations in this field are based on default locale and defined time zone. Because of the calculations and different input modes, the date object may not contain the same millisecond value when set and retrieved.


Field Summary
static int DATE
          Input mode for date information (day, month, year).
static int DATE_TIME
          Input mode for date (day, month, year) and time (minutes, hours) information.
static int TIME
          Input mode for time information (hours and minutes).
 
Fields inherited from class javax.microedition.lcdui.Item
BUTTON, HYPERLINK, LAYOUT_2, LAYOUT_BOTTOM, LAYOUT_CENTER, LAYOUT_DEFAULT, LAYOUT_EXPAND, LAYOUT_LEFT, LAYOUT_NEWLINE_AFTER, LAYOUT_NEWLINE_BEFORE, LAYOUT_RIGHT, LAYOUT_SHRINK, LAYOUT_TOP, LAYOUT_VCENTER, LAYOUT_VEXPAND, LAYOUT_VSHRINK, PLAIN
 
Constructor Summary
DateField(String label, int mode)
          Creates a DateField object with the specified label and mode.
DateField(String label, int mode, TimeZone timeZone)
          Creates a date field in which calendar calculations are based on a specific TimeZone object and the default calendaring system for the current locale.
 
Method Summary
 Date getDate()
          Returns the date value of this field.
 int getInputMode()
          Gets input mode for this date field.
 void setDate(Date date)
          Sets a new value for this field.
 void setInputMode(int mode)
          Set input mode for this date field.
 
Methods inherited from class javax.microedition.lcdui.Item
addCommand, getLabel, getLayout, getMinimumHeight, getMinimumWidth, getPreferredHeight, getPreferredWidth, notifyStateChanged, removeCommand, setDefaultCommand, setItemCommandListener, setLabel, setLayout, setPreferredSize
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DATE

public static final int DATE
Input mode for date information (day, month, year). With this mode this DateField presents and allows the application only to modify the date value. The time information of date object is ignored.

Value 1 is assigned to DATE.

See Also:
Constant Field Values

DATE_TIME

public static final int DATE_TIME
Input mode for date (day, month, year) and time (minutes, hours) information. With this mode this DateField presents and allows the application to modify both time and date information.

Value 3 is assigned to DATE_TIME.

See Also:
Constant Field Values

TIME

public static final int TIME
Input mode for time information (hours and minutes). With this mode this DateField presents and allows the application only to modify the time value. The date components should be set to the "zero epoch" value of January 1, 1970 and should not be accessed.

Value 2 is assigned to TIME.

See Also:
Constant Field Values
Constructor Detail

DateField

public DateField(String label,
                 int mode)
Creates a DateField object with the specified label and mode. This call is identical to DateField(label, mode, null)

Parameters:
label - item label
mode - the input mode, one of DATE, TIME or DATE_TIME

Throws:
IllegalArgumentException - if the input mode's value is invalid

DateField

public DateField(String label,
                 int mode,
                 TimeZone timeZone)
Creates a date field in which calendar calculations are based on a specific TimeZone object and the default calendaring system for the current locale. The value of the DateField is initially in the "uninitialized" state. If timeZone is null, the system's default time zone is used.

Parameters:
label - item label
mode - the input mode, one of DATE, TIME or DATE_TIME
timeZone - a specific time zone, or null for the default time zone

Throws:
IllegalArgumentException - if the input mode's value is invalid
Method Detail

getDate

public Date getDate()
Returns the date value of this field. Returned value is null if field value is not initialized. The date object is constructed according the rules of the locale specific calendaring system and defined time zone. In TIME mode field the date components are set to the "zero epoch" value of January 1, 1970. If the date object represents time beyond one day from this "zero epoch" then this field is in "not initialized" state and this method returns null. In DATE mode, the time component of the calendar is set to zero when constructing the date object.

Returns:
date object representing time or date depending on input mode

getInputMode

public int getInputMode()
Gets input mode for this date field. Valid input modes are: DATE, TIME and DATE_TIME.

Returns:
input mode of this field

setDate

public void setDate(Date date)
Sets a new value for this field. null can be passed to set the field state to "not initialized" state. The input mode of this field defines what components of passed Date object are used.

In TIME input mode the date components must be set to the "zero epoch" value of January 1, 1970. If a date object that presents time beyond one day then this field is in "not initialized" state. In TIME input mode the date component of Date object is ignored and time component is used to precision of minutes.

In DATE input mode the time component of Date object is ignored.

In DATE_TIME input mode the date and time component of the Date are used but only to the precision of minutes.

Parameters:
date - new value for this field


setInputMode

public void setInputMode(int mode)
Set input mode for this date field. Valid input modes are DATE, TIME and DATE_TIME.

Parameters:
mode - the input mode, must be one of DATE, TIME or DATE_TIME
Throws:
IllegalArgumentException - if an invalid value is specified