[Chandler-dev] It's 'about' time to deal with redirections...
bkirsch at osafoundation.org
Tue Oct 31 17:05:48 PST 2006
Sounds good. Glad to see that we are on the right track in regards to
On Oct 31, 2006, at 2:45 PM, Grant Baillie wrote:
> Hi, Brian
> I think Bryan's point is that we remove displayName from Item, as
> well as the repository API (getItemDisplayName()) that uses it.
> You're right that having a generic and occasionally localized
> attribute like that doesn't work.
> ContentItem will have displayName, but it's the user-settable
> attribute (like email subject, etc) that you are calling 'title'.
> Bryan wants to call it 'displayName', because that will fit well
> with 'displayDate' and 'displayWho' : they're all the values that
> are displayed in the summary table.
> On 31 Oct, 2006, at 16:35, Brian Kirsch wrote:
>> Hi Bryan,
>> There has been much talk over the .7 release of removing
>> displayName all together.
>> The ambigious nature of the displayName makes it less than ideal
>> for localization.
>> Since all items have a displayName attribute, it becomes difficult
>> to determine which displayNames appear in the UI and thus need
>> John Anderson was looking in to removing all displayNames from the
>> Chandler code base
>> at one point.
>> The proposal was to use an alternate attribute such as title for
>> localized displayable values.
>> I have been off working on Mail and have not given the displayName
>> issue much thought as of late.
>> Perhaps now is a good time to re-raise the discussion.
>> On Oct 31, 2006, at 2:16 PM, Bryan Stearns wrote:
>>> The time has come to deal with a couple of issues around
>>> attribute redirection:
>>> - We need to index 'who' and 'about' attributes for the
>>> dashboard, but (a) the repository can't index an attribute that's
>>> the _source_ of a redirection (the index gets out-of-date really
>>> quickly, leading to several of my alpha5 bugs), and (b) for
>>> 'who', a static redirection isn't good enough because the 'who'
>>> value needs to be determined on a per-item (not per-subclass or
>>> per-annotation) basis.
>>> - A related issue is that we're trying to get rid of the
>>> dependence on the repository's generic 'displayName' mechanism on
>>> Item; currently, 'about' redirects to 'displayName' by default
>>> (in ContentItem), but is overridden in several Item subclasses
>>> and Annotation classes.
>>> We currently have a mechanism for the Date column that works like
>>> - ContentItem has a 'relevantDate' attribute that is indexed and
>>> displayed in the Date column of the dashboard view. There's also
>>> a 'relevantDateSource' attribute that's currently used to display
>>> the source of the selected item's Date value (though it's
>>> currently not localized).
>>> - Items (either ContentItem, its subclasses, or annotations on
>>> ContentItem) that want to provide a relevant date do so by
>>> implementing schema.observers that call
>>> ContentItem.updateRelevantDate() when a related date attribute
>>> - ContentItem.updateRelevantDate() calls AddRelevantDates() on
>>> itself any stamping annotations, and the Remindable annotation,
>>> and picks one to update 'relevantDate'/'relevantDateSource'.
>>> I'm proposing that I do something similar for 'who', though I now
>>> think that 'relevantDate'/'relevantDateSource' would be better
>>> named 'displayDate' and 'displayDateSource'; I'd do that, and
>>> make the 'who' fields be 'displayWho'/'displayWhoSource'.
>>> We don't appear to need the same dynamic-ness for 'about' as
>>> well, so at least for now, I'd get rid of the redirections from
>>> 'about' to 'displayName': we'd index 'displayName' instead of
>>> 'about'. Any ContentItem subclasses or Annotations that wanted to
>>> have their own name for the displayName could use a redirectTo as
>>> they do now; however, anyone who redirected 'about' to some other
>>> field would need that redirection replaced by one to
>>> 'displayName' -- for example, the Amazon parcel has a ProductName
>>> attribute and used to redirect 'about' to it; now, it would have
>>> a redirection from 'ProductName' to 'displayName' instead.
>>> If we need to show alternative names for the field in the UI,
>>> such as 'Subject' if it's an email, and 'Product Name' if it's an
>>> Amazon item, a separate mechanism will be built to look up a
>>> localized name at display time.
>>> To allow the repository to stop supporting a generic
>>> 'displayName' mechanism, we'd declare a concrete schema.Text
>>> 'displayName' attribute on ContentItem.
>>> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
>>> Open Source Applications Foundation "chandler-dev" mailing list
>> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
>> Open Source Applications Foundation "chandler-dev" mailing list
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> Open Source Applications Foundation "chandler-dev" mailing list
More information about the chandler-dev