|
VLAB Home |
|
Browser provides the user with a two-dimensional view of an object database (see figure 2 below). Each object is represented by a folder symbol, object name, and an icon. Prototypes and extensions are connected by lines forming a tree structure. Whenever objects are created, copied, moved, or deleted, browser dynamically updates the database and the displayed tree.
Browser works with objects and hyperobjects. An object is a model defined by a set datafiles. Objects can inherit datafiles from other objects and form subtrees in the database. A hyperobject is a link to an object in the database. Experiments on hyperobjects do not affect the original object, as temporary copies of the datafiles are used. This facilitates the presentation of a VLAB object in several different contexts, while keeping the main database intact. Objects and hyperobjects can be collected into a single database and are both visible in Browser. Versions of VLAB for other platforms have seperate Browser and Hyperbrowser applications (refer to New in vL1.0.)
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 1 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.
Browser displays a 2-dimensional map of the objects in the database which can be navigated and modified. Each object is represented by a folder symbol, object name, and an optional icon (refer to table 1 for a legend of folder symbols). Clicking an object's folder symbol, name or icon with the left mouse selects the object. In figure 2 below, the hyperobject paintbrush is selected, and is highlighted in purple. The colours and fonts used in Browser can be customized (refer to Customization).
Object Extension | |
Object | |
Hyperobject Extension | |
Hyperobject | |
Symbolic Link | |
Invalid Link |
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
|
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. Following is a detailed description of the operations available through these menus.
Figure 3 - Browser File menu. |
Table 3 - Description of Browser File menu. |
||||||||||||||||||||||||
Figure 4 - Browser View menu. |
Table 4 - Description of Browser View menu. |
||||||||||||||||||||||||
Figure 5 - Browser Object menu. |
Table 5 - Description of Browser Object menu. |
||||||||||||||||||||||||
Figure 6 - Browser Search menu. |
Table 6 - Description of Browser Search menu. |
||||||||||||||||||||||||
Figure 7 - Browser Help menu. |
Table 7 - Description of Browser Help menu options. |
An object or hyperobject can be placed onto the lab table by double-clicking the left mouse button on the objects folder symbol. Alternatively, the user can select the object with the left mouse and select Get from the Object menu. When the object or hyperobject is placed onto the lab table, the Object Manager is invoked and various actions are available. Refer to Object Manager.
Object and hyperobject nodes and subtrees can be copied and pasted within a database. Objects can be dragged and dropped into another database to make a copy.
To copy and paste a object or hyperobject node:
To copy and paste an object or hyperobject and it's subtree:
To hypercopy and paste an object node:
Note: |
Drag and drop operation only copies the object, not the object's subtree. |
Note: |
If an Object is copied, all datafiles are copied and an identical object can be pasted. |
An object or hyperobject node can be deleted by selecting the node, then selecting Delete from the Object menu or using the keyboard shortcut Ctrl+X. Subtrees are also deleted. A confirmation dialog is opened before a node and its extensions are deleted.
Objects and hyperobjects can be renamed by selecting the node with the left mouse, then selecting Rename from the Object menu. A dialog is opened in which to type the new name. 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.
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.
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.
Note: |
If more than one user access 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. |
The look of the visualized object database can be customized by the user through a customization window. The customization window (see figure 8 below), is invoked by selecting the Customize from the File menu. 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. The VLAB HSV-RGB Colourpicker is used to select colours, and is invoked by clicking the left mouse on the buttons along the left side of the panel (Background, Line, etc.). Buttons are located in the bottom of the window for saving or loading the selected settings. By default, custom settings are saved in a file specified by $(VLABCONFIGDIR)/browser, although different file name can be specified.
Once the HSV-RGB Colour Picker is open, the colour's HSV or RGB values can be adjusted using the sliders on the left side of the dialog, or by entering the value in the edit boxes to the right of the sliders.
Note: | The return key must be pressed after editing in the boxes. |
The hue and saturation of the colour can be selected on the rainbow colour wheel with the mouse by pressing the left mouse button to select a colour, and moving the mouse to adjust the selection. The hue line and saturation circle are drawn to aid in the selection.
The large box below the colour wheel shows the current selection. The selection is automatically applied.
The smaller box below the colour value slider shows the original colour. To revert to this colour, click the left mouse inside this box.
If the colour picker is closed, the colour remains as it appears on the customization panel.
Browser was written in C++, using OpenGL and QT 2.3.0 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.
Jin Xiao - Browser Implementation, vL1.0
P. Federl - Design Improvements
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
Joanne Penner - Documentation Update, VL1.0
1. There is no 'undo' command.
2. Browser crashes if a node is Cut and then Pasted.
3. Hyperobject nodes in symbolic links in the database refer to nodes in the current database, and not the database symbolically linked to as should be.
A major difference between VLAB for Linux from other platforms is that Browser and Hyperbrowser are combined into one application. Now, databases can contain mixed objects and hyperobjects. OOFS databases should port easily to Linux, as all file formats are consisitent on all platforms. Hyperobjects may need to be re-created. HOFS hyperobject database is not necessary.
|
VLAB Home |
|