Squeak
  links to this page:    
View this PageEdit this PageUploads to this PageHistory of this PageTop of the SwikiRecent ChangesSearch the SwikiHelp Guide
SystemBrowser
Last updated at 7:53 pm UTC on 30 April 2018
This is the AppRegistry class for class browsing

 SystemBrowser default openBrowser

In the top left pane it shows the class categories.

https://tech.labs.oliverwyman.com/blog/2011/03/29/the-anatomy-of-a-browser/
The Model uses ToolBuilder to abstract the particulars of the UI. In particular, ToolBuilder defines views in a fairly declarative manner:
buildMessageListWith: builder
    | listSpec |
    listSpec := builder pluggableListSpec new.
    listSpec
        model: self;
        list: #messageList;
        getIndex: #messageListIndex;
        setIndex: #messageListIndex:;
        menu: #messageListMenu:shifted:;
        keyPress: #messageListKey:from:.
    Preferences browseWithDragNDrop
        ifTrue:[listSpec dragItem: #dragFromMessageList:].
    ^listSpec

You can see how ToolBuilder tells the UI how to call into the Model. Given a spec, ToolBuilder will then construct the View for you in whichever UI framework you use. (As usual, a lot more time goes into writing the framework than into writing documentation. The best place to see examples is in your Squeak image. A good place to start is looking at implementors of #buildWith:.