Table of Contents

The Virtual Laboratory Browser

Quick Contents of this Page

Overview of the Browser

The
object browser (see Figure 1) provides the user with a two dimensional view of the Virtual Laboratory object hierarchy.

Figure 1 - The Browser window

Each object is represented by a folder symbol, object name, and optional icon. Prototypes and extensions are connected by lines forming a tree structure. Objects with multiple folder symbols that are filled have extensions, while objects with single folder symbols that are empty represent leaves of the tree. Some objects have folder symbols that contain the letter "L". These are actually symbolic links to other object databases (they represent links to other users' object oriented file systems). The tree is modified dynamically whenever objects are created, copied, moved, or deleted. The object hierarchy can be scrolled in both x and y directions if it does not fit in the browser's window.

Startup Info

The object browser is invoked using the Unix command line:

browser [directory_name]

The optional directory_name specifies the root directory of the hierarchical file structure for vlab (this may be specified as a subdirectory name relative to the current working directory). If no directory is specified, then the $VLABROOT/oofs directory is used.

Example:

	 browser /usr/u/vlab/oofs 
starts the browser with /usr/u/vlab/oofs as the root directory; checks for the presence of a running vlab daemon and, if necessary, starts it.

Browser will automatically start the vlab daemon. This program will create the file /tmp/vlabdxxx (where xxx is the user id) to indicate that the vlab daemon is available for communication with any of the vlab system components. The vlab daemon must be running at all times while the object browser is being used. Several browser processes may be active at the same time using a single vlab daemon. The vlab daemon is closed when the user exits the last browser process.

Menu bar

The menu bar contains the following menu captions:

File - collects a variety of items

View - allows users to control the view of the vlab object hierarchy Object - allows users to invoke objects and manipulate the object hierarchy Find: makes it possible to search for an object in the object tree by specifying a substring of the name that is being looked for. Example: if you entered a substring 'abc', the objects 'abc', 'xxxabc', 'abcyyy', 'xabcy' would all be found.

Help - contains the Help menu items

Mouse Operations

In addition to selecting menus from the menu bar, the mouse can also be used to perform a number of actions. Left Button Middle Button Right Button

Advanced features

The browser can be invoked as many times as needed, therefore the user can see different parts of the tree (or different trees) using different browsers. The drag and drop feature works between browsers, so an object can be dragged from one browser and dropped onto another browser. This makes it very easy to integrate new subtrees into the main database. Each browser's view of the hierarchy is updated automatically when changes are made to the tree structure.

Customization

When the user selects Customize under the File menu, the browser customization window is displayed (see Figure 2).

Figure 2 - The browser customization window

Using this and descendent windows, it is possible to choose the various colors used in the browser display, change the format of the tree display, modify fonts, and select icon size and icon zoom methods. Pushbuttons are located in the bottom of the window for saving or loading the selected settings, and to apply or cancel the selections. Custom settings are saved in the file browser in the vlab/config directory.

Additional resources may be set using the X-windows standard method of specifying them in the Browser file in the vlab/app-defaults directory. It is possible to find out all of the resource names used, by running the X windows editres program. (editres - a dynamic resource editor for X Toolkit applications) For usage information, see the online man pages (man editres).

Implementation Details

Browser was written in C, using Xt, Motif, OpenGL and SGI libraries.

References

E. Lowe - Extensions to the Virtual Laboratory. Master's thesis, University of Calgary, Calgary, Canada, 1995.

S. Moen, "Drawing Dynamic Trees", IEEE Software, July 1990, pp. 21-28.


Credits

P. Federl - design improvements and browser implementation

Selected routines for image manipulation copyright 1994 by John Bradley. Used with permission.

E. Lowe - design and implementation of the browser's prototype in Tcl/Tk and C

I. Hernadi, P. Federl, P. Prusinkiewicz - browser documentation


Bugs

1. There is no 'undo' command.

2. Placing an object on the lab table is sometimes slow, since the object's files need to be copied to a temporary location, and no user feedback is given during this process until the object's icon is displayed on the screen.


Contact Information

Please direct all feedback, bug reports, and so on to vlab@cpsc.ucalgary.ca.

Last updated Jan. 5, 1995 by Istvan Hernadi
Table of Contents