The Virtual Laboratory Browser

Quick contents

Browser provides the user with a two-dimensional view of the database (see figure below). Each object is represented by a folder symbol, object name, and an optional icon. Prototypes and extensions are connected by lines forming a tree structure. Objects with folder symbols of type 3 have extensions, while objects with folder symbols type 1 represent leaves of the tree. Folder symbols that contain the letter 'L' indicate symbolic links to different object databases (usually the object oriented file systems of other users). Whenever objects are created, copied, moved, or deleted, browser dynamically updates the displayed tree. If the tree of the object hierarchy does not fit into the window, the scrollbars can be used to adjust the view in both horizontal and vertical directions.

Start-up Information

Browser is usually invoked from the command line, using the following syntax:

    browser [-p password] [[[login@]hostname:]dirname]

Valid examples of invoking browser are:

    browser
    browser ~/vlab/oofs
    browser acs6.acs.ucalgary.ca:/scratch/vlab/oofs
    browser joe@cs2:/usr/u/vlab/oofs
    browser -p ecret678 joe@cs2:/usr/u/vlab/oofs

Browser assigns the following default values for unspecified parameters:

    password = NULL (unspecified)
    login = the current user name (whoami)
    hostname = localhost
    dirname = $(VLABROOT)/oofs

When browser is invoked on a remote database, the user is prompted to enter his login name and password (see figure below), unless both the login name and password are specified on the command line. If the authentication process with RAserver fails, the user is notified and prompted for the login information again.

Menu Bar

The menu bar provides an interface to most of the functionality available in browser. The File menu groups actions related to general operations of browser. The View menu contains operations used to change the view of the database. The Object menu groups actions for database management and object invocations. The Find button is used for searching through object databases. The Help menu contains operations for invoking browser's on-line documentation. A detailed description of the operations available through these menus follows:

New browser
Invokes a new browser window with the initial view of the same oofs database.

New hbrowser
Invokes a new hyperbrowser window with a view of the hofs database associated with the oofs database currently being dis-played by browser.

Open shell
Opens a UNIX shell window. The directory in this window is automatically set to be the directory of the selected object. This is a useful feature for users wishing direct access (command line) to the internals of objects. This menu is disabled when accessing remote databases.

Open file
Displays a file selection dialog, listing files in the directory of the selected object. If no object is selected, the files in the direc-tory of the root object are listed. When a file is selected from the file selection dialog, browser invokes a text editor on this file. This menu is disabled when accessing remote databases.

Customize
Opens a dialog window where the user can customize the visual appearance of browser, i.e. change the colors, font, etc.

Exit
Exits browser.

Show extensions / Hide extensions
Toggles the display of immediate extensions of the selected object.

Show all extensions
Shows (recursively) all extensions for this object. Symbolic links to objects are not expanded except the selected object. This prevents browser from entering an infinite loop when owners of oofs databases have cyclical links to each other's databases.

Show icon / Hide icon
Toggles the display of the thumbnail icon for the selected object.

Show all icons
Recursively shows thumbnail icons for the highlighted object and all of its displayed extensions.

Hide all icons
Recursively hides all thumbnail icons of the selected object and all of its displayed extensions.

Center object
Adjusts the view of the database so that the position of the selected object in the browser's window is as close to the center as possible.

Begin tree here
Hides all ancestors of the selected object. After this operation is applied, only the tree starting at the selected object remains visible. This operation can be reversed by the following operations.

Show parent
The immediate parent of the selected object and all of the parents extensions are displayed.

Begin tree from root
Shows the tree beginning at the root of the object hierarchy inde-pendently of the currently selected object.

Get
Invokes the object manager on the selected object.

Rename
Allows the user to rename the selected object. The user is prompted for a new name which has to be entered in a dialog window. If the selected object cannot be renamed as requested, the user is notified appropriately.

Cut
After a confirmation is obtained from the user, the selected object and all its extensions are recursively copied into a temporary space (clipboard) and then deleted from the original location. This entire tree can be later copied into any other location (including different databases) using the Paste function.

Copy node
Copies a single object (without its extensions) to the internal clipboard, from where it can be pasted.

Copy subtree
Copies the selected object and its entire subtree to the clipboard for a subsequent paste operation.

Paste
The object and its extensions, if any, stored in the clipboard become an extension to the selected object. The user is notified if the paste operation cannot be completed.

Delete
After a confirmation from the user, the selected object and all of its extensions are removed from the object oriented file system. If the delete operation cannot be completed, the user is notified.

Keep h-links / Move h-links
The state of this toggle button determines how the object IDs are affected when objects are copied. When the toggle button is set to 'Keep h-links', the IDs remain associated with the original objects and new IDs are created for the new copies. When the toggle button is set to 'Move h-links', the IDs are re-assigned to the copies, while new IDs are generated for the original objects.

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. When a match is found, the object is located in browser's window by expanding the appropriate branches of the database tree, and the user is given the option to either continue searching for the next match, or to abort the search completely. The choice of whether the find algorithm will expand symbolic links when searching for the object is selectable by the user:

About
Displays general information about the current version of browser.

On-line help
Invokes an on-line documentation.

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
  • Clicking on an object's folder symbol, name or icon selects the object.
  • Double clicking on the object's folder symbol places the object on the lab table by invoking the object manager on the object.
  • Double clicking on the object's name shows or hides object extensions.
Middle button
  • Selects an object and makes it possible to copy it using the drag and drop operation. The user selects an object and drags it to a new location, where a new child is created. The view of the object hierarchy is automatically scrolled if the destination object is located outside the viewing area. Drag and drop operation only copies the object, not the object's extensions. Its functionally is equivalent to performing Copy node and Paste operation. Dropping an object on itself or releasing the mouse button with no object selected cancels the drag and drop operation.
Right Button
  • Clicking on the object's name or folder symbol shows or hides the object's thumbnail icon (toggle action).

Advanced Features

In order to allow the user to simultaneously view different parts of a database, multiple copies of browser can be invoked and each browser can then display different parts of the database. Similarly, multiple copies of browsers can be invoked on different databases, allowing the user to easily transfer objects between databases through the use of drag/drop or cut/copy/paste functions. All instances of browser invoked by the same user can communicate using VLAB daemon. Changes made to a database in one browser are broadcasted to all other browsers to maintain consistency between the real and displayed information. It should be noted that if more than one user accesses the same database at the same time, changes made to this database by one user are not automatically reflected in browser invoked by the other users.

Customization

The look of the visualized object database can be customized by the user through a customization window. The customization window (see below), is invoked by selecting the Customize from the Filemenu. The user can choose various colors used in browser's display, change the format of the tree display, modify fonts and select icon size and icon zoom methods. Colors and fonts can be changed using color and font chooser (see below). Push-buttons are located in the bottom of the window for saving or loading the selected settings, and to apply or cancel the selections. By default, custom settings are saved in a file specified by $(VLABCONFIGDIR)/browser, although different file name can be specified. The appearance of the browser can be also changed by modifying its application resource file app-defaults/Browser.

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.
 


Last updated July 12th, 1999 by Pavol Federl