[up] [next]


The New SystemBrowser provides all functionality of the previous (and still available) SystemBrowser but offers a much improved user experience. If you are new to the ST/X tools, you may want to read the old SystemBrowser's documentation for additional information on the meaning of some operations.

Additional functionality provided by the new SystemBrowser includes:

With the new SystemBrowser, we have concentrated on making the tool as useful as possible; a lot of work has been put in offering intelligent and useful default values whenever user information is required - for example, when asking for a search string, the current selection, previous searches etc. all are considered as initial answers in the dialog. Also, when moving methods to other classes or packages, the previous choices are typically remembered and offered first.

As the NewSystemBrowser is still being enhanced, and new features are added, the following pictures may be outdated and/or the menu description be incomplete.

When started, the new System Browser displays 6 major subviews and two toggle/filter panes; these are:

[Fig: newSystemBrowser hardcopy]
the actual appearance of the browser depends on the viewStyle setting; the picture above was taken with the "motif-style" in effect. Also, newer versions of the browser may look different.

  1. Organization List (category / namespace / package)
  2. Class List (flat or hierarchical)
  3. Variable List
  4. Class/Instance Toggle
  5. Method Category (aka Protocol-) List
  6. Method (aka selector-) List
  7. Namespace Filter
  8. Code View

This default appearance is similar to the old browser's appearance; however, the popup menus as available in the various list views are duplicated in the browser's main menu panel.


By default, classes are grouped by their class category (as was the case with the old browser). In this mode, all classes from all namespaces and all projects are shown together, grouped only by their class category.
This aspect can be changed via the view-menu:
[Fig: view menu hardcopy]

You can change the grouping, by selecting one of the other items in the view-menu.

A useful grouping is the Project view:
[Fig: view menu hardcopy]
This enables you to organize your own projects into different packages.

For examples on typical uses of the browser, see the last section(s) of this document.

Class vs. Instance

The browser can operate on both a class and its metaclass (i.e. the classes class). Smalltalk beginners should keep in mind, that classes are objects like anything else in the system. Thus the behavior of a class is described by another class - the so called "metaclass".
The set of messages understood by instances of a class is called "instance protocol", while the set of messages understood by the class is called the "class protocol".
Just like instances inherit protocol from the superclass(es), class protocol is inherited from the metaclass's superclass(es).

To switch, there are two toggle buttons named "class" and "instance". Selecting "instance" (which is the default) makes your changes affect the class, and therefore the set of messages which are understood by instances; selecting "class" lets you change the metaclass, and therefore the set of messages which are understood by the class (typically instance creation and initialization messages).

If you are not too familiar with this concept, and you have a Java or C# background, think of the class protocol roughly as "static functions" of the class. However, in contrast to Java, the normal inheritance- and redefinition rules apply in Smalltalk. In other words: in Smalltalk, it is possible and quite common to make use of inherited class protocol or tp redefine it in a subclass.


The browser's toolbar provides items for the most heavily used functions:
[Image: toolBar] If there are any classes selected, which inherit from TestCase, two additional icons are shown:
[Image: toolBar]

Pseudo Categories / Pseudo Protocols

The class category list contains a number of additional pseudo categories: The method category list adds the following pseudo protocols:

Icons and Indicators

By default, the NewSystemBrowser uses icons and other emphasis to highlight special attributes of classes and methods; this can be disabled by clearing the appropriate flags in the browser's View menu.

General indicators after list items are:

ClassType indicators are: Package Description Classes are marked with one of the following indicators: MethodType indicators are: In addition to the above, trace- and breakpoints are indicated via icons:
These indicators are: Colors are used to mark other attributes: If the OO-metrics package is loaded, and the complexity display is enabled in the browser's "View"-menu, methods are analyzed for their complexity, and an up-to-date feedback is given via little additional (smiley-) icons beside the methods' names. The OO-metrics package is not part of the standard (free) delivery.
These complexity indicators are:

Double Clicking

Double Clicking on a Class Category

A double click on a class category will add a new buffer for browsing classes in that category.

Double Clicking on a NameSpace

A double click on a namespace will add a new buffer for browsing classes in that namespace.
Initially, the namespace list is hidden - it can be made visible, by toggling the 'namespace' item in the 'View' menu.

Double Clicking on a Project

A double click on a project will add a new buffer for browsing classes in that project.
Initially, the project list is hidden - it can be made visible, by toggling the 'project' item in the 'View' menu.

Double Clicking on a Class

Double Clicking on a Variable

Double clicking on a variable (in the variable-list) will show all methods which refer to that variable (see also: variable search functions).

Double Clicking on a Method

For selectors, which are marked as windowSpec, menuSpec or imageSpec methods, a corresponding editor application is opened on double-click.
That means, that a GUI-Painter is opened when you double-click a windowSpec-method, an imageEditor is opened when you double-click an imageSpec-method and so on.

Double clicking on a method with a break- or trace-point will remove the break- or trace-point.

Double clicking on any other method will look if the method redefines an inherited method or is redefined by an inherited method, and will add an inheritance browser page if so.

Next: Menu Functions

[stx logo] Copyright © 2000 eXept Software AG, all rights reserved


Doc $Revision: 1.59 $ $Date: 2018/05/09 14:04:29 $