[Cuis-dev] Refactoring proposal for Browser>>messageCategoryList and Browser>>messageList

Juan Vuletich juan at cuis.st
Thu Sep 24 08:25:49 PDT 2026


Hi Facu,

Wow. This is amazing. Thank you!

Updates 1..4 are now at GitHub. Now we have the pieces to start thinking 
what kind of decorations make sense in our browsers. I still have your 
change set 10.haveFun from April, and now your 5.haveFun. We need to do 
something based on them!

Again, Thank You.

Cheers,

On 2026-09-22 8:01 PM, Facundo Javier Gelatti via Cuis-dev wrote:
> Hello!
>
> This is a follow-up to the changes I sent in April ("Refactoring 
> proposal for Browser>>classList"). The goal of these changes is to 
> improve the separation between content and presentation in the 
> browser. Last time I worked on the class list, and now the attached 
> changesets apply the same idea to the message categories and methods 
> lists, by giving each list a single extension point where the 
> presentation of their items can be defined.
>
> I kept the same conventions of the previous changes, where the 
> messages for the class list were #classList (returns a collection of 
> classes), #classItems (returns labels), and #labelForClass: (returns 
> the label for each class).
> In this case we have something similar: 
> #messageCategoryList/#messageList return symbols, 
> #messageCategoryItems/#messageItems return labels, and 
> #labelForCategory:/#labelForSelector: return the label specific for 
> one category/selector.
>
> To help during review, I split the work into small sequential change 
> sets, each of which also migrates the windows already open in the 
> image. Here's a summary of the changes:
>
>  1. /implement_labelForCategory_for_browser/: the extension point for
>     the message categories list.
>  2. /implement_labelForSelector_for_browser/: the extension point for
>     the methods list. The coloring that CodeFileBrowser used to do
>     inside #messageList moves to its #labelForSelector: override, so
>     the #messageList override is no longer needed. I also adjusted
>     #categorizeUnderCategoryAt:selector: because drag and drop now
>     passes it an item, not a selector.
>  3. /use_labelForSelector_from_ChangeSorter/: the ChangeSorter method
>     list is now a regular PluggableListMorph over #messageItems, so
>     the index methods now translate between the index and
>     #currentSelector.
>  4. /implement_labelForSelector_for_MethodSet/: the same extension
>     point for MethodSet. I also included a small cleanup of a
>     redundant assignment in MessageNames>>messageList.
>  5. /haveFun/: this last one is not meant for integration, but it's
>     useful to test the changes. It overrides the three label methods
>     to show icons and colors in all of the lists, to demonstrate what
>     the extension points make possible.
>
>
> Cheers!
> Facu
>
-- 
Juan Vuletich
www.cuis.st
github.com/jvuletich
researchgate.net/profile/Juan-Vuletich
independent.academia.edu/JuanVuletich
patents.justia.com/inventor/juan-manuel-vuletich
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.cuis.st/mailman/archives/cuis-dev/attachments/20260924/14692b19/attachment.htm>


More information about the Cuis-dev mailing list