Bowser Pro
Bowser Pro is a class and source code browser designed exclusively
for
use with Magic Cap. Bowser Pro borrows technology from ObjectMaker to
parse a set of class definition and C source files and presents a
browsing window of the classes, methods and fields defined there.
Bowser Pro has a preprocessing phase during which it reads in and
parses the definitions for a group of classes and saves them in a
browsing document. Most of the time you'll use Bowser Pro to browse
the classes in your package together with Magic Cap's class
definitions. To do that you'll develop a browsing documents for the
Magic Cap classes and for your packages classes. The next section
describes the mechanics of creating a browsing document.
How to Use Bowser Pro
Here are five steps for using Bowser Pro.
- Start the Bowser Pro application.
- Select the folder containing the source code you want to browse.
In
the example below, the folder "GM" is about to be selected.
- Wait. Parsing Magic Cap classes may take several minutes.
- Save the resulting document. This is another area where patience
is necessary. Saving a large browsing document may take several
minutes.
- Try clicking on the various lists to see what happens.
Below is a screen shot of Bowser Pro in action, with annotations that
describe the major features of Bowser Pro.
The Browse Window
You can use the keyboard to select classes, methods, and fields. Type
tab to move from one pane to the next. When the class, method, or
field pane is selected, you can type alphabetical characters to make
a selection. You can also use the up arrow and down arrow keys to
move through the selected pane.
Menu Commands
This section describes the commands available in Bowser Pro's menus.
Find Menu
The first three items in the Find menu work like the first three
items
in MPW's find menu. These items let you search the text pane for text
that you specify, repeat the previous search, or search for the
selected text. The search is always case sensitive and does not wrap
around when it reaches the end of the text in the text pane.
Here are the rest of the items in the Find menu:
- Find Inherited
- Show the current method as implemented by the current class's
superclass. If the method has no inherited implementation, Bowser Pro
beeps.
- Find Class
- This item prompts for the name of a class, then selects and
displays that class. This is especially useful when viewing classes
hierarchically.
- Find Method
- This item prompts for the name of a method, then selects and
displays
the first implementation of that method, searching all classes in
alphabetical order.
- Find Field
- This item prompts for the name of a field, then selects and
displays the first implementation of that field, searching all
classes in alphabetical order.
- Go To Next
- This item finds the next class, if any, that implements a method
with the same name as the selected method. Classes are searched in
alphabetical order.
- Go Back
- Use this item to see the class that was displayed immediately
before
the currently displayed class.
Parser Menu
- Parse More
- Use this item to begin parsing to create another Bowser Pro
document.
- Reparse
- If any source files change after creating the browse document,
use
this item to update the browse document without having to reparse
everything.
Class Menu
- Hierarchical Classes
- This item displays classes according to their hierarchy.
- Alphabetical Classes
- This item displays classes according in alphabetical order.
- Ancestry of Class
- This item displays all the superclasses (except mixins) of the
selected class. This list appears in the pane just above the text
pane.
- All Methods of Class
- This item opens a new window that lists all the methods available
in the selected class, including inherited methods. Select a method
in this new window to see its source, if available.
- All Fields of Class
- This item opens a new window that lists all the fields available
in the selected class, including inherited fields. Select a field in
this new window to see its declaration.
- Implementors of Class
- This item opens a new window that lists all classes that
implement
the selected class anywhere in their ancestry.
- Create Template
- Use this item to create a instance definition for an Objects.Def
file. A new window will open with a template for an object of the
selected class.
- Source File of Class
- This item displays the name of the class definition file that
contains the definition for the selected class. If you hold down the
shift key while selecting this menu item, the class definition file
will be opened in the MPW Shell.
- Show Class Definition
- If this item is checked, the text pane will automatically show
the
definition of a newly selected class.
Member Menu
- Implementations of
- This item opens a new window that lists all the implementations
of
the selected method. Select a method in this new window to see its
source, if available.
- Source File of Method
- This item displays the name of the source file that contains the
code for the selected method. If you hold down the shift key while
selecting this item, the source file will be opened in the MPW Shell.
- Interface of Method
- This item shows the interface for the selected method, as defined
in the class definition file.
- Source File of Field
- This item displays the name of the class definition file that
contains the definition for the selected field. If you hold down the
shift key while selecting this item, the class definition file will
be opened in the MPW Shell. Totally cool!
Known Bugs And Limitations
- The About box is still lame.
- Printing prints only the class hierarchy.
- Opening a selected class in an external editor is only supported
for the MPW shell, and only if it is running.