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