JDatePicker v4.3

com.standbysoft.component.date
Class DefaultDateModel

java.lang.Object
  extended bycom.standbysoft.component.date.DefaultDateModel
All Implemented Interfaces:
DateModel
Direct Known Subclasses:
DateEditComponentAdapter

public class DefaultDateModel
extends java.lang.Object
implements DateModel

A default implementation for a date model.


Field Summary
protected static int[] FIELDS
           
 
Constructor Summary
DefaultDateModel()
          Creates a date model that represents the current system date.
 
Method Summary
 void addDateListener(DateListener listener)
          Registers a new date listener to the model.
 void clear(int field)
          Clears a specified field, meaning that it contains no value.
protected  void fireDateChanged(DateEvent evt)
           
protected  void fireDateFieldChanged(DateEvent evt)
           
protected  void fireDateFieldCleared(DateEvent evt)
           
 int get(int field)
          Returns the value of a specified field.
 int getAutoCenturyYear()
          Determines the reference year used to build the long year from a short one.
 java.util.Date getDate()
          Returns the date wrapped by this model.
 int getMaximumAllowed(int field, java.util.Date date)
          Returns the highest acceptable value for a certain field.
 int getMinimumAllowed(int field, java.util.Date date)
          Always returns 0.
 java.util.TimeZone getTimeZone()
          Returns the time zone used by this model.
 boolean isAutoCentury()
          Determines whether century is automatically added to the year field if its value is less than 100.
 boolean isDateValid()
          All dates represented by this model are considered valid because invalid values are not allowed in the first place.
 boolean isSet(int field)
          Determines whether a specified field is cleared or not.
 boolean isUsed(int field)
          Determines whether a specified field is part of the date.
 void removeDateListener(DateListener listener)
          Removes a specified date listener from this model.
 void set(int field, int val)
          Modifies the value of a specified date field.
 void setAutoCentury(boolean auto)
          Specifies whether century is automatically added to the year field if its value is less than 100.
 void setAutoCenturyYear(int year)
          Specifies the year used to build the long year when short years are used.
 void setDate(java.util.Date date)
          Specifies a new date to be represented by this model that can later be modified field by field.
 void setTimeZone(java.util.TimeZone zone)
          Specifies the time zone for this model.
 void setUsed(int field, boolean used)
          Specifies whether a certain field is used to construct the actual date represented here.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

FIELDS

protected static int[] FIELDS
Constructor Detail

DefaultDateModel

public DefaultDateModel()
Creates a date model that represents the current system date. Auto century is enabled.

Method Detail

setTimeZone

public void setTimeZone(java.util.TimeZone zone)
Description copied from interface: DateModel

Specifies the time zone for this model. This parameter is very important if you need to know the values of the date fields in a certain time zone. If no time zone is specified, then the default one is used.

The dates that come in and out of this model are standard (GMT) while the values of the date fields depend on the time zone. If the time zone is changed, so do the internal date fields in order to reflect this change.

Specified by:
setTimeZone in interface DateModel
Parameters:
zone - new time zone for this model
See Also:
DateModel.get(int)

getTimeZone

public java.util.TimeZone getTimeZone()
Description copied from interface: DateModel
Returns the time zone used by this model.

Specified by:
getTimeZone in interface DateModel
Returns:
time zone used by this model.
See Also:
DateModel.setTimeZone(TimeZone)

isSet

public boolean isSet(int field)
Description copied from interface: DateModel
Determines whether a specified field is cleared or not.

Specified by:
isSet in interface DateModel
Parameters:
field - field that is tested. Possible values are: Calendar.YEAR, Calendar.MONTH, Calendar.MINUTE, etc.
Returns:
true if the field is not cleared; false otherwise
See Also:
DateModel.clear(int)

clear

public void clear(int field)
Description copied from interface: DateModel
Clears a specified field, meaning that it contains no value.

Specified by:
clear in interface DateModel
Parameters:
field - field that is cleared. Possible values are: Calendar.YEAR, Calendar.MONTH, Calendar.MINUTE, etc.
See Also:
DateModel.isSet(int)

getMinimumAllowed

public int getMinimumAllowed(int field,
                             java.util.Date date)
Always returns 0. The minimum accepted value for this default implementation is aloways 0.

Specified by:
getMinimumAllowed in interface DateModel
Parameters:
field - field that is tested
date - context object that can offer additional information about the other date fields
Returns:
lowest acceptable value for a certain field, like 0 for the minute field
See Also:
DateModel.set(int, int)

getMaximumAllowed

public int getMaximumAllowed(int field,
                             java.util.Date date)
Description copied from interface: DateModel
Returns the highest acceptable value for a certain field. For some fields like day of month, this value might depend on other date fields. For instance, the days in a month depend on the month and in the case of February, they also depend on the year.

Specified by:
getMaximumAllowed in interface DateModel
Parameters:
field - field that is tested
date - context object that can offer additional information about the other date fields
Returns:
highest acceptable value for a certain field, like 59 for the minute field
See Also:
DateModel.set(int, int)

set

public void set(int field,
                int val)
Description copied from interface: DateModel
Modifies the value of a specified date field.

Specified by:
set in interface DateModel
Parameters:
field - date field that is modified. Possible values are: Calendar.YEAR, Calendar.MONTH, Calendar.MINUTE, etc.
val - the new date field value. Various implementations could handle this value differently. Some may allow and some may not allow out of range values.
See Also:
DateModel.getMinimumAllowed(int, Date), DateModel.getMaximumAllowed(int, Date)

get

public int get(int field)
Description copied from interface: DateModel
Returns the value of a specified field.

Specified by:
get in interface DateModel
Parameters:
field - date field that is tested. Possible values are: Calendar.YEAR, Calendar.MONTH, Calendar.MINUTE, etc.
Returns:
value of the specified field.
See Also:
DateModel.setTimeZone(TimeZone)

setUsed

public void setUsed(int field,
                    boolean used)
Description copied from interface: DateModel

Specifies whether a certain field is used to construct the actual date represented here. When the date is evaluated, all the fields that it uses (marked with this method as used) must contain a value. Otherwise, the date is considered incomplete and it is in fact a null date.

This method is mainly intended for use by date editing components that restrict the represented date only to some of its fields.

Specified by:
setUsed in interface DateModel
Parameters:
field - specified field that is marked as used or unused
used - true if the field is part of the date; false otherwise
See Also:
DateModel.clear(int), DateModel.getDate()

isUsed

public boolean isUsed(int field)
Description copied from interface: DateModel
Determines whether a specified field is part of the date.

Specified by:
isUsed in interface DateModel
Parameters:
field - field that is tested
Returns:
true if the field is part of the date; false otherwise
See Also:
DateModel.setUsed(int, boolean)

setDate

public void setDate(java.util.Date date)
Description copied from interface: DateModel
Specifies a new date to be represented by this model that can later be modified field by field. A null date will clear all the basic fields like Calendar.YEAR, Calendar.MONTH, Calendar.DATE, Calendar.HOUR, Calendar.MINUTE, Calendar.SECOND and Calendar.MILLISECOND.

Specified by:
setDate in interface DateModel
Parameters:
date - date wrapped by the model
See Also:
DateModel.clear(int)

getDate

public java.util.Date getDate()
Description copied from interface: DateModel
Returns the date wrapped by this model. If there are missing fields and the date cannot be computed then a null date is returned.

Specified by:
getDate in interface DateModel
Returns:
date wrapped by this model.
See Also:
isDateValid()

setAutoCentury

public void setAutoCentury(boolean auto)
Description copied from interface: DateModel
Specifies whether century is automatically added to the year field if its value is less than 100.

Specified by:
setAutoCentury in interface DateModel
Parameters:
auto - true if century is automatically added; false otherwise
See Also:
DateModel.setAutoCenturyYear(int)

isAutoCentury

public boolean isAutoCentury()
Description copied from interface: DateModel
Determines whether century is automatically added to the year field if its value is less than 100.

Specified by:
isAutoCentury in interface DateModel
Returns:
true if century is automatically added; false otherwise.
See Also:
DateModel.setAutoCentury(boolean)

setAutoCenturyYear

public void setAutoCenturyYear(int year)
Description copied from interface: DateModel

Specifies the year used to build the long year when short years are used. One can use short years which range from 0..99 when the autoCentury property is enabled. This means that instead of typing 1980 you can just use 80.

The short year is converted into a long year after it is compared with the last two digits of the autoCenturyYear year. Here are some examples that show how this mechanism works:

shortautoCenturyYearlong
3019301930
5619301956
1119302011

Specified by:
setAutoCenturyYear in interface DateModel
Parameters:
year - reference year used to build the long year from a short one
See Also:
DateModel.setAutoCentury(boolean)

getAutoCenturyYear

public int getAutoCenturyYear()
Description copied from interface: DateModel
Determines the reference year used to build the long year from a short one. By default, this year is 1930.

Specified by:
getAutoCenturyYear in interface DateModel
Returns:
reference year used to build the long year from a short one.
See Also:
DateModel.setAutoCenturyYear(int)

isDateValid

public boolean isDateValid()

All dates represented by this model are considered valid because invalid values are not allowed in the first place.

The only situation when invalid dates might occur is when entering a value for the day of month field because this field depends on the month and year. If these two fields are missing, then the value might be out of range.

For instance, if I first enter 31 for the day field, that's a valid valuesince there cannot be more than 31 days in a month. But if the month is February I cannot have more than 29 days. Even more, most of the time there are only 28 days and that depends on the year.

To fix this anomaly, when the date is built and the value from the day field is out of range, that value it is interpreted as the highest possible value. So Febrary 31, 2006 will be in fact Febrary 28, 2006.

Specified by:
isDateValid in interface DateModel
Returns:
true

addDateListener

public void addDateListener(DateListener listener)
Description copied from interface: DateModel
Registers a new date listener to the model.

Specified by:
addDateListener in interface DateModel
Parameters:
listener - listener to be registered

removeDateListener

public void removeDateListener(DateListener listener)
Description copied from interface: DateModel
Removes a specified date listener from this model.

Specified by:
removeDateListener in interface DateModel
Parameters:
listener - listener to be removed

fireDateChanged

protected void fireDateChanged(DateEvent evt)

fireDateFieldChanged

protected void fireDateFieldChanged(DateEvent evt)

fireDateFieldCleared

protected void fireDateFieldCleared(DateEvent evt)

JDatePicker v4.3

Visit www.jdatepicker.com for further information or send us your suggestions.

Copyright © 2003-2007 Stand By Soft Ltd. All Rights Reserved.