svn commit: r594088 - in /ofbiz/trunk/framework: base/src/base/org/ofbiz/base/util/ base/src/base/org/ofbiz/base/util/string/ base/src/base/org/ofbiz/base/util/template/ common/config/ service/src/org/ofbiz/service/ widget/src/org/ofbiz/widget/form/

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

svn commit: r594088 - in /ofbiz/trunk/framework: base/src/base/org/ofbiz/base/util/ base/src/base/org/ofbiz/base/util/string/ base/src/base/org/ofbiz/base/util/template/ common/config/ service/src/org/ofbiz/service/ widget/src/org/ofbiz/widget/form/

jleroux@apache.org
Author: jleroux
Date: Mon Nov 12 03:50:09 2007
New Revision: 594088

URL: http://svn.apache.org/viewvc?rev=594088&view=rev
Log:
A patch from Adrian Crum "Improved UtilDateTime.java, Framework Default TimeZone Suppor, with getMonthNames also" (https://issues.apache.org/jira/browse/OFBIZ-1377) - OFBIZ-1377


Modified:
    ofbiz/trunk/framework/base/src/base/org/ofbiz/base/util/ObjectType.java
    ofbiz/trunk/framework/base/src/base/org/ofbiz/base/util/UtilDateTime.java
    ofbiz/trunk/framework/base/src/base/org/ofbiz/base/util/string/FlexibleStringExpander.java
    ofbiz/trunk/framework/base/src/base/org/ofbiz/base/util/template/FreeMarkerWorker.java
    ofbiz/trunk/framework/common/config/general.properties
    ofbiz/trunk/framework/service/src/org/ofbiz/service/ModelService.java
    ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelFormField.java

Modified: ofbiz/trunk/framework/base/src/base/org/ofbiz/base/util/ObjectType.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/base/org/ofbiz/base/util/ObjectType.java?rev=594088&r1=594087&r2=594088&view=diff
==============================================================================
--- ofbiz/trunk/framework/base/src/base/org/ofbiz/base/util/ObjectType.java (original)
+++ ofbiz/trunk/framework/base/src/base/org/ofbiz/base/util/ObjectType.java Mon Nov 12 03:50:09 2007
@@ -426,7 +426,7 @@
     }
 
     public static Object simpleTypeConvert(Object obj, String type, String format, Locale locale, boolean noTypeFail) throws GeneralException {
-        return simpleTypeConvert(obj, type, format, TimeZone.getDefault(), locale, noTypeFail);
+        return simpleTypeConvert(obj, type, format, UtilDateTime.getDefaultTimeZone(), locale, noTypeFail);
     }
 
     /**

Modified: ofbiz/trunk/framework/base/src/base/org/ofbiz/base/util/UtilDateTime.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/base/org/ofbiz/base/util/UtilDateTime.java?rev=594088&r1=594087&r2=594088&view=diff
==============================================================================
--- ofbiz/trunk/framework/base/src/base/org/ofbiz/base/util/UtilDateTime.java (original)
+++ ofbiz/trunk/framework/base/src/base/org/ofbiz/base/util/UtilDateTime.java Mon Nov 12 03:50:09 2007
@@ -207,7 +207,7 @@
     }
 
     public static java.sql.Timestamp getDayStart(java.sql.Timestamp stamp, int daysLater) {
-        return getDayStart(stamp, daysLater, TimeZone.getDefault(), Locale.getDefault());
+        return getDayStart(stamp, daysLater, getDefaultTimeZone(), Locale.getDefault());
     }
 
     public static java.sql.Timestamp getNextDayStart(java.sql.Timestamp stamp) {
@@ -219,7 +219,7 @@
     }
 
     public static java.sql.Timestamp getDayEnd(java.sql.Timestamp stamp, int daysLater) {
-        return getDayEnd(stamp, daysLater, TimeZone.getDefault(), Locale.getDefault());
+        return getDayEnd(stamp, daysLater, getDefaultTimeZone(), Locale.getDefault());
     }
 
     /**
@@ -240,7 +240,7 @@
         return getYearStart(stamp, daysLater, 0, yearsLater);
     }
     public static java.sql.Timestamp getYearStart(java.sql.Timestamp stamp, int daysLater, int monthsLater, int yearsLater) {
-        return getYearStart(stamp, daysLater, monthsLater, yearsLater, TimeZone.getDefault(), Locale.getDefault());
+        return getYearStart(stamp, daysLater, monthsLater, yearsLater, getDefaultTimeZone(), Locale.getDefault());
     }
     public static java.sql.Timestamp getYearStart(java.sql.Timestamp stamp, Number daysLater, Number monthsLater, Number yearsLater) {
         return getYearStart(stamp, (daysLater == null ? 0 : daysLater.intValue()),
@@ -262,7 +262,7 @@
     }
 
     public static java.sql.Timestamp getMonthStart(java.sql.Timestamp stamp, int daysLater, int monthsLater) {
-        return getMonthStart(stamp, daysLater, monthsLater, TimeZone.getDefault(), Locale.getDefault());
+        return getMonthStart(stamp, daysLater, monthsLater, getDefaultTimeZone(), Locale.getDefault());
     }
 
     /**
@@ -280,11 +280,11 @@
     }
 
     public static java.sql.Timestamp getWeekStart(java.sql.Timestamp stamp, int daysLater, int weeksLater) {
-        return getWeekStart(stamp, daysLater, weeksLater, TimeZone.getDefault(), Locale.getDefault());
+        return getWeekStart(stamp, daysLater, weeksLater, getDefaultTimeZone(), Locale.getDefault());
     }
 
     public static java.sql.Timestamp getWeekEnd(java.sql.Timestamp stamp) {
-        return getWeekEnd(stamp, TimeZone.getDefault(), Locale.getDefault());
+        return getWeekEnd(stamp, getDefaultTimeZone(), Locale.getDefault());
     }
     
     public static java.util.Calendar toCalendar(java.sql.Timestamp stamp) {
@@ -717,7 +717,7 @@
      * @return A int containing the week number
      */
     public static int weekNumber(Timestamp input) {
-        return weekNumber(input, TimeZone.getDefault(), Locale.getDefault());
+        return weekNumber(input, getDefaultTimeZone(), Locale.getDefault());
     }
     
     public static int weekNumber(Timestamp input, int startOfWeek) {
@@ -903,10 +903,31 @@
     }
 
     /**
+     * Returns a List of month name Strings - suitable for calendar headings.
+     *
+     * @param locale
+     * @return List of month name Strings
+     */
+    public static List<String> getMonthNames(Locale locale) {
+        Calendar tempCal = Calendar.getInstance(locale);
+        tempCal.set(Calendar.MONTH, Calendar.JANUARY);
+        SimpleDateFormat dateFormat = new SimpleDateFormat("MMMM", locale);
+        List<String> resultList = new ArrayList<String>();
+        for (int i = Calendar.JANUARY; i <= tempCal.getActualMaximum(Calendar.MONTH); i++) {
+            resultList.add(dateFormat.format(tempCal.getTime()));
+            tempCal.roll(Calendar.MONTH, 1);
+        }
+        return resultList;
+    }
+    
+    /**
      * Returns an initialized DateFormat object.
-     * @param dateFormat optional format string
+     *
+     * @param dateFormat
+     *            optional format string
      * @param tz
-     * @param locale can be null if dateFormat is not null
+     * @param locale
+     *            can be null if dateFormat is not null
      * @return DateFormat object
      */
     public static DateFormat toDateFormat(String dateFormat, TimeZone tz, Locale locale) {
@@ -1013,6 +1034,27 @@
         }
         return availableTimeZoneList;
     }
+
+    protected static TimeZone defaultTimeZone = null;
+    /** Returns the OFBiz default TimeZone object. The default time zone is configured in
+     * the <code>general.properties</code> file (<code>timeZone.default</code>).
+     * @see java.util.TimeZone
+     */
+    public static TimeZone getDefaultTimeZone() {
+        if (defaultTimeZone == null) {
+            synchronized(UtilDateTime.class) {
+                if (defaultTimeZone == null) {
+                    String tzId = UtilProperties.getPropertyValue("general", "timeZone.default");
+                    if (UtilValidate.isNotEmpty(tzId)) {
+                        defaultTimeZone = TimeZone.getTimeZone(tzId);
+                    } else {
+                        defaultTimeZone = TimeZone.getDefault();
+                    }
+                }
+            }
+        }
+        return defaultTimeZone;
+    }
     
     /** Returns a TimeZone object based upon a time zone ID. Method defaults to
      * server's time zone if tzID is null or empty.
@@ -1020,10 +1062,20 @@
      */
     public static TimeZone toTimeZone(String tzId) {
         if (UtilValidate.isEmpty(tzId)) {
-            return TimeZone.getDefault();
+            return getDefaultTimeZone();
         } else {
             return TimeZone.getTimeZone(tzId);
         }
     }
 
+    /** Returns a TimeZone object based upon an hour offset from GMT.
+     * @see java.util.TimeZone
+     */
+    public static TimeZone toTimeZone(int gmtOffset) {
+        if (gmtOffset > 12 || gmtOffset < -14) {
+            throw new IllegalArgumentException("Invalid GMT offset");
+        }
+        String tzId = gmtOffset > 0 ? "Etc/GMT+" : "Etc/GMT";
+        return TimeZone.getTimeZone(tzId + gmtOffset);
+    }
 }

Modified: ofbiz/trunk/framework/base/src/base/org/ofbiz/base/util/string/FlexibleStringExpander.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/base/org/ofbiz/base/util/string/FlexibleStringExpander.java?rev=594088&r1=594087&r2=594088&view=diff
==============================================================================
--- ofbiz/trunk/framework/base/src/base/org/ofbiz/base/util/string/FlexibleStringExpander.java (original)
+++ ofbiz/trunk/framework/base/src/base/org/ofbiz/base/util/string/FlexibleStringExpander.java Mon Nov 12 03:50:09 2007
@@ -190,7 +190,7 @@
         if (timeZone == null) {
             timeZone = (TimeZone) context.get("timeZone");
             if (timeZone == null) {
-                timeZone = TimeZone.getDefault();
+                timeZone = UtilDateTime.getDefaultTimeZone();
             }
         }
 

Modified: ofbiz/trunk/framework/base/src/base/org/ofbiz/base/util/template/FreeMarkerWorker.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/base/org/ofbiz/base/util/template/FreeMarkerWorker.java?rev=594088&r1=594087&r2=594088&view=diff
==============================================================================
--- ofbiz/trunk/framework/base/src/base/org/ofbiz/base/util/template/FreeMarkerWorker.java (original)
+++ ofbiz/trunk/framework/base/src/base/org/ofbiz/base/util/template/FreeMarkerWorker.java Mon Nov 12 03:50:09 2007
@@ -44,6 +44,7 @@
 
 import org.ofbiz.base.location.FlexibleLocation;
 import org.ofbiz.base.util.Debug;
+import org.ofbiz.base.util.UtilDateTime;
 import org.ofbiz.base.util.UtilGenerics;
 import org.ofbiz.base.util.UtilMisc;
 import org.ofbiz.base.util.UtilProperties;
@@ -221,7 +222,7 @@
 
         TimeZone timeZone = (TimeZone) context.get("timeZone");
         if (timeZone == null) {
-            timeZone = TimeZone.getDefault();
+            timeZone = UtilDateTime.getDefaultTimeZone();
         }
         env.setTimeZone(timeZone);
     }

Modified: ofbiz/trunk/framework/common/config/general.properties
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/common/config/general.properties?rev=594088&r1=594087&r2=594088&view=diff
==============================================================================
--- ofbiz/trunk/framework/common/config/general.properties (original)
+++ ofbiz/trunk/framework/common/config/general.properties Mon Nov 12 03:50:09 2007
@@ -29,6 +29,9 @@
 # -- locales made available separated by commas
 #locales.available=en,fr,nl
 
+# -- default Time Zone
+#timeZone.default=GMT
+
 # -- time zone IDs made available separated by commas
 #timeZones.available=US/Eastern,US/Central,US/Mountain,US/Pacific,US/Alaska,US/Hawaii
 

Modified: ofbiz/trunk/framework/service/src/org/ofbiz/service/ModelService.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/service/src/org/ofbiz/service/ModelService.java?rev=594088&r1=594087&r2=594088&view=diff
==============================================================================
--- ofbiz/trunk/framework/service/src/org/ofbiz/service/ModelService.java (original)
+++ ofbiz/trunk/framework/service/src/org/ofbiz/service/ModelService.java Mon Nov 12 03:50:09 2007
@@ -42,6 +42,7 @@
 import org.ofbiz.base.util.Debug;
 import org.ofbiz.base.util.GeneralException;
 import org.ofbiz.base.util.ObjectType;
+import org.ofbiz.base.util.UtilDateTime;
 import org.ofbiz.base.util.UtilProperties;
 import org.ofbiz.base.util.UtilValidate;
 import org.ofbiz.base.util.UtilMisc;
@@ -740,7 +741,7 @@
                 timeZone = (TimeZone) source.get("timeZone");
             }
             if (timeZone == null) {
-                timeZone = TimeZone.getDefault();
+                timeZone = UtilDateTime.getDefaultTimeZone();
             }
         }
         

Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelFormField.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelFormField.java?rev=594088&r1=594087&r2=594088&view=diff
==============================================================================
--- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelFormField.java (original)
+++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelFormField.java Mon Nov 12 03:50:09 2007
@@ -618,7 +618,7 @@
         Locale locale = (Locale) context.get("locale");
         if (locale == null) locale = Locale.getDefault();
         TimeZone timeZone = (TimeZone) context.get("timeZone");
-        if (timeZone == null) timeZone = TimeZone.getDefault();
+        if (timeZone == null) timeZone = UtilDateTime.getDefaultTimeZone();
         
         // if useRequestParameters is TRUE then parameters will always be used, if FALSE then parameters will never be used
         // if isError is TRUE and useRequestParameters is not FALSE (ie is null or TRUE) then parameters will be used