The Virtual Laboratory Hyperbrowser

Quick contents


Hyperbrowser is a VLAB program used to facilitate the presentation of a VLAB object in several different contexts, while keeping the main database intact. In other words, hyperborwser allows the user to operate on databases of hyperobjects. Both hyperbrowser and browser operate on databases which store information using the same file structure. To preserve consistency between VLAB applications, hyperbrowser offers the same interface for database manipulating functions as browser. To avoid unnecessary repeating, here we describe only the features of hyperbrowser that are different from those of browser.

Overview

Hyperbrowser is manifested on the screen as a window displaying a hierarchy of hyperobjects (see figure below).

Notice the evident similarity between browser's and hyperbrowser's appearances. To avoid confusion between browser's and hyperbrowser's windows, the user may customize hyperbrowser differently than browser, for example, by changing its background color and the icon size. The title of the window indicates the location of the hypertext database displayed in hyperbrowser. The location is given in a format host:path, where the host is the name of the computer on which the database resides, and path indicates the root level object in the database. The bottom part of the window contains linking information about the selected object, i.e. the name of the associated object in the oofs database. If the hyperobject is not associated with any object in oofs, this field is empty. The middle part of hyperbrowser's window graphically depicts the hypertext database. Similar to browser, each hyperobject is represented by a folder symbol, object name and an optional icon. Parents and children are connected by lines forming a tree structure. Hyperobjects with folder symbols that are filled have children, while objects with single folder symbols represent leaves of the tree. The graphical tree is automatically modified whenever a change is introduced to the hypertext database. Scrollbars can be used to shift the displayed tree to display hidden parts of the database.

Start-up Information

The syntax used to invoke hyperbrowser is identical to the syntax for invoking browser:

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

The parameters mean the same thing for hyperbrowser as they do for browser (described here).

User Interface

Invoking Hyperobjects

The most obvious difference between interfaces of browser and hyperbrowser is the additional pulldown menu Action in hyperbrowser's menu bar. Functions available from this pull-down menu are related to the traversal of hypertext databases and the way hyperobjects are invoked.

Hyperbrowser allows its users to systematically traverse the hierarchies of hyperobject databases. It does so through the use of Next and Previous buttons. When the user invokes the Next button, hyperbrowser automatically highlights the next hyperobject in the hofs hierarchy, and invokes this hyperobject. Invoking a hyperobject in hyperbrowser results in performing a combination of the three actions described below. This combination of actions is determined by the state of the toggle buttons at the bottom of the Action pull-down menu. The algorithm for selecting the next hyperobject is depth-first traversal. The figure below  shows an example of an hofs tree and the order in which the hyperobjects in this tree would be selected if the Next button was used in succession. The Previous button would access the hyperobjects in the reverse order.

The Get object function is used to invoke the object manager on the object associated with the selected hyperobject. When the selected hyperobject is not associated with any object in an oofs database, this button is grayed out and not available to the user. The user can view the textual description associated with the selected hyperobject using the Show text button. When the selected hyperobject does not contain a description, this button is grayed out and not available to the user. The Edit text button is used to create a new description, or to modify an existing description of the selected hyperobject. When invoked on a selected hyperobject, hyperbrowser spawns an external text editor on the description file.

There are three toggle buttons at the bottom of the Action pull-down menu, specifying what are the default actions performed on a hyperobject when it is invoked. Hyperobjects can be invoked either by double-clicking on their folder icon, or by using the Next and Previous buttons. Get object toggle specifies whether object manager is invoked on the object associated with the selected hyperobject. Show text and Edit text toggles determine how the textual description associated with the selected hyperobject will be displayed (it can be: not shown at all, displayed in a text dialog window, or displayed in a text editor where it can be edited).

Changing the Order of Hyperobjects

A method for changing the order of hyperobjects is needed for hyperobject databases, because this order determines their traversal. Hyperbrowser allows the users to change the order of children of a hyperobject using the keyboard. To change the position of a selected child, the UP and DOWN arrow keys are used. The UP arrow key is used to move the selected child one position upwards, and the DOWN key is used to move the selected child one position downwards.

Invalid Hyperobjects

To indicate invalid hyperobjects in hofs databases, hyperbrowser displays three question marks in the name field of invalid hyperobjects. Invalid hyperobjects are hyperobjects which contain pointers to nonexisting objects. Invalid hyperobjects result as a consequence of deleting information from oofs databases. Unfortunately, there is currently no mechanism implemented in browser to warn the user when an operation on an oofs database results in making some of the hyperobjects invalid.

Renaming Hyperobjects

A hyperobject can be renamed in hyperbrowser using the same interface as browser uses to rename objects. However, the user can specify an empty name for a hyperobject, indicating that the hyperobject should inherit the name from an object it points to. The name chosen for a hyperobject does not affect the object in any way. You can think of that name as an alternative name for an object.

Adding Hyperobjects to hofs Databases

The user can create a new hyperobject in an hofs database in one of the following ways:

Hyperbrowser will respond to both of these actions by creating a new hyperobject in the selected destination, with a hyperlink pointing to the source object. No textual information will be associated with this new hyperobject, and the name of the newly created hyperobject will be empty (i.e. inherited from the source object). A description can be then added to the hyperobject by invoking the Edit text function from the Action pull-down menu.

It is also possible to transfer a hyperobject from hyperbrowser into browser, using either the copy and paste, or the drag and drop operations. Such transfer results in creating an extension of the destination object, where the extension is the object linked with the source hyperobject. This operation is therefore identical to copying the object to which the source hyperobject points to using a browser, and pasting it into an oofs database. Notice that hyperobject which do not contain hyperlinks cannot be transferred to oofs databases.

Implementation Details

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

Credits

P. Federl - design and implementation

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

P. Federl, P. Prusinkiewicz - hyperbrowser documentation
 


Last updated July 12th, 1999 by Pavol Federl