Author: michiel
Date: 2010-05-17 15:54:19 +0200 (Mon, 17 May 2010)
New Revision: 42195
Modified:
mmbase/branches/MMBase-1_9/applications/taglib/src/main/java/org/mmbase/bridge/jsp/taglib/typehandler/DateHandler.java
Log:
MMB-1958
Modified:
mmbase/branches/MMBase-1_9/applications/taglib/src/main/java/org/mmbase/bridge/jsp/taglib/typehandler/DateHandler.java
===================================================================
---
mmbase/branches/MMBase-1_9/applications/taglib/src/main/java/org/mmbase/bridge/jsp/taglib/typehandler/DateHandler.java
2010-05-17 13:53:59 UTC (rev 42194)
+++
mmbase/branches/MMBase-1_9/applications/taglib/src/main/java/org/mmbase/bridge/jsp/taglib/typehandler/DateHandler.java
2010-05-17 13:54:19 UTC (rev 42195)
@@ -47,8 +47,12 @@
}
- private Calendar getInstance() throws JspTagException {
- return Calendar.getInstance(tag.getTimeZone());
+ private Calendar getInstance(DataType dt) throws JspTagException {
+ TimeZone tz = null;
+ if (dt instanceof DateTimeDataType) {
+ tz = ((DateTimeDataType) dt).getTimeZone();
+ }
+ return Calendar.getInstance(tz == null ? tag.getTimeZone() : tz);
}
protected DateTimePattern getPattern(DataType dt) throws JspTagException {
@@ -93,7 +97,7 @@
*/
@Override
protected Object getFieldValue(Node node, Field field) throws
JspTagException {
- Calendar cal = getSpecifiedValue(field, getInstance());
+ Calendar cal = getSpecifiedValue(field,
getInstance(field.getDataType()));
return cal == null ? null : cal.getTime();
}
@@ -141,8 +145,8 @@
}
DataType dt = field.getDataType();
DateTimePattern dateTimePattern = getPattern(dt);
- Calendar minDate = getInstance();
- Calendar maxDate = getInstance();
+ Calendar minDate = getInstance(dt);
+ Calendar maxDate = getInstance(dt);
if (dt instanceof DateTimeDataType) {
Date min = ((DateTimeDataType) dt).getMin();
minDate.setTime(min);
@@ -262,7 +266,7 @@
@Override
public boolean useHtmlInput(Node node, Field field) throws JspTagException
{
final String fieldName = field.getName();
- final Calendar cal = getInstance();
+ final Calendar cal = getInstance(field.getDataType());
Object oldValue = node.getValue(fieldName);
if (oldValue != null) {
oldValue = node.getDateValue(fieldName);
@@ -299,9 +303,9 @@
final String fieldName = field.getName();
final DataType<Object> dt = field.getDataType();
final DateTimePattern dateTimePattern = getPattern(dt);
- final Calendar minDate = getInstance();
+ final Calendar minDate = getInstance(dt);
minDate.setTime(DateTimeDataType.MIN_VALUE);
- final Calendar maxDate = getInstance();
+ final Calendar maxDate = getInstance(dt);
maxDate.setTime(DateTimeDataType.MAX_VALUE);
@@ -364,19 +368,19 @@
if (node.isNull(field.getName())) {
cal = null;
} else {
- cal = getInstance();
+ cal = getInstance(field.getDataType());
cal.setTime(node.getDateValue(field.getName()));
}
} else {
Object def =
field.getDataType().getDefaultValue(tag.getLocale(), tag.getCloudVar(), field);
if (def != null) {
- cal = getInstance();
+ cal = getInstance(field.getDataType());
cal.setTime(Casting.toDate(def));
} else {
if (! field.getDataType().isRequired()) {
cal = null;
} else {
- cal = getInstance();
+ cal = getInstance(field.getDataType());
}
}
}
@@ -395,7 +399,7 @@
return null;
}
- Date timeValue = getSpecifiedValue(field, getInstance()).getTime();
+ Date timeValue = getSpecifiedValue(field,
getInstance(field.getDataType())).getTime();
String time;
if (field.getType() == Field.TYPE_DATETIME) {
@@ -430,7 +434,7 @@
return null;
}
- Object time = getSpecifiedValue(field, getInstance()).getTime();
+ Object time = getSpecifiedValue(field,
getInstance(field.getDataType())).getTime();
if (field.getType() != Field.TYPE_DATETIME) {
time = Casting.toLong(time);
}
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs