This morning, I checked in a bunch of changes that add support for kind
extents at the data model level. A kind extent is defined as the set of all
items of a given kind, recursive to sub-kinds or not.
By default, a kind extent doesn't do much but there are several devices in the
data model and Chandler code that leverage kind extents today to offer the
following services:
- If all you're interested in is knowing when an item of a given kind is
created, deleted, or stamped (ie, its kind changed), then you should use
the new item.watchKind(kind, methodName) API that replaces the now
defunct 'schema' monitor.
'methodName' should be a method of 'item' with this signature:
def methodName(op, kind, other):
where 'op' is either 'add' or 'remove' which means that 'other'
became an instance of that 'kind' or a sub-kind thereof or is about
to no longer be an instance of that 'kind' or a sub-kind thereof.
- If all you're interested in is the above + have these notifications
filtered or combined in some way, then use a KindSet and combine it with
other abstract sets to suit your needs.
- If what you're interested in is the above + have these notifications
participate in the Collection framework from parcels.osaf.pim.collections
and be notified - when the UI is active - of changes to attributes of items
of a given kind, then use a KindCollection, combining it, maybe, with other
collections from that framework.
Andi..
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Open Source Applications Foundation "Dev" mailing list
http://lists.osafoundation.org/mailman/listinfo/dev