Additional functionality provided by the new SystemBrowser includes:
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:
You can change the grouping, by selecting one of the other items in the view-menu.
A 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
General indicators are:
ClassType indicators are:
MethodType indicators are:
Colors are used to mark other attributes:
If there are unassigned (loose) methods in the class
(these are methods that have not yet been assigned to any package),
the class, category and methods are marked with a trailing '*'-string.
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.
Toolbar
The browsers toolbar provides items for the most heavily used functions:
If there are any classes selected, which inherit from TestCase, two additional icons
are shown:
Adds another buffer (Tab). Initially, a full class view on the current class is provided.
Toggles between hierarchical and flat mode in the class list.
Quick navigation to the most recently changed methods.
Quick navigation to the most recently visited classes.
Toggles between signle-class and full class mode in the selector list.
Prettyprint the current method.
Set/Clear Breakpoints on the current method(s).
To navigate to a class name or selector. The pull down list provides a class history.
Executes all selected testcases (if no protocol is selected, all of the selected classes' testcases
are executed; if no method is selected, all testcases of the selected protocols are executed).
No debugger is opened in case of an exception (however, exceptions are remembered and the corresponding method
is marked with a fail-icon).
Like above, but opens a debugger in case of an exception.
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 browsers View menu.
an indication that the corresponding item is or has parts in the current changeSet.
This typically means, that a class/method has been modified, but not yet been checked into
the source code repository.
an indication that the class contains extensions from other packages.
For a method, this indicates that the methods package is different from the classes package
(i.e. its either an extension or is a loose method, which has not yet been assigned to any package).
an indication that the class or method was modified by someone else in your team.
This requires the SmallTeam development support package to be loaded and active.
(launchable UI)
A visual application (i.e. a subclass of ApplicationModel). These can be started directly from within
the browser, by double-clicking on the class.
(launchable non-UI)
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 ?".)
(container)
A container class (i.e. subclass of Collection).
(widget)
A widget class (i.e. subclass of View).
(exception)
An exception class (subclass of Exception).
(error)
An error class (subclass of Error).
(warning)
A warning class (subclass of Warning).
(notification)
A notification class (subclass of Notification).
(query)
A query class (subclass of Query).
(testOK)
A testCase - the icon reflects the result of the last test-run.
(autoloaded)
An autoloaded class - the class as present is only a stub class (proxy).
The real class is automagically loaded when required.
The class can be forced to load immediately, by either double-clicking on its name,
or via the 'Load'-menu-Item in the Class menu.
If the OO-metrics package is loaded,
and the complexity-display is enabled in the browsers 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.
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.
These complexity indicators are:
In addition to the above, trace- and breakpoints are indicated via icons:
A very simple method.
Cool - a simple method.
Fine - some complexity.
Still fine - some more (but still acceptable) complexity.
Mhmh - take a look, the code might need some simplifications.
Slightly too complex - try to simplify.
Rather complex - should be splitted, parts extracted or otherwise simplified.
Very complex - this definitely needs a rewrite.
These indicators are:
A breakPoint is set on the method.
A trace is set on the method.
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
Copyright © 2000 eXept Software AG, all rights reserved
Doc $Revision: 1.33 $ $Date: 2006/11/24 12:49:50 $