[prev] [up] [next]

More Menu Functions

Buffers (Pull Down) Menu Functions

[Fig: buffers menu hardcopy]
Buffers menu (in Windows-XP style)

The funtions of this menu allow for additional buffers (pages/tabs) (browser-views in the notebook) to be added or removed and to switch to another buffer.

The create/remove functions are also found in the tabs popUp menus.

Add Page
Add another Buffer-Page (also called "Tab").

Remove Page
Remove the current Buffer-Page.

Exit
Close the Browser. A confirmation dialog is opened, if any buffer has been modified but not saved (i.e. unaccepted modifications).

Browse (Pull Down) Menu Functions

[Fig: browse menu hardcopy]
Browse menu

The funtions of this menu allow for additional browsers to be either opened as standAlone browsers or to be added as buffers in the noteBook.

Class...
Opens a dialog to ask for the name of a class and shows this class either in a new browser, a new buffer or the current buffer, depending on which conformation button was pressed to close the dialog.
The dialog allows for wildcard patterns to be given as name and to select among matching class names.

Classes -
A submenu with common search filters:

- In Current Changeset
browse classes which have been changed (but not checked into the source repository). In contrast to the recently changed function, this will present ALL changed methods.

- Defining Variable...
browse classes which define a particular variable.

- With String in Comment...
browse classes for which a particular string is found in its comment.

- With Name Matching...
browse classes for which the name matches a pattern.

- All Applications
browse all application classes (subclasses of ApplicationModel).

- Which were Autoloaded
browse all classes which were lazily loaded by the autoload mechanism.

- Without Examples
browse all classes which have no examples in the class protocol (for developers/maintenance).

- Without Documentation
browse all classes which have no documentation in the class protocol (for developers/maintenance).

- Without Repository Container
browse all classes which have not yet been added to the source repository.

- For Which...
browse all classes for which a user provided check-block returns true.

Implementors of...
browse all methods which implement a particular message selector.
The opened dialog allows for wildcard patterns to be given and optionally to limit the search area (class, category, etc.).

Senders of...
browse all methods which send a particular message selector.

References to Class or Global...
browse all methods which refer to a global.

References to Symbol...
browse all methods which refer to a symbol.

Recently Changed Methods...
browse recently changed methods. This is one of the most useful functions; however, because there is also a button for this in the toolbar, you will probably not use this menu item.

Class Extensions...
browse all methods which extend a class.

Methods -
A submenu with common search filters:

- In Current Changeset
browse methods which have been changed (but not checked into the source repository). In contrast to the recently changed function, this will present ALL changed methods.

- With String in Comment...
browse methods for which a particular string is found in its comment.

- With Window Spec
browse methods which returns a window specification (i.e. GUI defining methods).

- With Menu Spec
browse methods which returns a menu specification (i.e. GUI defining methods).

- With Image Spec
browse methods which returns a bitmap image (i.e. typically icons or indicators).

- With Help Spec
browse methods which returns a tooltip help text dictionary.

- With Resource
browse methods which are marked as resource-providing method ("<resource>"-directive).

- With Annotation
browse methods which are marked with an annotation ("<xxx:>"-directive).

- Without Comment
browse all methods which have no method comment (an explaining comment at the top of the method).

- Raises an Exception
browse all methods which contains exception raising code ("raise:", "raiseRequest:", etc.).

- Handles an Exception
browse all methods which contains an exception handler ("handle:do:", "on:do:", etc.).

- For Which...
browse all methods for which a user provided check-block returns true.

Find Menu Functions

[Fig: find menu hardcopy]
Find menu (picture is not up-to-date)

The funtions of this menu provide functions to search for classes or methods and switch the active browsers selection.

View Menu Functions

[Fig: ciew menu hardcopy]
View menu in "Motif" style (picture is not up-to-date)

The funtions of this menu allow for the organisation to be switched between a number of modes (category, namespace, project) and also for various other aspects of the browser to be set and configured.

Project List Menu Functions


[Fig: project menu hardcopy]
Project list menu in "Motif" style (picture is not up-to-date)

This menu is only available after the view-mode has been switched to the ''project''-mode (-> View Menu).
In this mode, the leftmost view provides a list of all projects (i.e. packages) in the system.

The project list provides the following menu functions:

FileOut - as
save all classes in all currently selected projects into one big source file.
This function is useful to transport a bunch of classes to another Smalltalk system.
The format is supposed to be compatible to Smalltalk-80's fileOut format. However, keep in mind, that private classes cannot be loaded into other Smalltalk systems; classes in a nameSpace might end up as globally visible classes in the other system.
Notice, that this format is a pure interchange format (in particular, the stc-compiler cannot compile such files, as it only allows one class-per-file).
The file is created in the current project-directory; by default, this is the current directory.

FileOut - XML as
like above, but files are stored in XML format.
The format is supposed to be readable by newer versions of VisualWorks, especially versions 5 and above. It may also be useful for the automatic generation of documentation (with the help of an XSLT processor) or for import into a modelling/design tool, for UML generation.
Notice, that support for the XML format is experimental, and, that this format is a pure interchange format (i.e. this format cannot be compiled by the stc-compiler).

FileOut - SIF as
like above, but files are stored in SIF format.
The SIF (Smalltalk-Interchange-Format) format is supported by most other Smalltalk dialects, and readers are available free of charge via the world-wide-web.
Notice, that this format is a pure interchange format (in particular, this format cannot be compiled by the stc-compiler).

FileOut - Each in
save all classes from all selected projects, but put each class into a separate file, named "className.st".
Having classes in separate source files is required if the classes are to be compiled later by stc (for machine code), or might be required for archival into some source repository.

The files are created in the current projects fileout directory; by default, this is the current directory.

FileOut - Each binary in
like fileOut each, but saves the classes in binary (BOSS - Binary Object Storage) format.
This format is portable across machines, iff no primitive code is contained OR the target system supports dynamic compilation to machine code.
However, the BOSS format of Smalltalk/X is different from other Smalltalk systems BOSS format - therefore, those class files cannot be interchanged with non-Smalltalk/X systems.

Repository - Checkin All
Check every changed class in the selected project(s) INTO the source code repository. Unchanged classes do not affect the repository.
Of course, you have to have the sourceCodeManagement facility running for this to work.

Repository - Checkin Classes Only
Only check in changed classes from the selected project(s).
You have to have the sourceCodeManagement facility running for this to work.

Repository - Checkin Extensions Only
Only check in changed classes from the selected project(s).
You have to have the sourceCodeManagement facility running for this to work.

Repository - Checkin Build Support Files Only
Generates the required build-support files as required for stc-compiling and building shared libraries (.dll / .so) and/or executables (.exe), and checks those files into the source repository.
The build can then be performed either via a command line shell ("cvs upd" followed by a "make" command), or via the "build" menu function (see below).
The files as generated are: You have to have the sourceCodeManagement facility running for this to work.

Build - Binaries
After asking for a temporary build directory, required files are checked out there from the repository, and the stc-compiler is invoked to compile the files into a shared-library and/or an executable program.
Notice, that this temporary directory must be distinct from the one in which your current Smalltalk executes, because source files are overwritten when checking out from the repository. This could make access to the sourcecode of a class/method impossible in you currently executing browser.
Therefore, the initial dialog insists on a separate directory to be selected.

After the build, depending on the kind of project (i.e. library vs. application), either a shared library object (.dll/.so) or an executable program is generated in the target work tree.

Notice that the build feature is currently been implemented and in an experimental stage. It may or may not produce a usable result in your particular situation. It is currently used to manage the stx-base libraries, stxlib* and a number of applications as generated for exept customers.

Spawn - Browser
opens a project browser on the currently selected project(s).

Spawn - Buffer
like above, but adds a buffer containing the selected project(s) (i.e. no separate window is opened).

Find -
common class/method find menu.

New
allows creation of a new project.

Rename
rename a project. Be careful - if the sourceCodeManager is enabled, this requires that the classes be checked in again after the rename operation.

Remove
remove all classes (& subclasses) in all selected projects. You will be warned by a popup box which has to be answered positively, for the deletion to be actually performed.

Update
rescan all classes in the system and update the project list.
Normally, the systemBrowser tries to keep track of changes done by other parts of the system; however, there are situations, in which the browser does not get notified of these changes and needs a manual update (if some program created a class without sending change notifications by using low-level functions).

Namespace List Menu Functions

[Fig: namespace menu hardcopy]
NameSpace list menu in "Motif" style (picture is not up-to-date)

This menu is only available after the view-mode has been switched to the ''NameSpace''-mode (-> View Menu).
In this mode, the leftmost view provides a list of all NameSpaces in the system.
Notice, that a Namespace's purpose is to avoid class-naming conflicts; it should not be used for project packaging purposes, as a project may include classes for multiple namespaces. (however, even if the system does not enforce or otherwise support this, it is often the case, that projects define and use their own exclusive namespace for their classes.)

Spawn - Buffer
add a buffer which shows the selected namespace(s) only.

Spawn - Browser
open a new browser which shows the selected namespace(s) only.

Find -
common class/method find menu.

New
allows creation of a new namespace.

Rename
rename a namespace

Remove
will remove the currently selected namespace and all of its classes. You will get a chance to cancel, if you changed your mind.

Update
rescan the system and update the namespace list.
Normally, the systemBrowser tries to keep track of changes done by other parts of the system; however, there are situations, in which the browser does not get notified of these changes and needs a manual update (if some program created a class without sending change notifications by using low-level functions).

Variable List Menu Functions


[Fig: variableList popUpMenu hardcopy]
Variable list menu in "Motif" style (picture is not up-to-date)

This menu is not found in the main menuBar, but instead shown as a popUp menu in the variable list view when the right- (or middle-) button is pressed.
Parts of this menu are also accessible as a submenu under the main class menu.
This menu offers additional functions which apply to the instance- and class-variables of the currently selected class(es).

InstVar refs...
Open another browser or add a buffer showing methods of the selected class, which refer to the given instance variable.

InstVar readers...
Open another browser or add a buffer showing methods of the selected class, which read the given instance variable.

InstVar writers...
Open another browser or add a buffer showing methods of the selected class, which write (i.e. modify) the given instance variable.

All InstVar refs...
Open another browser or add a buffer showing all methods (defining class and all subclasses), which refer to the given instance variable.

All InstVar readers...
Open another browser or add a buffer showing all methods (defining class and all subclasses), which read the given instance variable.

All InstVar writers...
Open another browser or add a buffer showing all methods (defining class and all subclasses), which write (i.e. modify) the given instance variable.

ClassVar refs...
Open another browser or add a buffer showing methods of the selected class, which refer to the given class-variable.

ClassVar readers...
Open another browser or add a buffer showing methods of the selected class, which read the given class-variable.

ClassVar writers...
Open another browser or add a buffer showing methods of the selected class, which write (i.e. modify) the given class-variable.

All ClassVar refs...
Open another browser or add a buffer showing all methods (defining class and all subclasses), which refer to the given class-variable.

All ClassVar readers...
Open another browser or add a buffer showing all methods (defining class and all subclasses), which read the given class-variable.

All ClassVar writers...
Open another browser or add a buffer showing all methods (defining class and all subclasses), which write (i.e. modify) the given class-variable.

Generate Access methods...
Generate accessor methods (getter- and setter-methods) for the selected variable(s).

Rename
Rename a variable; also, all methods refering to that variable are changed (rewritten) as required, to access the new name.

Type info...
Scan over all instances of the selected class, and collect class-type information for the selected variable.

Show ClassVars
Switches the variable-lists display mode between instance-variable-display and class-variable display.


Next: Code Menu Functions

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

<info@exept.de>

Doc $Revision: 1.22 $ $Date: 2018/10/13 14:47:55 $