roller-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From snoopd...@apache.org
Subject svn commit: r225230 [2/2] - in /incubator/roller/branches/roller_2.0: metadata/database/ src/org/roller/business/ src/org/roller/model/ src/org/roller/pojos/ src/org/roller/presentation/ src/org/roller/presentation/util/ src/org/roller/presentation/web...
Date Tue, 26 Jul 2005 04:35:38 GMT
Modified: incubator/roller/branches/roller_2.0/src/org/roller/util/DateUtil.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/src/org/roller/util/DateUtil.java?rev=225230&r1=225229&r2=225230&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/src/org/roller/util/DateUtil.java (original)
+++ incubator/roller/branches/roller_2.0/src/org/roller/util/DateUtil.java Mon Jul 25 21:35:24
2005
@@ -1 +1 @@
-package org.roller.util;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import
java.util.Calendar;
import java.util.Date;
import java.util.Locale;

/**
 * General purpose
date utilities.
 * @author Mark Saarinen
 * @author Lance Lavandowska
 */
public abstract
class DateUtil extends Object
{
    public static final long millisInDay = 86400000;

   
// some static date formats
    private static SimpleDateFormat[] mDateFormats = loadDateFormats();
   
    private static final SimpleDateFormat mFormat8chars = 
        new SimpleDateFormat("yyyyMMdd");

   private static final SimpleDateFormat mFormatIso8601Day = 
        new SimpleDateFormat("yyyy-MM-dd");

   private static final SimpleDateFormat mFormatIso8601 = 
        new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
   
    // http://www.w3.org/Protocols/rfc822/Overview.html#z28
    // Using Locale.US to
fix ROL-725 and ROL-628
    private static final SimpleDateFormat mFormatRfc822 = 
      
 new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z", Locale.US); 

    private static SimpleDateFormat[]
loadDateFormats()
    {
        SimpleDateFormat[] temp = {
            //new SimpleDateFormat("MM/dd/yyyy
hh:mm:ss.SSS a"),
            new SimpleDateFormat("EEE MMM d HH:mm:ss z yyyy"), // standard
Date.toString() results
            new SimpleDateFormat("M/d/yy hh:mm:ss"),
            new
SimpleDateFormat("M/d/yyyy hh:mm:ss"),
            new SimpleDateFormat("M/d/yy hh:mm a"),
           new SimpleDateFormat("M/d/yyyy hh:mm a"),
            new SimpleDateFormat("M/d/yy
HH:mm"),
            new SimpleDateFormat("M/d/yyyy HH:mm"),
            new SimpleDateFormat("dd.MM.yyyy
HH:mm:ss"),
            new SimpleDateFormat("yy-MM-dd HH:mm:ss.SSS"),
            new SimpleDateFormat("yyyy-MM-dd
HH:mm:ss.SSS"), // standard Timestamp.toString() results
            new SimpleDateFormat("M-d-yy
HH:mm"),
            new SimpleDateFormat("M-d-yyyy HH:mm"),
            new SimpleDateFormat("MM/dd/yyyy
HH:mm:ss.SSS"),
            new SimpleDateFormat("M/d/yy"),
            new SimpleDateFormat("M/d/yyyy"),
           new SimpleDateFormat("M-d-yy"),
            new SimpleDateFormat("M-d-yyyy"),
           new SimpleDateFormat("MMMM d, yyyyy"),
            new SimpleDateFormat("MMM d,
yyyyy")
        };
    
        return temp;
    }
    //-----------------------------------------------------------------------
   /**
     * Gets the array of SimpleDateFormats that DateUtil knows about.
    **/
    private
static SimpleDateFormat[] getFormats()
    {
        return mDateFormats;
    }

	//-----------------------------------------------------------------------
/**
	 * Returns a Date set to the last possible millisecond of the day, just
	 * before midnight.
If a null day is passed in, a new Date is created.
	 * midnight (00m 00h 00s)
	 */
	public
static Date getEndOfDay(Date day)
	{
		return getEndOfDay(day,Calendar.getInstance());
	}
public static Date getEndOfDay(Date day,Calendar cal)
	{
		if (day == null) day = new Date();
	cal.setTime(day);
		cal.set(Calendar.HOUR_OF_DAY, cal.getMaximum(Calendar.HOUR_OF_DAY));
	cal.set(Calendar.MINUTE,      cal.getMaximum(Calendar.MINUTE));
		cal.set(Calendar.SECOND,
     cal.getMaximum(Calendar.SECOND));
		cal.set(Calendar.MILLISECOND, cal.getMaximum(Calendar.MILLISECOND));
       return cal.getTime();
	}

    //-----------------------------------------------------------------------
/**
	 * Returns a Date set to the first possible millisecond of the day, just
	 * after midnight.
If a null day is passed in, a new Date is created.
	 * midnight (00m 00h 00s)
	 */
	public
static Date getStartOfDay(Date day)
	{
		return getStartOfDay(day, Calendar.getInstance());
}
	/**
	 * Returns a Date set to the first possible millisecond of the day, just
	 * after
midnight. If a null day is passed in, a new Date is created.
	 * midnight (00m 00h 00s)
	
*/
	public static Date getStartOfDay(Date day, Calendar cal)
	{
		if (day == null) day = new
Date();
		cal.setTime(day);
		cal.set(Calendar.HOUR_OF_DAY, cal.getMinimum(Calendar.HOUR_OF_DAY));
	cal.set(Calendar.MINUTE,      cal.getMinimum(Calendar.MINUTE));
		cal.set(Calendar.SECOND,
     cal.getMinimum(Calendar.SECOND));
		cal.set(Calendar.MILLISECOND, cal.getMinimum(Calendar.MILLISECOND));
       return cal.getTime();
	}

    /**
     * Returns a Date set just to Noon, to the closest
possible millisecond
     * of the day. If a null day is passed in, a new Date is created.
    * nnoon (00m 12h 00s)
     */
    public static Date getNoonOfDay(Date day, Calendar cal)
   {
        if (day == null) day = new Date();
        cal.setTime(day);
        cal.set(Calendar.HOUR_OF_DAY,
12);
        cal.set(Calendar.MINUTE,      cal.getMinimum(Calendar.MINUTE));
        cal.set(Calendar.SECOND,
     cal.getMinimum(Calendar.SECOND));
        cal.set(Calendar.MILLISECOND, cal.getMinimum(Calendar.MILLISECOND));
       return cal.getTime();
    }
    
    //-----------------------------------------------------------------------
   public static Date parseFromFormats(String aValue)
    {
        if (StringUtils.isEmpty(aValue))
return null;

        // get DateUtil's formats
        SimpleDateFormat formats[] = DateUtil.getFormats();
       if (formats == null) return null;

        // iterate over the array and parse
   
    Date myDate = null;
        for (int i = 0; i <formats.length; i++)
        {
    
       try
            {
                myDate = DateUtil.parse(aValue, formats[i]);
   
            //if (myDate instanceof Date) 
                return myDate;
            }
 
          catch (Exception e)
            {
                // do nothing because we want
to try the next
                // format if current one fails
            }
       }
   
   // haven't returned so couldn't parse
       return null;
    }

    //-----------------------------------------------------------------------
   public static java.sql.Timestamp parseTimestampFromFormats(String aValue)
    {
      
 if (StringUtils.isEmpty(aValue)) return null;

        // call the regular Date formatter
       Date myDate = DateUtil.parseFromFormats(aValue);
        if (myDate != null) return
new java.sql.Timestamp(myDate.getTime());
        return null;
    }
    //-----------------------------------------------------------------------
   /**
     * Returns a java.sql.Timestamp equal to the current time
    **/
    public static
java.sql.Timestamp now()
    {
        return new java.sql.Timestamp(new java.util.Date().getTime());
   }

    //-----------------------------------------------------------------------
    /**
    * Returns a string the represents the passed-in date parsed
     * according to the passed-in
format.  Returns an empty string
     * if the date or the format is null.
    **/
    public
static String format(Date aDate, SimpleDateFormat aFormat)
    {
        if (aDate == null
|| aFormat == null ) { return ""; }
        synchronized (aFormat) 
        {
           
return aFormat.format(aDate);
        }
    }

    //-----------------------------------------------------------------------
   /**
     * Tries to take the passed-in String and format it as a date string in the
  
  * the passed-in format.
    **/
    public static String formatDateString(String aString,
SimpleDateFormat aFormat)
    {
        if (StringUtils.isEmpty(aString) || aFormat == null)
 return "";
        try
        {
            java.sql.Timestamp aDate = parseTimestampFromFormats(aString);
           if (aDate != null)
            {
                return DateUtil.format(aDate,
aFormat);
            }
        }
        catch (Exception e)
        {
            // Could
not parse aString.
        }
        return "";
    }

    //-----------------------------------------------------------------------
   /**
     * Returns a Date using the passed-in string and format.  Returns null if the string
    * is null or empty or if the format is null.  The string must match the format.
    **/
   public static Date parse(String aValue, SimpleDateFormat aFormat) throws ParseException
   {
        if (StringUtils.isEmpty(aValue) || aFormat == null)
        {
            return
null;
        }

        return aFormat.parse(aValue);
    }

    //-----------------------------------------------------------------------
   /**
     * Returns true if endDate is after startDate or if startDate equals endDate
 
   * or if they are the same date.  Returns false if either value is null.
    **/
    public
static boolean isValidDateRange(Date startDate, Date endDate)
    {
        return isValidDateRange(startDate,
endDate, true);
    }

    //-----------------------------------------------------------------------
   /**
     * Returns true if endDate is after startDate or if startDate equals endDate.
    * Returns false if either value is null.  If equalOK, returns true if the
     * dates
are equal.
    **/
    public static boolean isValidDateRange(Date startDate, Date endDate,
boolean equalOK)
    {
        // false if either value is null
        if (startDate == null
|| endDate == null) { return false; }

        if (equalOK)
        {
            // true
if they are equal
            if (startDate.equals(endDate)) { return true; }
        }

       // true if endDate after startDate
        if (endDate.after(startDate)) { return true;
}

        return false;
    }

    //-----------------------------------------------------------------------
   // returns full timestamp format
    public static java.text.SimpleDateFormat defaultTimestampFormat()
   {
        return new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
    }

   
//-----------------------------------------------------------------------
    // convenience
method returns minimal date format
    public static java.text.SimpleDateFormat get8charDateFormat()
   {
        return DateUtil.mFormat8chars;
    }

    //-----------------------------------------------------------------------
   // convenience method returns minimal date format
    public static java.text.SimpleDateFormat
defaultDateFormat()
    {
        return DateUtil.friendlyDateFormat(true);
    }

    //-----------------------------------------------------------------------
   // convenience method
    public static String defaultTimestamp(Date date)
    {
     
  return DateUtil.format(date, DateUtil.defaultTimestampFormat());
    }
    
    //-----------------------------------------------------------------------
   // convenience method
    public static String defaultDate(Date date)
    {
        return
DateUtil.format(date, DateUtil.defaultDateFormat());
    }

    //-----------------------------------------------------------------------
   // convenience method returns long friendly timestamp format
    public static java.text.SimpleDateFormat
friendlyTimestampFormat()
    {
        return new java.text.SimpleDateFormat("dd.MM.yyyy
HH:mm:ss");
    }

    //-----------------------------------------------------------------------
   // convenience method returns long friendly formatted timestamp
    public static String
friendlyTimestamp(Date date)
    {
        return DateUtil.format(date, DateUtil.friendlyTimestampFormat());
   }

    //-----------------------------------------------------------------------
    //
convenience method returns long friendly formatted timestamp
    public static String format8chars(Date
date)
    {
        return DateUtil.format(date, mFormat8chars);
    }

    //-----------------------------------------------------------------------
   // convenience method returns long friendly formatted timestamp
    public static String
formatIso8601Day(Date date)
    {
        return DateUtil.format(date, mFormatIso8601Day);
   }

    //-----------------------------------------------------------------------
    public
static String formatRfc822(Date date)
    {
        return DateUtil.format(date,mFormatRfc822);
   }

    //-----------------------------------------------------------------------
    //
This is a hack, but it seems to work
    public static String formatIso8601(Date date)
  
 {
        if (date == null) return "";
        
        // Add a colon 2 chars before the
end of the string
        // to make it a valid ISO-8601 date.
         
        String str
= DateUtil.format(date,mFormatIso8601);
        StringBuffer sb = new StringBuffer();
   
    sb.append( str.substring(0,str.length()-2) );
        sb.append( ":" );
        sb.append(
str.substring(str.length()-2) );
        return sb.toString();
    }

    //-----------------------------------------------------------------------
   // convenience method returns minimal date format
    public static java.text.SimpleDateFormat
minimalDateFormat()
    {
        return DateUtil.friendlyDateFormat(true);
    }

    //-----------------------------------------------------------------------
   // convenience method using minimal date format
    public static String minimalDate(Date
date)
    {
        return DateUtil.format(date, DateUtil.minimalDateFormat());
    }

  
 //-----------------------------------------------------------------------
    // convenience
method that returns friendly data format
    // using full month, day, year digits.
    public
static java.text.SimpleDateFormat fullDateFormat()
    {
        return DateUtil.friendlyDateFormat(false);
   }

    //-----------------------------------------------------------------------
    public
static String fullDate(Date date)
    {
        return DateUtil.format(date, DateUtil.fullDateFormat());
   }

    //-----------------------------------------------------------------------
    /**
Returns a "friendly" date format.
     *  @param mimimalFormat Should the date format allow
single digits.
    **/
    public static java.text.SimpleDateFormat friendlyDateFormat(boolean
minimalFormat)
    {
        if (minimalFormat)
        {
            return new java.text.SimpleDateFormat("d.M.yy");
       }

        return new java.text.SimpleDateFormat("dd.MM.yyyy");
    }

    //-----------------------------------------------------------------------
   /**
     * Format the date using the "friendly" date format.
     */
    public static
String friendlyDate(Date date, boolean minimalFormat)
    {
        return DateUtil.format(date,
DateUtil.friendlyDateFormat(minimalFormat));
    }

    //-----------------------------------------------------------------------
   // convenience method
    public static String friendlyDate(Date date)
    {
        return
DateUtil.format(date, DateUtil.friendlyDateFormat(true));
    }
    
    public static Date
parseIso8601(String value) throws Exception
    {
        return ISO8601DateParser.parse(value);
   }
}
\ No newline at end of file
+package org.roller.util;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import
java.util.Calendar;
import java.util.Date;
import java.util.Locale;

/**
 * General purpose
date utilities.
 * @author Mark Saarinen
 * @author Lance Lavandowska
 */
public abstract
class DateUtil extends Object
{
    public static final long millisInDay = 86400000;

   
// some static date formats
    private static SimpleDateFormat[] mDateFormats = loadDateFormats();
   
    private static final SimpleDateFormat mFormat8chars = 
        new SimpleDateFormat("yyyyMMdd");

   private static final SimpleDateFormat mFormatIso8601Day = 
        new SimpleDateFormat("yyyy-MM-dd");

   private static final SimpleDateFormat mFormatIso8601 = 
        new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
   
    // http://www.w3.org/Protocols/rfc822/Overview.html#z28
    // Using Locale.US to
fix ROL-725 and ROL-628
    private static final SimpleDateFormat mFormatRfc822 = 
      
 new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z", Locale.US); 

    
    private static
SimpleDateFormat[] loadDateFormats()
    {
        SimpleDateFormat[] temp = {
          
 //new SimpleDateFormat("MM/dd/yyyy hh:mm:ss.SSS a"),
            new SimpleDateFormat("EEE
MMM d HH:mm:ss z yyyy"), // standard Date.toString() results
            new SimpleDateFormat("M/d/yy
hh:mm:ss"),
            new SimpleDateFormat("M/d/yyyy hh:mm:ss"),
            new SimpleDateFormat("M/d/yy
hh:mm a"),
            new SimpleDateFormat("M/d/yyyy hh:mm a"),
            new SimpleDateFormat("M/d/yy
HH:mm"),
            new SimpleDateFormat("M/d/yyyy HH:mm"),
            new SimpleDateFormat("dd.MM.yyyy
HH:mm:ss"),
            new SimpleDateFormat("yy-MM-dd HH:mm:ss.SSS"),
            new SimpleDateFormat("yyyy-MM-dd
HH:mm:ss.SSS"), // standard Timestamp.toString() results
            new SimpleDateFormat("M-d-yy
HH:mm"),
            new SimpleDateFormat("M-d-yyyy HH:mm"),
            new SimpleDateFormat("MM/dd/yyyy
HH:mm:ss.SSS"),
            new SimpleDateFormat("M/d/yy"),
            new SimpleDateFormat("M/d/yyyy"),
           new SimpleDateFormat("M-d-yy"),
            new SimpleDateFormat("M-d-yyyy"),
           new SimpleDateFormat("MMMM d, yyyyy"),
            new SimpleDateFormat("MMM d,
yyyyy")
        };
    
        return temp;
    }
    //-----------------------------------------------------------------------
   /**
     * Gets the array of SimpleDateFormats that DateUtil knows about.
    **/
    private
static SimpleDateFormat[] getFormats()
    {
        return mDateFormats;
    }

	//-----------------------------------------------------------------------
/**
	 * Returns a Date set to the last possible millisecond of the day, just
	 * before midnight.
If a null day is passed in, a new Date is created.
	 * midnight (00m 00h 00s)
	 */
	public
static Date getEndOfDay(Date day)
	{
		return getEndOfDay(day,Calendar.getInstance());
	}
public static Date getEndOfDay(Date day,Calendar cal)
	{
		if (day == null) day = new Date();
	cal.setTime(day);
		cal.set(Calendar.HOUR_OF_DAY, cal.getMaximum(Calendar.HOUR_OF_DAY));
	cal.set(Calendar.MINUTE,      cal.getMaximum(Calendar.MINUTE));
		cal.set(Calendar.SECOND,
     cal.getMaximum(Calendar.SECOND));
		cal.set(Calendar.MILLISECOND, cal.getMaximum(Calendar.MILLISECOND));
       return cal.getTime();
	}

    //-----------------------------------------------------------------------
/**
	 * Returns a Date set to the first possible millisecond of the day, just
	 * after midnight.
If a null day is passed in, a new Date is created.
	 * midnight (00m 00h 00s)
	 */
	public
static Date getStartOfDay(Date day)
	{
		return getStartOfDay(day, Calendar.getInstance());
}
	/**
	 * Returns a Date set to the first possible millisecond of the day, just
	 * after
midnight. If a null day is passed in, a new Date is created.
	 * midnight (00m 00h 00s)
	
*/
	public static Date getStartOfDay(Date day, Calendar cal)
	{
		if (day == null) day = new
Date();
		cal.setTime(day);
		cal.set(Calendar.HOUR_OF_DAY, cal.getMinimum(Calendar.HOUR_OF_DAY));
	cal.set(Calendar.MINUTE,      cal.getMinimum(Calendar.MINUTE));
		cal.set(Calendar.SECOND,
     cal.getMinimum(Calendar.SECOND));
		cal.set(Calendar.MILLISECOND, cal.getMinimum(Calendar.MILLISECOND));
       return cal.getTime();
	}

    /**
     * Returns a Date set just to Noon, to the closest
possible millisecond
     * of the day. If a null day is passed in, a new Date is created.
    * nnoon (00m 12h 00s)
     */
    public static Date getNoonOfDay(Date day, Calendar cal)
   {
        if (day == null) day = new Date();
        cal.setTime(day);
        cal.set(Calendar.HOUR_OF_DAY,
12);
        cal.set(Calendar.MINUTE,      cal.getMinimum(Calendar.MINUTE));
        cal.set(Calendar.SECOND,
     cal.getMinimum(Calendar.SECOND));
        cal.set(Calendar.MILLISECOND, cal.getMinimum(Calendar.MILLISECOND));
       return cal.getTime();
    }
    
    //-----------------------------------------------------------------------
   public static Date parseFromFormats(String aValue)
    {
        if (StringUtils.isEmpty(aValue))
return null;

        // get DateUtil's formats
        SimpleDateFormat formats[] = DateUtil.getFormats();
       if (formats == null) return null;

        // iterate over the array and parse
   
    Date myDate = null;
        for (int i = 0; i <formats.length; i++)
        {
    
       try
            {
                myDate = DateUtil.parse(aValue, formats[i]);
   
            //if (myDate instanceof Date) 
                return myDate;
            }
 
          catch (Exception e)
            {
                // do nothing because we want
to try the next
                // format if current one fails
            }
       }
   
   // haven't returned so couldn't parse
       return null;
    }

    //-----------------------------------------------------------------------
   public static java.sql.Timestamp parseTimestampFromFormats(String aValue)
    {
      
 if (StringUtils.isEmpty(aValue)) return null;

        // call the regular Date formatter
       Date myDate = DateUtil.parseFromFormats(aValue);
        if (myDate != null) return
new java.sql.Timestamp(myDate.getTime());
        return null;
    }
    //-----------------------------------------------------------------------
   /**
     * Returns a java.sql.Timestamp equal to the current time
    **/
    public static
java.sql.Timestamp now()
    {
        return new java.sql.Timestamp(new java.util.Date().getTime());
   }

    //-----------------------------------------------------------------------
    /**
    * Returns a string the represents the passed-in date parsed
     * according to the passed-in
format.  Returns an empty string
     * if the date or the format is null.
    **/
    public
static String format(Date aDate, SimpleDateFormat aFormat)
    {
        if (aDate == null
|| aFormat == null ) { return ""; }
        synchronized (aFormat) 
        {
           
return aFormat.format(aDate);
        }
    }

    //-----------------------------------------------------------------------
   /**
     * Tries to take the passed-in String and format it as a date string in the
  
  * the passed-in format.
    **/
    public static String formatDateString(String aString,
SimpleDateFormat aFormat)
    {
        if (StringUtils.isEmpty(aString) || aFormat == null)
 return "";
        try
        {
            java.sql.Timestamp aDate = parseTimestampFromFormats(aString);
           if (aDate != null)
            {
                return DateUtil.format(aDate,
aFormat);
            }
        }
        catch (Exception e)
        {
            // Could
not parse aString.
        }
        return "";
    }

    //-----------------------------------------------------------------------
   /**
     * Returns a Date using the passed-in string and format.  Returns null if the string
    * is null or empty or if the format is null.  The string must match the format.
    **/
   public static Date parse(String aValue, SimpleDateFormat aFormat) throws ParseException
   {
        if (StringUtils.isEmpty(aValue) || aFormat == null)
        {
            return
null;
        }

        return aFormat.parse(aValue);
    }

    //-----------------------------------------------------------------------
   /**
     * Returns true if endDate is after startDate or if startDate equals endDate
 
   * or if they are the same date.  Returns false if either value is null.
    **/
    public
static boolean isValidDateRange(Date startDate, Date endDate)
    {
        return isValidDateRange(startDate,
endDate, true);
    }

    //-----------------------------------------------------------------------
   /**
     * Returns true if endDate is after startDate or if startDate equals endDate.
    * Returns false if either value is null.  If equalOK, returns true if the
     * dates
are equal.
    **/
    public static boolean isValidDateRange(Date startDate, Date endDate,
boolean equalOK)
    {
        // false if either value is null
        if (startDate == null
|| endDate == null) { return false; }

        if (equalOK)
        {
            // true
if they are equal
            if (startDate.equals(endDate)) { return true; }
        }

       // true if endDate after startDate
        if (endDate.after(startDate)) { return true;
}

        return false;
    }

    //-----------------------------------------------------------------------
   // returns full timestamp format
    public static java.text.SimpleDateFormat defaultTimestampFormat()
   {
        return new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
    }

   
//-----------------------------------------------------------------------
    // convenience
method returns minimal date format
    public static java.text.SimpleDateFormat get8charDateFormat()
   {
        return DateUtil.mFormat8chars;
    }

    //-----------------------------------------------------------------------
   // convenience method returns minimal date format
    public static java.text.SimpleDateFormat
defaultDateFormat()
    {
        return DateUtil.friendlyDateFormat(true);
    }

    //-----------------------------------------------------------------------
   // convenience method
    public static String defaultTimestamp(Date date)
    {
     
  return DateUtil.format(date, DateUtil.defaultTimestampFormat());
    }
    
    //-----------------------------------------------------------------------
   // convenience method
    public static String defaultDate(Date date)
    {
        return
DateUtil.format(date, DateUtil.defaultDateFormat());
    }

    //-----------------------------------------------------------------------
   // convenience method returns long friendly timestamp format
    public static java.text.SimpleDateFormat
friendlyTimestampFormat()
    {
        return new java.text.SimpleDateFormat("dd.MM.yyyy
HH:mm:ss");
    }

    //-----------------------------------------------------------------------
   // convenience method returns long friendly formatted timestamp
    public static String
friendlyTimestamp(Date date)
    {
        return DateUtil.format(date, DateUtil.friendlyTimestampFormat());
   }

    //-----------------------------------------------------------------------
    //
convenience method returns long friendly formatted timestamp
    public static String format8chars(Date
date)
    {
        return DateUtil.format(date, mFormat8chars);
    }

    //-----------------------------------------------------------------------
   // convenience method returns long friendly formatted timestamp
    public static String
formatIso8601Day(Date date)
    {
        return DateUtil.format(date, mFormatIso8601Day);
   }

    //-----------------------------------------------------------------------
    public
static String formatRfc822(Date date)
    {
        return DateUtil.format(date,mFormatRfc822);
   }

    //-----------------------------------------------------------------------
    //
This is a hack, but it seems to work
    public static String formatIso8601(Date date)
  
 {
        if (date == null) return "";
        
        // Add a colon 2 chars before the
end of the string
        // to make it a valid ISO-8601 date.
         
        String str
= DateUtil.format(date,mFormatIso8601);
        StringBuffer sb = new StringBuffer();
   
    sb.append( str.substring(0,str.length()-2) );
        sb.append( ":" );
        sb.append(
str.substring(str.length()-2) );
        return sb.toString();
    }

    //-----------------------------------------------------------------------
   // convenience method returns minimal date format
    public static java.text.SimpleDateFormat
minimalDateFormat()
    {
        return DateUtil.friendlyDateFormat(true);
    }

    //-----------------------------------------------------------------------
   // convenience method using minimal date format
    public static String minimalDate(Date
date)
    {
        return DateUtil.format(date, DateUtil.minimalDateFormat());
    }

  
 //-----------------------------------------------------------------------
    // convenience
method that returns friendly data format
    // using full month, day, year digits.
    public
static java.text.SimpleDateFormat fullDateFormat()
    {
        return DateUtil.friendlyDateFormat(false);
   }

    //-----------------------------------------------------------------------
    public
static String fullDate(Date date)
    {
        return DateUtil.format(date, DateUtil.fullDateFormat());
   }

    //-----------------------------------------------------------------------
    /**
Returns a "friendly" date format.
     *  @param mimimalFormat Should the date format allow
single digits.
    **/
    public static java.text.SimpleDateFormat friendlyDateFormat(boolean
minimalFormat)
    {
        if (minimalFormat)
        {
            return new java.text.SimpleDateFormat("d.M.yy");
       }

        return new java.text.SimpleDateFormat("dd.MM.yyyy");
    }

    //-----------------------------------------------------------------------
   /**
     * Format the date using the "friendly" date format.
     */
    public static
String friendlyDate(Date date, boolean minimalFormat)
    {
        return DateUtil.format(date,
DateUtil.friendlyDateFormat(minimalFormat));
    }

    //-----------------------------------------------------------------------
   // convenience method
    public static String friendlyDate(Date date)
    {
        return
DateUtil.format(date, DateUtil.friendlyDateFormat(true));
    }
    
    public static Date
parseIso8601(String value) throws Exception
    {
        return ISO8601DateParser.parse(value);
   }


}
\ No newline at end of file

Modified: incubator/roller/branches/roller_2.0/src/org/roller/util/Utilities.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/src/org/roller/util/Utilities.java?rev=225230&r1=225229&r2=225230&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/src/org/roller/util/Utilities.java (original)
+++ incubator/roller/branches/roller_2.0/src/org/roller/util/Utilities.java Mon Jul 25 21:35:24
2005
@@ -11,6 +11,7 @@
 import java.io.UnsupportedEncodingException;
 import java.net.URLEncoder;
 import java.security.MessageDigest;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.NoSuchElementException;
 import java.util.StringTokenizer;
@@ -44,7 +45,7 @@
     /** Pattern for matching HTML links */
     private static Pattern mLinkPattern = 
         Pattern.compile("<a href=.*?>", Pattern.CASE_INSENSITIVE);
-    
+
     /**
      * Utility methods for calling StringUtils since it cannot be 
      * instantiated and Utilties can.

Modified: incubator/roller/branches/roller_2.0/tests/org/roller/RollerTestBase.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/tests/org/roller/RollerTestBase.java?rev=225230&r1=225229&r2=225230&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/tests/org/roller/RollerTestBase.java (original)
+++ incubator/roller/branches/roller_2.0/tests/org/roller/RollerTestBase.java Mon Jul 25 21:35:24
2005
@@ -145,7 +145,8 @@
         
         // Create website for user with those pages
         umgr.createWebsite(
-           ud, pages, "basic", "en_US_WIN", "America/Los_Angeles");
+           ud, pages, username, username, username, "basic", 
+           "en_US_WIN", "America/Los_Angeles");
         
         return ud;
     }

Modified: incubator/roller/branches/roller_2.0/tests/org/roller/business/FileManagerTest.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/tests/org/roller/business/FileManagerTest.java?rev=225230&r1=225229&r2=225230&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/tests/org/roller/business/FileManagerTest.java (original)
+++ incubator/roller/branches/roller_2.0/tests/org/roller/business/FileManagerTest.java Mon
Jul 25 21:35:24 2005
@@ -128,7 +128,9 @@
         pages.put("_day","Day page content");
         pages.put("css","CSS page content");
         umgr.addUser(user);
-        umgr.createWebsite(user, pages, "basic", "en_US_WIN", "America/Los_Angeles");
+        umgr.createWebsite(user, pages, 
+                user.getUserName(), user.getUserName(), user.getUserName(), 
+                "basic", "en_US_WIN", "America/Los_Angeles");
         mRoller.commit();
         WebsiteData website = (WebsiteData)umgr.getWebsites(user,null).get(0);
         return website;

Modified: incubator/roller/branches/roller_2.0/tests/org/roller/business/UserManagerTest.java
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/tests/org/roller/business/UserManagerTest.java?rev=225230&r1=225229&r2=225230&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/tests/org/roller/business/UserManagerTest.java (original)
+++ incubator/roller/branches/roller_2.0/tests/org/roller/business/UserManagerTest.java Mon
Jul 25 21:35:24 2005
@@ -4,24 +4,23 @@
 import java.io.FileInputStream;
 import java.sql.Connection;
 import java.sql.DriverManager;
+import java.util.Date;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.Properties; 
+import java.util.Properties;
 
 import junit.framework.Test;
 import junit.framework.TestSuite;
 
 import org.roller.RollerException;
-import org.roller.RollerPermissionsException;
+import org.roller.RollerTestBase;
 import org.roller.model.UserManager;
 import org.roller.model.WeblogManager;
 import org.roller.pojos.FolderData;
-import org.roller.pojos.PageData;
 import org.roller.pojos.UserData;
 import org.roller.pojos.WeblogCategoryData;
 import org.roller.pojos.WebsiteData;
-import org.roller.RollerTestBase;
 
 ///////////////////////////////////////////////////////////////////////////////
 /**
@@ -187,7 +186,8 @@
             Boolean.FALSE,
             null,
             Boolean.TRUE, 
-            "");
+            "", 
+            new Date());
         umgr.storeWebsite(stored);
 
         FolderData rootFolder = getRoller().getBookmarkManager()
@@ -241,7 +241,9 @@
         pages.put("_day","Day page content");
         pages.put("css","CSS page content");
         umgr.addUser(user);
-        umgr.createWebsite(user, pages, "basic", "en_US_WIN", "America/Los_Angeles");
+        umgr.createWebsite(user, pages, 
+                user.getUserName(), user.getUserName(), user.getUserName(), 
+                "basic", "en_US_WIN", "America/Los_Angeles");
         getRoller().commit();
 
         // Verify that user has all the goodies

Modified: incubator/roller/branches/roller_2.0/web/index.jsp
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/web/index.jsp?rev=225230&r1=225229&r2=225230&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/web/index.jsp (original)
+++ incubator/roller/branches/roller_2.0/web/index.jsp Mon Jul 25 21:35:24 2005
@@ -1,5 +1,5 @@
 <%@ page language="java" %>	
-<jsp:forward page="yourWebsites.do?rmik=tabbedmenu.main&rmk=tabbedmenu.yourWebsites"
/>
+<jsp:forward page="editor/yourWebsites.do?rmik=tabbedmenu.main&rmk=tabbedmenu.yourWebsites"
/>
 <%--
 <jsp:forward page="main.do?rmik=tabbedmenu.main&rmk=tabbedmenu.main" />
 --%>

Modified: incubator/roller/branches/roller_2.0/web/website/NewWebsite.jsp
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/web/website/NewWebsite.jsp?rev=225230&r1=225229&r2=225230&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/web/website/NewWebsite.jsp (original)
+++ incubator/roller/branches/roller_2.0/web/website/NewWebsite.jsp Mon Jul 25 21:35:24 2005
@@ -1,7 +1,62 @@
 <%@ include file="/taglibs.jsp" %><%@ include file="/theme/header.jsp" %>
 
 <h1><fmt:message key="newWebsite.title" /></h1>
+
+<br /> 
+<html:form action="/editor/newWebsite" method="post" focus="handle">
+
+    <div class="formrow">
+       <label for="handle" class="formrow" /><fmt:message key="newWebsite.handle"
/></label>
+       <html:text property="handle" size="30" maxlength="30" />
+    </div>
     
+    <div class="formrow">
+       <label for="name" class="formrow" /><fmt:message key="newWebsite.name" /></label>
+       <html:text property="name" size="30" maxlength="30" />
+    </div>
+    
+    <div class="formrow">
+       <label for="description" class="formrow" /><fmt:message key="newWebsite.description"
/></label>
+       <html:text property="description" size="30" maxlength="30" />
+    </div>   
+     
+    <div class="formrow">
+       <label for="emailAddress" class="formrow" /><fmt:message key="newWebsite.emailAddress"
/></label>
+       <html:text property="emailAddress" size="30" maxlength="30" />
+    </div>
+    
+    <div class="formrow">
+       <label for="locale" class="formrow" /><fmt:message key="userSettings.locale"
/></label>
+       <html:select property="locale" size="1" >
+          <html:options collection="locales" property="value" labelProperty="label"/>
+       </html:select>
+    </div>
+    
+    <div class="formrow">
+       <label for="timeZone" class="formrow" /><fmt:message key="userSettings.timezone"
/></label>
+       <html:select property="timeZone" size="1" >
+           <html:options collection="timezones" property="value" labelProperty="label"/>
+       </html:select>
+    </div>
+    
+    <div class="formrow">
+       <label for="theme" class="formrow" /><fmt:message key="newuser.theme" /></label>
+       <html:select property="theme" size="1" onchange="previewImage(this[selectedIndex].value)">
+           <html:options name="model" property="themes" />
+       </html:select>
+    </div>
+    
+    <div class="formrow">
+       <label for="preview" class="formrow" />&nbsp;</label>
+       <img name="preview" 
+          src="<%= request.getContextPath() %>/images/preview/sm-theme-basic.png" height="268"
width="322" />
+    </div>    
+    
+    <div class="control">
+       <html:submit /></input>
+    </div>
+</html:form>
+
 <%@ include file="/theme/footer.jsp" %>
 
 

Modified: incubator/roller/branches/roller_2.0/web/website/UserNew.jsp
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/web/website/UserNew.jsp?rev=225230&r1=225229&r2=225230&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/web/website/UserNew.jsp (original)
+++ incubator/roller/branches/roller_2.0/web/website/UserNew.jsp Mon Jul 25 21:35:24 2005
@@ -53,14 +53,14 @@
     <div class="formrow">
        <label for="locale" class="formrow" /><fmt:message key="userSettings.locale"
/></label>
        <html:select property="locale" size="1" >
-          <html:options collection="roller.locales" property="value" labelProperty="label"/>
+          <html:options collection="locales" property="value" labelProperty="label"/>
        </html:select>
     </div>
 
     <div class="formrow">
        <label for="timezone" class="formrow" /><fmt:message key="userSettings.timezone"
/></label>
        <html:select property="timezone" size="1" >
-           <html:options collection="roller.timezones" property="value" labelProperty="label"/>
+           <html:options collection="timezones" property="value" labelProperty="label"/>
        </html:select>
     </div>
 

Modified: incubator/roller/branches/roller_2.0/web/website/YourProfile.jsp
URL: http://svn.apache.org/viewcvs/incubator/roller/branches/roller_2.0/web/website/YourProfile.jsp?rev=225230&r1=225229&r2=225230&view=diff
==============================================================================
--- incubator/roller/branches/roller_2.0/web/website/YourProfile.jsp (original)
+++ incubator/roller/branches/roller_2.0/web/website/YourProfile.jsp Mon Jul 25 21:35:24 2005
@@ -1,13 +1,13 @@
 <%@ include file="/taglibs.jsp" %><%@ include file="/theme/header.jsp" %>
 
-<br />
-<h1><fmt:message key="userSettings.userSettings" /></h1>
+<h1><fmt:message key="yourProfile.title" /></h1>
 
 <br /> 
-<html:form action="/editor/user" method="post" focus="fullName">
-    <html:hidden property="method" value="update"/></input>
+<html:form action="/editor/yourProfile" method="post" focus="fullName">
+    <html:hidden property="method" value="save"/></input>
     <html:hidden property="id"/></input>
     <html:hidden property="userName" /></input>
+    <html:hidden property="isEnabled" /></input>
     
     <div class="formrow">
        <label for="fullName" class="formrow" /><fmt:message key="userSettings.fullname"
/></label>
@@ -34,27 +34,17 @@
     <div class="formrow">
        <label for="locale" class="formrow" /><fmt:message key="userSettings.locale"
/></label>
        <html:select property="locale" size="1" >
-          <html:options collection="roller.locales" property="value" labelProperty="label"/>
+           <html:options collection="locales" property="value" labelProperty="label"/>
        </html:select>
     </div>
 
     <div class="formrow">
-       <label for="timezone" class="formrow" /><fmt:message key="userSettings.timezone"
/></label>
-       <html:select property="timezone" size="1" >
-           <html:options collection="roller.timezones" property="value" labelProperty="label"/>
+       <label for="timeZone" class="formrow" /><fmt:message key="userSettings.timeZone"
/></label>
+       <html:select property="timeZone" size="1" >
+           <html:options collection="timezones" property="value" labelProperty="label"/>
        </html:select>
     </div>
 
-    <html:hidden property="theme" /></input>
-    <%-- Not implemented for the front end yet
-    <div class="formrow">
-       <label for="theme" class="formrow" /><fmt:message key="fixme!" /></label>
-       <html:select property="theme" size="1" >
-           <html:options name="themes"/>
-       </html:select>
-    </div>
-    --%>
-    
     <br />
     <div class="control">
        <input type="submit" value='<fmt:message key="userSettings.save" />' /></input>



Mime
View raw message