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
searchstring, 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 incorrect and/or the menu description be incomplete.
When started, the new System Browser displays 6 major subviews and two toggle/filter panes; these are:
(the actual appearance of the Browser depends on the viewStyle setting; the picture above was taken with the "motif-style" in effect)
This default appearance is similar to the old browsers appearance; however, the popUpMenus as available in the various list views are duplicated in the browsers 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:
Viewmenu
You can change the grouping, by selecting one of the other items in the view-menu;
the most useful grouping is the Project view:
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.
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 affects the set of messages which are understood by instances;
selecting "class" lets you change the metaclass, and therefore affects 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, try the
ClassType indicators are:
MethodType indicators are:
Colors are used to mark other attributes:
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.
"hierarchy"
function of the class-lists popupMenu - especially take a careful look at this
hierarchy when looking at the class protocol.
Icons
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 browsers View menu.
A visual application (i.e. a subclass of ApplicationModel). These can be started directly from within
the browser, by double-clicking on the class.
A non-GUI program.
A non-visual application. The classes' 'main'-method can be invoked directly from within
the browser, by double-clicking on the class.
(To be honest: this has only been added for C/Java freaks asking: "where is the main ?".)
A container class (i.e. subclass of Collection).
A widget class (i.e. subclass of View).
An exception class (subclass of Exception).
An error class (subclass of Error).
A testCase - the icon reflects the result of the last test-run.
Method overwrites a corresponding superclass implementation.
Method is redefined in a subclass.
Method is a windowSpec method (i.e. defines a GUI) - double click opens a GUI Painter.
Method is a menuSpec method (i.e. defines a Menu) - double click opens a Menu Painter.
Method is a bitmap-image-returning method - double click opens a Bitmap Editor.
marks extensions; the category, class or protocol includes method extensions from other packages.
In addition, the class is marked with a trailing '[+]' string.
marks changes; the category, class or protocol includes methods which have been changed.
This red coloring will vanish when the class is checked into the source code repository,
or the class menus "special - cleanup changeSet" function is invoked.
marks all readers of the selected variable(s)
marks all writers of the selected variable(s)
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
Actually, any class which returns true from the #isVisualStartable query message
can be started this way.
Of course, this is the same as evaluating "className open" in a workspace.
#main method invokes that
method (this has been added for all users who asked the standard question: 'where is the main' ;-)
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.
Next: Menu Functions
Doc $Revision: 1.19 $ $Date: 2003/10/15 11:22:50 $