From: <ki...@us...> - 2009-03-31 20:17:43
|
Revision: 9138 http://wonder.svn.sourceforge.net/wonder/?rev=9138&view=rev Author: kiddyr Date: 2009-03-31 20:17:32 +0000 (Tue, 31 Mar 2009) Log Message: ----------- Changes to add a page for displaying time zone information. Select a time zone and the resulting page will show various things, such a the NSTimeZone and the java.util.TimeZone and the current time in the picked time zone. Modified Paths: -------------- trunk/Wonder/Applications/TickTockMan/Components/TimeZonesPage.wo/TimeZonesPage.html trunk/Wonder/Applications/TickTockMan/Sources/er/ticktock/ui/TimeZonesPage.java Added Paths: ----------- trunk/Wonder/Applications/TickTockMan/Components/TimeDisplayNow.api trunk/Wonder/Applications/TickTockMan/Components/TimeDisplayNow.wo/ trunk/Wonder/Applications/TickTockMan/Components/TimeDisplayNow.wo/TimeDisplayNow.html trunk/Wonder/Applications/TickTockMan/Components/TimeDisplayNow.wo/TimeDisplayNow.wod trunk/Wonder/Applications/TickTockMan/Components/TimeDisplayNow.wo/TimeDisplayNow.woo trunk/Wonder/Applications/TickTockMan/Sources/er/ticktock/ui/TimeDisplayNow.java Added: trunk/Wonder/Applications/TickTockMan/Components/TimeDisplayNow.api =================================================================== --- trunk/Wonder/Applications/TickTockMan/Components/TimeDisplayNow.api (rev 0) +++ trunk/Wonder/Applications/TickTockMan/Components/TimeDisplayNow.api 2009-03-31 20:17:32 UTC (rev 9138) @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<wodefinitions> + <wo wocomponentcontent="false" class="TimeDisplayNow.java"> + + </wo> +</wodefinitions> \ No newline at end of file Added: trunk/Wonder/Applications/TickTockMan/Components/TimeDisplayNow.wo/TimeDisplayNow.html =================================================================== --- trunk/Wonder/Applications/TickTockMan/Components/TimeDisplayNow.wo/TimeDisplayNow.html (rev 0) +++ trunk/Wonder/Applications/TickTockMan/Components/TimeDisplayNow.wo/TimeDisplayNow.html 2009-03-31 20:17:32 UTC (rev 9138) @@ -0,0 +1,55 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" + "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> + +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> +<head> + <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> + <title>TickTockMan</title> +</head> +<body> + +<p> +<strong>Desired TimeZone ID:</strong> - "<wo:str value="$timeZoneID" /> +</p> + +<p> +<strong>System TimeZone:</strong> - "<wo:str value="$systemTimeZone" />"<br/> +This is the current time zone for the computer that is running this data application. The time zone object has been sent the +toString method and you are seeing the result. +</p> + +<p> +<strong>Current Timestamp:</strong> - "<wo:str value="$currentTimestamp" />"<br/> +This is the current time. The timestamp object has been sent the toString method and you are seeing the result. No matter where +the computer serving this application is at, the toString method displays the timestamp in GMT. Displaying this time, without +the time zone visible, will lead users to be confused. +</p> + + +<p> +<strong>Desired TimeZone - WO:</strong> - "<wo:str value="$desiredNSTimeZone" />"<br/> +This is the time zone that you selected in the previous page. The instance of the com.webobjects.foundation.NSTimeZone class was +created from a call to the static getTimeZoneWithName method with the timezone id as a parameter. Note that if one gets the TimeZone +instance, gets the name from the getDisplayName method from that, and then uses the name to call the getTimeZoneWithName, the call +will return null. It would appear that the getTimeZoneWithName method is mis-named. +</p> + +<p> +<strong>Desired TimeZone - JDK:</strong> - "<wo:str value="$desiredTimeZone" />"<br/> +This is the time zone that you selected in the previous page. The instance of the java.util.TimeZone class was created from a call +to the static getTimeZone method with the timezone id as a parameter. +</p> + +<p> +<strong>Desired Timestamp in Desired TimeZone:</strong> - "<wo:str value="$desiredTimestampInDesiredTimeZone" />"<br/> +This is the string representation of the time in the desired time zone. This is obtained by creating a NSTimestampFormatter object, +setting the time zone on that to the desired time zone, and then using the formatter to create a StringBuffer from the timestamp +object. The fact that the NSTimestampFormatter is completely deprecated is unfortunate, but it works. +</p> + +<p> +<wo:link pageName="TimeZonesPage">Back to Time Zone List</wo:link> - <wo:link pageName="Main">Back to Main Page</wo:link> +</p> + +</body> +</html> Added: trunk/Wonder/Applications/TickTockMan/Components/TimeDisplayNow.wo/TimeDisplayNow.woo =================================================================== --- trunk/Wonder/Applications/TickTockMan/Components/TimeDisplayNow.wo/TimeDisplayNow.woo (rev 0) +++ trunk/Wonder/Applications/TickTockMan/Components/TimeDisplayNow.wo/TimeDisplayNow.woo 2009-03-31 20:17:32 UTC (rev 9138) @@ -0,0 +1,4 @@ +{ + "WebObjects Release" = "WebObjects 5.0"; + encoding = "UTF-8"; +} \ No newline at end of file Modified: trunk/Wonder/Applications/TickTockMan/Components/TimeZonesPage.wo/TimeZonesPage.html =================================================================== --- trunk/Wonder/Applications/TickTockMan/Components/TimeZonesPage.wo/TimeZonesPage.html 2009-03-31 18:13:16 UTC (rev 9137) +++ trunk/Wonder/Applications/TickTockMan/Components/TimeZonesPage.wo/TimeZonesPage.html 2009-03-31 20:17:32 UTC (rev 9138) @@ -20,7 +20,7 @@ <wo:loop list="$allTimeZones" item="$timeZoneId"> <tr> - <td><wo:str value="$timeZoneId" /></td> + <td><wo:link action="$timeDisplayNow"><wo:str value="$timeZoneId" /></wo:link></td> <td><wo:str value="$tzDisplayName" /></td> <td><wo:str value="$tzDSTSavings" numberformat="0" /></td> <td><wo:str value="$tzRawOffset" numberformat="0" /></td> Added: trunk/Wonder/Applications/TickTockMan/Sources/er/ticktock/ui/TimeDisplayNow.java =================================================================== --- trunk/Wonder/Applications/TickTockMan/Sources/er/ticktock/ui/TimeDisplayNow.java (rev 0) +++ trunk/Wonder/Applications/TickTockMan/Sources/er/ticktock/ui/TimeDisplayNow.java 2009-03-31 20:17:32 UTC (rev 9138) @@ -0,0 +1,45 @@ +package er.ticktock.ui; + +import java.text.FieldPosition; +import java.util.TimeZone; + +import com.webobjects.appserver.WOComponent; +import com.webobjects.appserver.WOContext; +import com.webobjects.foundation.NSTimeZone; +import com.webobjects.foundation.NSTimestamp; +import com.webobjects.foundation.NSTimestampFormatter; + +public class TimeDisplayNow extends WOComponent { + + public TimeDisplayNow(WOContext context) { + super(context); + } + + public String timeZoneID; + + public NSTimeZone systemTimeZone() { return NSTimeZone.systemTimeZone(); } + + public NSTimeZone desiredNSTimeZone() { + return NSTimeZone.timeZoneWithName(timeZoneID, false); + } + + public TimeZone desiredTimeZone() { return TimeZone.getTimeZone(timeZoneID); } + + NSTimestamp _currentTimestamp; + + public NSTimestamp currentTimestamp() { + if (_currentTimestamp == null) + _currentTimestamp = new NSTimestamp(); + return _currentTimestamp; + } + + public NSTimestamp desiredTimestamp; + + public String desiredTimestampInDesiredTimeZone() { + NSTimestampFormatter formatter = new NSTimestampFormatter(); + NSTimeZone tz = NSTimeZone.timeZoneWithName(timeZoneID, false); + formatter.setDefaultFormatTimeZone(tz); + StringBuffer buffer = formatter.format(_currentTimestamp, new StringBuffer(), new FieldPosition(0)); + return buffer.toString(); + } +} \ No newline at end of file Modified: trunk/Wonder/Applications/TickTockMan/Sources/er/ticktock/ui/TimeZonesPage.java =================================================================== --- trunk/Wonder/Applications/TickTockMan/Sources/er/ticktock/ui/TimeZonesPage.java 2009-03-31 18:13:16 UTC (rev 9137) +++ trunk/Wonder/Applications/TickTockMan/Sources/er/ticktock/ui/TimeZonesPage.java 2009-03-31 20:17:32 UTC (rev 9138) @@ -92,4 +92,10 @@ public Integer tzRawOffset() { return (Integer)((NSDictionary)zones.valueForKey(timeZoneId)).valueForKey(OFF_KEY); } + + public WOComponent timeDisplayNow() { + WOComponent nextPage = this.pageWithName("TimeDisplayNow"); + nextPage.takeValueForKey(timeZoneId, "timeZoneID"); + return nextPage; + } } \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |