Where to start?

The whole framework is based on the class ComposableModel. This class provides all the methods needed to create and to compose user interfaces.

A Spec model requires three things:

  1. to subclass ComposableModel
  2. to implement initializeWidgets
  3. to implement a layout method on class side

The creation a user interface starts with the creation of a new subclass of ComposableModel. The sub widgets of the user interface are stored as instance variables.

ComposableModel subclass: #MyUserInterface
    instanceVariableNames: 'theList theButton'
    classVariableNames: ''
    poolDictionaries: ''
    category: 'MyExamples'

As you may have guessed, theList will be a list widget and theButton will be a button widget. The instanciation and the customization of the sub widgets is done in the method initializeWidgets.