BobsUI 3.0 Preview Page
Last updated at 6:50 pm UTC on 21 September 2008
BobsUI is one of Squeak's user interface development packages. It offers a more traditional set of widgets and window design methods found in other dialects of Smalltalk and other programming languages. It is both a development environment and runtime widgets.
BobsUI is based on Morphic, and runs on a Morphic desktop, alongside regular morphs. However, BobsUI has its own set of morphs. Ordinary morphs cannot be displayed on a BobsUI window, and BobsUI widget morphs do not run outside of a BobsUI window.
Goals of BobsUI
BobsUI is a GUI builder like dozens of others that exist in other languages. While the goal for all of these GUI builders is to build a functioning window, BobsUI has a slightly different approach to accomplish this. Because of these assumptions, developers will perform tasks differently, and in a different order, from what they are used to when using another GUI builder. For example, most GUI builders have as their primary focus a window object. Developers start with a window, add other components to the window, and save the window to a persistent format. BobsUI focuses on component development, and especially re-use of components. BobsUI also assumes that more than one window is being developed. Compared to other GUI builders, the first window a developer creates in BobsUI will take longer than most other GUI builders. However, because the focus is on re-use, each following window should take less time than the first.
A quick tour
BobsUI objects are divided into categories.
Elements - Elements are models at the smallest level. They are the primitive types of BobsUI, like columns in a database table description. A complete component is a pair of objects, a component, and an element model. Any non-visual aspects of the data is stored by the elements. Elements are not specific to BobsUI. They can be used anywhere in Squeak.
Business Models - Business Models are aggregate objects that can contain elements. These are the equivalent of database rows. Models are not unique to BobsUI. They can be used anywhere in Squeak.
Application Models - Application models are a bridge between the non-visual models and visual components. Application models contain both models and windows can access individual components, and provide elements to components.
Repository - The repository is the persistent storage mechanism for components, unique to BobsUI. All visual components are stored individually in the repository in XML. Composite components, such as windows, are built from references to these components.
Components - Components are visual widgets. At runtime, they are paired with an element for a model.
Windows - Windows are the primary component for displaying a GUI. They are paired with an application model as its model.
ExampleRolodex open for an example
b) World Menu -> open... -> bobs ui...