> > The source is present in the next build (20040508). I 
> checked it in on 
> > the 4th of may. Maybe my commit crossed the build.
> >
> Thanks, I will use the new one. It is also nice that you did 
> add the timezone as a request parameter in the editwizard.
> 

Well it is not perfect yet. I made a little mistake. I didn't add the
timezone to the calendar instance. Just some minutes ago I committed the new
wizard.java files.

Nico

Changed code
---------------------------------------------------------
    /** 
     * @return Calendar with timezone parameter
     */
    private Calendar getCalendar() {
        if (timezone != null) {
            TimeZone tz = TimeZone.getTimeZone(timezone);
            if (tz.getID().equals(timezone)) {
                return Calendar.getInstance(tz);
            }
            else {
                return Calendar.getInstance();
            }
        }
        else {
            return Calendar.getInstance();
        }
    }
    
    private String buildDate(ServletRequest req, String name) {
        try {
            int day = Integer.parseInt(req.getParameter("internal_" + name +
"_day"));
            int month = Integer.parseInt(req.getParameter("internal_" + name
+ "_month"));
            int year = Integer.parseInt(req.getParameter("internal_" + name
+ "_year"));
            
            Calendar cal = getCalendar();
            cal.set(year, month - 1, day, 0, 0, 0);
            return "" + cal.getTimeInMillis() / 1000;
        } catch (RuntimeException e) { //NumberFormat NullPointer
            log.debug("Failed to parse date for " + name + " " +
e.getMessage());
            return "";
        }
    }
    
    private String buildDatetime(ServletRequest req, String name) {
        try {
            int day = Integer.parseInt(req.getParameter("internal_" + name +
"_day"));
            int month = Integer.parseInt(req.getParameter("internal_" + name
+ "_month"));
            int year = Integer.parseInt(req.getParameter("internal_" + name
+ "_year"));
            int hours = Integer.parseInt(req.getParameter("internal_" + name
+ "_hours"));
            int minutes = Integer.parseInt(req.getParameter("internal_" +
name + "_minutes"));
            
            Calendar cal = getCalendar();
            cal.set(year, month - 1, day, hours, minutes, 0);
            return "" + cal.getTimeInMillis() / 1000;
        } catch (RuntimeException e) { //NumberFormat NullPointer
            log.debug("Failed to parse datetime for " + name + " "
                    + e.getMessage());
            return "";
        }
    }

    private String buildDuration(ServletRequest req, String name) {
        try {
            int hours = Integer.parseInt(req.getParameter("internal_" + name
+ "_hours"));
            int minutes = Integer.parseInt(req.getParameter("internal_" +
name + "_minutes"));
            int seconds = Integer.parseInt(req.getParameter("internal_" +
name + "_seconds"));
    
            Calendar cal = getCalendar();
            cal.set(1970, 0, 1, hours, minutes, seconds);
            return "" + cal.getTimeInMillis() / 1000;
        } catch (RuntimeException e) { //NumberFormat NullPointer
            log.debug("Failed to parse duration for " + name + " " +
e.getMessage());
            return "";
        }
    }


Reply via email to