[Design] Distinguishing a collection as a "user collection"

Alec Flett alecf at osafoundation.org
Thu Mar 2 09:19:32 PST 2006


Andi just checked in the ability to have bidirectional references 
between ContentItems and InclusionExclusionCollections - this is really 
great news. This means we can start to ask, what exactly is a "User 
collection"?

We've been delaying the decision about what a 'user collection' really 
is, from a technical standpoint... but I think that in order to figure 
that out, we need to figure out what it means from the user's 
perspective. We need to handle this because internally we make ample use 
of Collections for different technical reasons. At the moment the domain 
model treats them all the same (for instance they all have a 'color' 
attribute) - and then it makes it really hard to fill in the "Appears 
In:" line in the detail view. We have to actually query the sidebar to 
see what "user collections" exist.. yuck! Further, we want bidirectional 
references between items and their "user collections" so that users and 
parcel writers can make use of the value of "Appears In" without writing 
duplicate code.

 From a user's perspective, it seems like a User Collection both:
1) appears in the sidebar
2) is listed in the detail view under "Appears In:"

Now one of the issues is that going forward, its not clear if both of 
these rules will continue to hold. For instance:
* if I "tag" something with "scooby" and later drag the "scooby" tag 
into the sidebar, should the "Appears In:" list 'scooby'?
* Are 'Library' collections included - i.e. is "Appears In" supposed to 
include "My Items" when appropriate? What about other "library" 
collections like Trash, Inbox, etc...
* And what about Spheres? Do they affect this in any way?
* What about rule-based collections - do they show up in "Appears In"?
* Later, if there is a UI to present a list of collections to the user 
(i.e. maybe some sharing UI, or a parcel writer wants to let the user 
choose a collection in a dialog box or something) - how do they choose 
which collections to display?

Some ideas that have floated around that define a user collection, from 
a technical perspective:
a) anything that appears in the sidebar (more or less what we do today)
b) anything with some well-known attribute (i.e. '.isUserCollection' or 
something)
c) a particular Kind of collection - i.e. our 
InclusionExclusionCollection is pretty chandler-specific, behaves well 
in the sidebar, and isn't really useful anywhere else.

At the moment, Andi has hooked up the machinery to IECollection - 
implementing "c" would be as simple as renaming 
InclusionExclusionCollection to UserCollection. However this doesn't 
address some of the open issues above.

Thoughts? Other ideas on what defines a user collection to the user?

Alec



More information about the Design mailing list