[Chandler-dev] It's 'about' time to deal with redirections...
Grant Baillie
grant at osafoundation.org
Tue Oct 31 16:45:48 PST 2006
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.
--Grant
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
> translation.
>
> 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.
>
> -Brian
>
> 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
>> this:
>> - 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
>> changes.
>> - 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.
>>
>> Comments?
>>
>> Thanks,
>> ...Bryan
>>
>> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
>>
>> Open Source Applications Foundation "chandler-dev" mailing list
>> http://lists.osafoundation.org/mailman/listinfo/chandler-dev
>
> _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
>
> Open Source Applications Foundation "chandler-dev" mailing list
> http://lists.osafoundation.org/mailman/listinfo/chandler-dev
More information about the chandler-dev
mailing list