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.
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.
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
Open shell
Open file
Open console
Import
Export
Update Database
|
![]() |
Show extensions / Hide extensions
Show all extensions
Show icon / Hide icon
Hide all icons
Show all icons
Centre object
Show hyperlink target
Begin tree here
Begin tree from root
|
![]() |
Get
Rename
Cut
Copy node
Hypercopy node
Copy subtree
Hypercopy subtree
Paste
Delete
Keep h-links / Move h-links
|
![]() |
Find
![]() |
![]() |
VLab Browser Help
|
![]() |
About VLab Browser
About Qt
Preferences
Quit VLab Browser
|
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
|
Multiple Browser Windows
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.
Importing and Exporting Objects
The import and export functions provide for easy transfer of objects between computers or operating systems by email or by using removable media.
Importing
The import function allows you to take an existing directory structure on your computer, or an archive (either .zip or .tar.gz) and import it into the OOFS filesystem. This is supported when you are running browser on a local directory and when browser is connected to raserver.
To begin the import process use the browser to select the node where you would like to place the imported object, then under the File menu select "Import".
First select the type of structure you are trying to import, whether it is a Directory, Zip archive or Tarred GZip. Then you can browse for the object and select it. The available file types within the filesystem browser window are dependent on the archive type selected so it is important to set this property first.
Once you have selected the object you should select whether the files within the object were created under Mac/Linux or under Windows. The newline characters and directory structures are different between the operating systems so it is important to set this field properly. You can also select whether to just import the base object itself, or recursively import all of its extensions.
The import function will create a new node with the same name as the archive you are trying to import, so if the filename of your archive is "01-lychnis.zip" then it will create a new node with the name "01-lychnis".
If there is already an object in the destination which shares the same name then a window is presented notifying you of the conflict. You can either cancel the import process or proceed and use the merge window to resolve the conflict.
The merge window shows you the directory and file structure of the object you are trying to import. It shows the structure complete with the intermediate "ext" directories, although the names of these should never be changed.
There are 3 colors used in this window to show the different status of each file. If a file or directory's name is red then it already exists in the destination. Existing directories will be merged together and existing files will be over-written. You can resolve these conflicts by doing one of the following:
The process can be aborted by selecting the "Cancel" button if you do not wish to manually resolve the conflict and would rather import the object to another location. Once you are ready to proceed select "Done" and the object will start being imported. If you are importing a large subtree to a remote server this process may take some time.
Exporting
The export process is similar to the import process. You select the node where you would like to start the export process, then select "Export" under the File menu. You will be presented with a dialog box which is very similar to the Import window, and from here you select the target file type, location and whether it is being exported in the Mac/Linux format or the Windows format as well as whether you would like to export only the object, or the entire subtree recursively.
There are a couple things to take note of that differ from the import process:
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.
Browser was written in C, using Xt, Motif, OpenGL and SGI libraries.
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.
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
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.