001: /*
002: * GWT-Ext Widget Library
003: * Copyright(c) 2007-2008, GWT-Ext.
004: * licensing@gwt-ext.com
005: *
006: * http://www.gwt-ext.com/license
007: */
008:
009: package com.gwtext.client.data;
010:
011: import com.google.gwt.core.client.JavaScriptObject;
012: import com.gwtext.client.util.JavaScriptObjectHelper;
013:
014: /**
015: * Date field class. Following is the list of all currently supported formats:
016: * <p/>
017: * <pre>
018: * <p/>
019: * Sample date:
020: * 'Wed Jan 10 2007 15:05:01 GMT-0600 (Central Standard Time)'
021: * <p/>
022: * Format Output Description
023: * ------ ---------- --------------------------------------------------------------
024: * d 10 Day of the month, 2 digits with leading zeros
025: * D Wed A textual representation of a day, three letters
026: * j 10 Day of the month without leading zeros
027: * l Wednesday A full textual representation of the day of the week
028: * S th English ordinal day of month suffix, 2 chars (use with j)
029: * w 3 Numeric representation of the day of the week
030: * z 9 The julian date, or day of the year (0-365)
031: * W 01 ISO-8601 2-digit week number of year, weeks starting on Monday (00-52)
032: * F January A full textual representation of the month
033: * m 01 Numeric representation of a month, with leading zeros
034: * M Jan Month name abbreviation, three letters
035: * n 1 Numeric representation of a month, without leading zeros
036: * t 31 Number of days in the given month
037: * L 0 Whether it's a leap year (1 if it is a leap year, else 0)
038: * Y 2007 A full numeric representation of a year, 4 digits
039: * y 07 A two digit representation of a year
040: * a pm Lowercase Ante meridiem and Post meridiem
041: * A PM Uppercase Ante meridiem and Post meridiem
042: * g 3 12-hour format of an hour without leading zeros
043: * G 15 24-hour format of an hour without leading zeros
044: * h 03 12-hour format of an hour with leading zeros
045: * H 15 24-hour format of an hour with leading zeros
046: * i 05 Minutes with leading zeros
047: * s 01 Seconds, with leading zeros
048: * O -0600 Difference to Greenwich time (GMT) in hours
049: * T CST Timezone setting of the machine running the code
050: * Z -21600 Timezone offset in seconds (negative if west of UTC, positive if east)
051: * </pre>
052: */
053: public class DateFieldDef extends FieldDef {
054:
055: /**
056: * Uses default date parsing via new Date(dataVal);
057: *
058: * @param name field name
059: */
060: public DateFieldDef(String name) {
061: this (name, null, null);
062: }
063:
064: /**
065: * Create a new DateFieldDef using the specified name and date format.
066: *
067: * @param name the field name
068: * @param dateFormat the date format
069: */
070: public DateFieldDef(String name, String dateFormat) {
071: this (name, null, dateFormat);
072: }
073:
074: /**
075: * Create a new DateFieldDef using the specified name and date format.
076: *
077: * @param name the field name
078: * @param mapping the field mapping. Depending on the Reader used, mapping could be the array index position or an XPath expression when reading from XML
079: * @param dateFormat the date format
080: */
081: public DateFieldDef(String name, String mapping, String dateFormat) {
082: jsObj = create(name, mapping, dateFormat);
083: }
084:
085: /**
086: * Create a new DateFieldDef using the specified name and date format.
087: *
088: * @param name the field name
089: * @param mapping the field mapping, position based of local arrays
090: * @param dateFormat the date format
091: */
092: public DateFieldDef(String name, int mapping, String dateFormat) {
093: this (name, dateFormat, String.valueOf(mapping));
094: }
095:
096: private static JavaScriptObject create(String name, String mapping,
097: String dateFormat) {
098: JavaScriptObject jsObj = JavaScriptObjectHelper.createObject();
099: JavaScriptObjectHelper.setAttribute(jsObj, "name", name);
100: JavaScriptObjectHelper.setAttribute(jsObj, "type", "date");
101: if (mapping != null)
102: JavaScriptObjectHelper.setAttribute(jsObj, "mapping",
103: mapping);
104: if (dateFormat != null)
105: JavaScriptObjectHelper.setAttribute(jsObj, "dateFormat",
106: dateFormat);
107: return jsObj;
108: }
109: }
|