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 4:58 pm UTC on 5 March 2019
This is the AppRegistry class for class browsing

 SystemBrowser default openBrowser

In the top left pane it shows the class categories.

The system browser is the classic Browser in Squeak.

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:.