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

Reply via email to