Project Wonder 2.0

er.calendar
Class ERPublishCalendarPage

java.lang.Object
  extended bycom.webobjects.appserver.WOElement
      extended bycom.webobjects.appserver.WOComponent
          extended byer.calendar.ERPublishCalendarPage
All Implemented Interfaces:
Cloneable, NSKeyValueCoding, NSKeyValueCoding.ErrorHandling, NSKeyValueCodingAdditions, NSValidation, Serializable, WOActionResults

public class ERPublishCalendarPage
extends WOComponent

ERPublishCalendarPage is a WebObjects component for dynamically generated iCalendar documents.

The response created by ERPublishCalendarPage is an iCalendar document (.ics) containing the events added to ERPublishCalendarPage by the application (see addEvent). An iCalendar-aware application, such as Apple's iCal, can subscribe to such a calendar, provided that the page has a fixed URL (either is the "Main" page, or a direct action serves the page).

Events added to a ERPublishCalendarPage is objects of any class that implements the ERCalendarEvent interface. Existing classes (for example EOCustomObject subclasses), that correspond to calendar events, can easily be modified to implement ERCalendarEvent and thus be added directly to ERPublishCalendarPage. If existing classes does not directly correspond to calendar events, create events from business data (or some algorithm) using either the included ERSimpleEvent class, a subclass of ERSimpleEvent, or any other class implementing the ERCalendarEvent interface.

Version:
1.0, 2002-09-30
Author:
Johan Carlberg
See Also:
Serialized Form

Nested Class Summary
 
Nested classes inherited from class com.webobjects.appserver.WOComponent
WOComponent._EventLoggingEnabler, WOComponent.Event
 
Nested classes inherited from class com.webobjects.foundation.NSKeyValueCoding
NSKeyValueCoding._BooleanFieldBinding, NSKeyValueCoding._BooleanMethodBinding, NSKeyValueCoding._FieldBinding, NSKeyValueCoding._ForwardingBinding, NSKeyValueCoding._KeyBinding, NSKeyValueCoding._KeyBindingCreation, NSKeyValueCoding._MethodBinding, NSKeyValueCoding._NumberFieldBinding, NSKeyValueCoding._NumberMethodBinding, NSKeyValueCoding._ReflectionKeyBindingCreation, NSKeyValueCoding.DefaultImplementation, NSKeyValueCoding.ErrorHandling, NSKeyValueCoding.Null, NSKeyValueCoding.UnknownKeyException, NSKeyValueCoding.Utility, NSKeyValueCoding.ValueAccessor
 
Nested classes inherited from class com.webobjects.foundation.NSKeyValueCodingAdditions
NSKeyValueCodingAdditions.DefaultImplementation, NSKeyValueCodingAdditions.Utility
 
Nested classes inherited from class com.webobjects.foundation.NSValidation
NSValidation._MethodBinding, NSValidation._ValidationBinding, NSValidation.DefaultImplementation, NSValidation.Utility, NSValidation.ValidationException
 
Field Summary
protected  String calendarName
           
protected  String calendarTimeZone
           
protected  NSTimestampFormatter dateFormatter
           
protected  NSTimestampFormatter dateTimeFormatter
           
 ERCalendarEvent event
           
protected  NSMutableArray events
           
protected  NSTimestamp eventTimestamp
           
protected  int maxLineLength
           
protected  NSTimestampFormatter timeZoneFormatter
           
protected  NSTimestampFormatter utcDateTimeFormatter
           
 
Fields inherited from class com.webobjects.appserver.WOComponent
_Extension, _IsEventLoggingEnabled, _keyAssociations
 
Fields inherited from interface com.webobjects.foundation.NSKeyValueCoding
_CLASS, NullValue
 
Fields inherited from interface com.webobjects.foundation.NSKeyValueCoding.ErrorHandling
_CLASS
 
Fields inherited from interface com.webobjects.foundation.NSKeyValueCodingAdditions
_CLASS, _KeyPathSeparatorChar, KeyPathSeparator
 
Fields inherited from interface com.webobjects.foundation.NSValidation
_CLASS
 
Constructor Summary
ERPublishCalendarPage(WOContext context)
          Standard constructor for WOComponent subclasses.
 
Method Summary
 void addEvent(ERCalendarEvent event)
          Adds an event to the calendar.
 void addEventsFromArray(NSArray eventsArray)
          Adds an array of events to the calendar.
 void appendToResponse(WOResponse aResponse, WOContext aContext)
          Modifies content encoding to UTF8, and content type to text/calendar.
 String calendarName()
           
 String calendarTimeZone()
           
 NSTimestampFormatter dateFormatter()
           
 NSTimestampFormatter dateTimeFormatter()
           
 String escapedCalendarName()
           
 String escapedCalendarTimeZone()
           
 String escapedEventStatus()
           
 String escapedEventSummary()
           
 String escapedEventUniqueId()
           
protected  String escapedString(String string)
           
 String eventRepeatDayOfWeekString()
           
 String eventRepeatDaysOfMonthString()
           
 String eventRepeatFrequency()
           
 Number eventRepeatMonth()
           
 NSMutableArray events()
           
 NSTimestamp eventTimestamp()
           
protected  String foldLongLinesInString(String content)
          Folds lines that are longer than the maximum allowed 75 characters.
 void removeEvent(ERCalendarEvent event)
          Removes a previously added event from the calendar.
 void removeEventsInArray(NSArray eventsArray)
          Removes an array of previously added events from the calendar.
 void setCalendarName(String value)
          Sets the name of the calendar.
 void setCalendarTimeZone(String value)
          Sets the name of the time zone for the calendar.
 NSTimestampFormatter timeZoneFormatter()
           
 NSTimestampFormatter utcDateTimeFormatter()
           
 
Methods inherited from class com.webobjects.appserver.WOComponent
_associationWithName, _awakeInContext, _childTemplate, _componentDefinition, _componentUnroll, _isPage, _setContext, _setIsPage, _setParent, _setSubcomponent, _sleepInContext, _subcomponentForElementWithID, _templateNameForClass, _unroll, application, awake, baseURL, bindingKeys, canAccessFieldsDirectly, canGetValueForBinding, canSetValueForBinding, clone, context, debugString, descriptionForResponse, ensureAwakeInContext, frameworkName, generateResponse, handleQueryWithUnboundKey, handleTakeValueForUnboundKey, hasBinding, hasSession, invokeAction, isCachingEnabled, isEventLoggingEnabled, isStateless, logString, name, pageWithName, parent, path, pathURL, performParentAction, pullValuesFromParent, pushValuesToParent, reset, session, set_componentUnroll, set_unroll, setCachingEnabled, setValueForBinding, sleep, synchronizesVariablesWithBindings, takeValueForKey, takeValueForKeyPath, takeValuesFromRequest, template, templateWithHTMLString, templateWithName, toString, unableToSetNullForKey, validateTakeValueForKeyPath, validateValueForKey, validationFailedWithException, valueForBinding, valueForKey, valueForKeyPath
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

calendarName

protected String calendarName

calendarTimeZone

protected String calendarTimeZone

maxLineLength

protected final int maxLineLength
See Also:
Constant Field Values

events

protected NSMutableArray events

event

public ERCalendarEvent event

eventTimestamp

protected NSTimestamp eventTimestamp

dateTimeFormatter

protected NSTimestampFormatter dateTimeFormatter

dateFormatter

protected NSTimestampFormatter dateFormatter

utcDateTimeFormatter

protected NSTimestampFormatter utcDateTimeFormatter

timeZoneFormatter

protected NSTimestampFormatter timeZoneFormatter
Constructor Detail

ERPublishCalendarPage

public ERPublishCalendarPage(WOContext context)
Standard constructor for WOComponent subclasses.

Parameters:
context - context of a transaction
See Also:
WOComponent.pageWithName(String), WOApplication.pageWithName(String, WOContext)
Method Detail

appendToResponse

public void appendToResponse(WOResponse aResponse,
                             WOContext aContext)
Modifies content encoding to UTF8, and content type to text/calendar.

Parameters:
aResponse - the HTTP response that an application returns to a Web server to complete a cycle of the request-response loop
aContext - context of a transaction

addEvent

public void addEvent(ERCalendarEvent event)
Adds an event to the calendar.

Parameters:
event - the event to be included in the calendar
See Also:
ERCalendarEvent, addEventsFromArray(NSArray)

addEventsFromArray

public void addEventsFromArray(NSArray eventsArray)
Adds an array of events to the calendar.

Parameters:
eventsArray - the events to be included in the calendar
See Also:
ERCalendarEvent, addEvent(ERCalendarEvent)

removeEvent

public void removeEvent(ERCalendarEvent event)
Removes a previously added event from the calendar.

Parameters:
event - the event to be removed from the calendar
See Also:
ERCalendarEvent, removeEventsInArray(NSArray)

removeEventsInArray

public void removeEventsInArray(NSArray eventsArray)
Removes an array of previously added events from the calendar.

Parameters:
eventsArray - the events to be removed from the calendar
See Also:
ERCalendarEvent, removeEvent(ERCalendarEvent)

events

public NSMutableArray events()

calendarName

public String calendarName()
Returns:
name of the calendar
See Also:
setCalendarName(String)

escapedCalendarName

public String escapedCalendarName()
Returns:
name of the calendar, backslash escaped for inclusion in iCalendar document.
See Also:
calendarName

setCalendarName

public void setCalendarName(String value)
Sets the name of the calendar.

Parameters:
value - name of the calendar
See Also:
calendarName

calendarTimeZone

public String calendarTimeZone()
Returns:
originating time zone for the calendar (name of the system default time zone, if not changed by setCalendarTimeZone
See Also:
setCalendarTimeZone(String)

escapedCalendarTimeZone

public String escapedCalendarTimeZone()
Returns:
time zone name of the calendar, backslash escaped for inclusion in iCalendar document.
See Also:
calendarTimeZone

setCalendarTimeZone

public void setCalendarTimeZone(String value)
Sets the name of the time zone for the calendar.

Parameters:
value - name of the time zone
See Also:
calendarTimeZone

escapedEventStatus

public String escapedEventStatus()
Returns:
status of the current event, backslash escaped for inclusion in iCalendar document.
See Also:
ERCalendarEvent.status()

escapedEventSummary

public String escapedEventSummary()
Returns:
summary of the current event, backslash escaped for inclusion in iCalendar document.
See Also:
ERCalendarEvent.summary()

escapedEventUniqueId

public String escapedEventUniqueId()
Returns:
unique id of the current event, backslash escaped for inclusion in iCalendar document.
See Also:
ERCalendarEvent.uniqueId()

eventTimestamp

public NSTimestamp eventTimestamp()
Returns:
timestamp of the current event. This will always be the current time, as this is the time the event is converted to an iCalendar event.

eventRepeatFrequency

public String eventRepeatFrequency()
Returns:
the recurring rule frequency, as one of "YEARLY", "MONTHLY", "WEEKLY", "DAILY", "HOURLY", "MINUTELY", "SECONDLY" depending on the value returned by repeatFrequency.
See Also:
ERCalendarEvent.repeatFrequency()

eventRepeatMonth

public Number eventRepeatMonth()
Returns:
month number of a repeating event for use in the "BYMONTH" parameter.

eventRepeatDayOfWeekString

public String eventRepeatDayOfWeekString()
Returns:
day of week of a repeating event for use in the "BYDAY" parameter.

eventRepeatDaysOfMonthString

public String eventRepeatDaysOfMonthString()
Returns:
days of month of a repeating event for use in the "BYMONTHDAY" parameter.

dateTimeFormatter

public NSTimestampFormatter dateTimeFormatter()
Returns:
formatter for date/time. Will format date/times as "20021003T191234", specified in the local time zone.

dateFormatter

public NSTimestampFormatter dateFormatter()
Returns:
formatter for dates. Will format dates as "20021003", specified in the local time zone.

utcDateTimeFormatter

public NSTimestampFormatter utcDateTimeFormatter()
Returns:
formatter for date/time stamps. Will format date/times as "20021003T171234Z", specified in UTC (GMT).

timeZoneFormatter

public NSTimestampFormatter timeZoneFormatter()
Returns:
formatter for time zone. Will format date/times as only the name of the local time zone.

escapedString

protected String escapedString(String string)
Returns:
backslash escaped text string, with special characters replaced with its backslash escaped equivalent.

foldLongLinesInString

protected String foldLongLinesInString(String content)
Folds lines that are longer than the maximum allowed 75 characters.

Parameters:
content - unfolded iCalendar content
Returns:
folded content, with no line longer than 75 characters

Last updated: Do, Dez 9, 2004 • 12:46 PM CET

Copyright © 2002 – 2004 Project Wonder.