[Dev] Item Collection Spec 0.2
John Anderson
john at osafoundation.org
Thu Jun 23 14:38:51 PDT 2005
Doesn't Andi and Ted's set idea, addresses the notion of most of these
issues?
Alec Flett wrote:
> One general concern that I'm having is that the ItemCollection spec
> seems to be very focused on rules and setting attributes on items as a
> way of including them in collections... Chandler, as an end user
> application, deals primarily with ItemCollections of arbitrary items,
> created by the user, with no particular "rule" binding them together.
> i.e. a user creates an item, or drags it from one collection to
> another. There's no "rule" per say on most collections - we need to be
> thinking more about the use cases of inclusions, not rules.
>
> The only collections focused primarily on rules are "All" and maybe
> this "Mine/Not-Mine" bit. Yes, you can imagine others, but its not the
> common case.
>
> Ted Leung wrote:
>
>> Mine/Not Mine is a feature of the sidebar. See section 5 of
>> <http://svn.osafoundation.org/docs/trunk/docs/specs/rel0_6/Sidebar-0.6.html>
>>
>
> (cool, so it might be useful to at least x-reference & link this in
> the IC spec so readers understand its purpose)
>
>> When you filter, you apply a boolean condition to each element of a
>> set, " retaining" those items which match the collection. You
>> filter a set by creating a filtered set, just like creating a union
>> or intersection.
>
> except that the filter seems to be applied after the inclusions has
> been processed, whereas rules seem to be applied before the inclusions
> are processed. Do I have that right? This has implications, see below..
>
>> That filtered set is then the thing that you interact with. You
>> still have access to the set that the filtered set is based on. The
>> filtered set is dependent on the original set, and changes to the
>> original set will cause the contents of the filtered set to update.
>> If the app wants to turn off the filter, it can go back to
>> referencing the original set.
>>
> Right, I guess the use case you describe conflicts with how Chandler
> uses filters today, and I'm not sure which model is the expected one
> for Chandler going forward. Today, Chandler creates a sort of "child"
> collection which is a filtered version of an existing collection. You
> can get to the original collection via the .source attribute on the
> filtered collection. How should this be implemented going forward?
>
> When you say you're "interacting" with the filtered set, I'm trying to
> understand the actual implications of each operation (add/remove/etc)
> when the filter itself is added and removed.
>
> Here's a real world example: if a ItemCollection has a "Task" filter
> on it, but I call ic.add(event) where event is not a task, what is the
> result? Does the add() fail, or does the event get added to
> inclusions, but not actually show up as a member of the collection
> since its not a task?
>
> Or what if I .remove() an item that's in inclusions, but doesn't match
> the filter?
>
>
>>
>>> What are the implications when adding new items such as when you
>>> create a new item and put it in the collection? If it doesn't match
>>> the filter (i.e. adding a CalendarEvent to an ItemCollection
>>> filtered on Tasks) does it get added to "inclusions"? does it
>>> appear to be in the filtered collection or not?
>>
>> If you want to add an item which doesn't match the rule then you
>> will need to add it to inclusions explicitly.
>
> do you mean via .add() or via some other mechanism? It sounds like
> filters trump inclusions, and inclusions trump rules.
>
>> If you have a collection based on a rule/filter then creating items
>> that match the rule is sufficient to get them into the collection.
>> Most of the time, you shouldn't need to worry about where to add
>> stuff, you should let the rules and extents do that work for you.
>
> This is what I'm talking about : /Most of the time/, the app does care
> where to add the stuff. /Most of the time/, the user is creating or
> deleting an event in a specific collection, not writing rules.
>
>> If you want to associate metadata with ItemCollection then we should
>> have an Item Collection kind where that data can live. If you add
>> the metadata as attribute of the ItemCollection kind, then the usual
>> sharing mechanisms (clouds, etc) apply. I'd be interested in
>> seeing your ideas for how to do this. I've been focusing mostly on
>> straightening out the basic semantics, and I haven't gotten any
>> other feedback about metadata.
>>
> Its not that I want to associate specific metadata with
> ItemCollection. Its that we need a generic way to associate ANY meta
> data with any specific item collection.
>
> More specifically, ItemCollections should not have a "calendarColor"
> attribute because that's calendar-specific.
>
> Alec
>
>> Ted
>>
>
>------------------------------------------------------------------------
>
>_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
>
>Open Source Applications Foundation "Dev" mailing list
>http://lists.osafoundation.org/mailman/listinfo/dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osafoundation.org/pipermail/dev/attachments/20050623/8ed43e04/attachment.html
More information about the Dev
mailing list