# $Id: README 1 2004-08-20 11:17:52Z znek $

The Frontend Folder Hierarchy
=============================

http://myhost:myport/zidestore/so/donald/Calendar/

The SOPE root object is the "ZideStore" application object, so this is where
the URL path traversal usually starts:

- ZideStore
  +- check_id.wcap
  +- *.wcap
  +- <super>
  +- public             SxPublicFolder
  +- images             SxImageHandler
  +- freebusy           SxFreeBusy
  +- <userfolder>       SxUserFolder

So in practice processing will usually continue at "SxUserFolder" object which
is initialized by the username ('donald' in the URL above):

- SxUserFolder
  +- options            [SxOptionsForm]
  +- <personalFolderMap> 
     => class is determined from the 
  [AppleDAVAccess && xxx.ics]
  +- *.ics
     => looks up the "Calendar" folder and retry processing there
  +- IPM
     => if ZideLook:    [SxMsgRootFolder]
        else:           [SxUserFolder] (self)
  +- Public|public      [SxPublicFolder]
     => gets public folder by asking the "ZideStore" application object
  +- calendar.ics|ics
     => looks up the "Calendar" folder and retry processing there
  +- <super>

The IPM is used used for Outlook which needs a different folder for the 
account and for the actual root.


Folder Hierarchy
================

SxFolder
  SxMailFolder
    SxDraftsFolder
    SxMsgRootFolder
    SxOutboxFolder
    SxPublicFolder
    SxSentFolder
    SxTrashFolder
    SxUserFolder
  SxSearchFolder
  SxAppointmentFolder
  SxAddressFolder
    SxGroupsFolder
    SxEnterpriseFolder
    SxPersonFolder
      SxGroupFolder
  SxTaskFolder

SxObject
  SxAppointment
  SxICalendar
  SxAddress
    SxGroup
    SxEnterprise
    SxPerson
  SxTask

SxImageHandler
SxOptionsForm
SxFreeBusy
