[Chandler-dev] What every parcel writer should know about how to add collections to the sidebar

John Anderson john at osafoundation.org
Sun Apr 9 11:13:16 PDT 2006


Awhile ago I updated ModifyCollectionEvent so it could be used by 
parcels to add a collection to the sidebar. Since then, it's become 
clear that most uses of ModifyCollectionEvent are to add items to the 
sidebar. So I've renamed it AddToSidebarEvent and updated the default 
values to make it easier to use. I also incorporated Alec's suggestion 
to allow a user-defined function to be used to create a new collection.

Here's a more detailed description of the new event taken from the code:

    Adds items to the sidebar. The items may be either a collection or tree
    of blocks.   
   
    You can add an item to the sidebar in two different ways: Either add a
    reference to a template item to the C{items} attribute and a copy of
    the template will be added when the event is dispatched. Or implement
    the C{onNewItem} method on your subclass of AddToSidebarEvent and it
    will be called to create the item added to the sidebar. If your method
    returns None then nothing will be added to the sidebar.
   
    By default the item will be selected and it's displayName will be
    disambiguated, i.e. a "-NN" suffix added to make it unique.
   
    By setting the preferredKind UserCollection attribute of your 
collection,
    it will be displayed in a particular application area as follows:
   
    If preferredKind attribute is absent (the default) then the collection
    will be the current application area.
   
    If preferredKind attribute is None the collection will be viewed in All
   
    if preferredKind attribute is the kind associated with another 
application
    area it will be displayed in that area. For example if preferredKind is
   
    schema.ns('osaf.pim.calendar.Calendar', 
theView).CalendarEventMixin.getKind (theView)
   
    it will be displayed in the calendar area.
   
    For more advanced options see AddToViewableCollectionEvent.

John


More information about the chandler-dev mailing list