Alec Flett wrote:
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
I think it might be slightly more accurate to rephrase this "is
contained in the sidebar collection" In theory any UI could display the
sidebar collection, however, today only the sidebar block's contents is
the sidebar collection. We should never access the sidebar collection by
looking up the sidebar block.
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
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Open Source Applications Foundation "Design" mailing list
http://lists.osafoundation.org/mailman/listinfo/design
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Open Source Applications Foundation "Dev" mailing list
http://lists.osafoundation.org/mailman/listinfo/dev