The COMD Project Manager

Because Desert creates a database of information about the program being worked on and because it is designed as a "system" rather than a file editor, it needs to know what constitutes the current system. Moreover, because it has to understand these files as the underlying tools do, it needs to have information about the files. For example, in order to understand source files, the system needs to know where to find the include files.

In Desert, this information is organized in terms of projects. A project corresponds loosely to the system being worked on. The information describing a project tells the system which files to include as part of the project and which files to disregard. Moreover, the information provides pattern-based descriptions of the auxilliary information needed to fully define the project such as where to find include files.

Desert provides a single, visual tool for creating, editing, and viewing projects. This tool, COMD, features a set of dialog boxes to facilitate the local editing and a graphical display of the current project:

Note that the display is only present when the system determines that it is available. Currently this requires a TGS OpenInventor/OpenGL license and a 24 bit visual.

The display shows the tree of directories that define the project. These are organized from left to right with the vertical space used by a directory box being proportional to the number of children of that directory. Display options allow files to be displayed as well as directories. Color is used to display the date last modified of a file or the most recent file in the given directory, with colors ranging from red to purple, and red indicating the most recently used files. White boxes indicate directories which are specified explicitly as part of the project, while black boxes indicate directories that are explicitly excluded from the project. The height of a box (i.e. how close to the front of the containing cube it comes) is proportional to the number of files in that directory and its children. The display can be manipulated using the right hand mouse button. Just clicking and dragging with the button rotates the graphical view. Using shift and the third button pans the display left-right or up-down. Control and the third button can be used for zooming.

There are four menus available from the COMD menu bar, File, Edit, Project, and Display.The File menu contains buttons to set the project, to define a new project, and to quit COMD.  The Edit menu contains buttons for editing the contents of the current project and for editing the include directories.  The Project menu contains buttons for starting the project databases, for updating the databases, for rebuilding the databases, and for stopping the database processes. Finally, the Display menu contains buttons for turning on and off the 3D project display, for including or excluding files from that display, for showing or hiding the excluded directories, and for updating the display after the database changes.

When a project is created or the contents of the project are edited, the Contents dialog box appears.  This box looks like:

The Project field is not editable if the dialog is invoked on an existing project, but is used to set the project name when creating a new project.  When creating a new project, the dialog box will also contain a set of radio buttons that allow the user to specify whether the project is global (i.e. to be shared among a set of users) or local (for this user only) or temporary.  The Use Paths and Exclude paths portion of the dialog box allow the user to specify files or directories that should be considered part of the project and those that should be excluded.  Both of these accept simple patterns similar to those used by make.  These are text strings that can have one embedded '%' (percent sign)  symbol that means an arbitrary string.  They are considered to match if they match the first part of a file name.  Thus " /pro/valley/bark/src/bark" will match all files in the directory /pro/valley/bark/src whose name begins with "bark". The user adds a pattern to either the Use set of the Exclude set by typing the pattern in the Path box and hitting return.  A pattern can be removed from a set by selecting it and hitting the delete button below the set display.  All changes take place immediately and the Dismiss button simply removes the window.

The other dialog box is created when the user asks to edit the include files.  It is also invoked automatically after the project contents dialog box is dismissed when creating a new project.  This dialog box looks like:

The project field is again read only.  Include paths are defined by specifying the path and the set of files for which that path applies.  The path is given in the Include box.  The set of files is defined either by checking the "For All Items" button or by specifying a file pattern (as above, a text string that may use a % to indicate any text using the prefix matching rule) in the For Path box. Once both the include and for path or for all are set, the Include button will add the given path to the current set.  Paths may be deleted by selecting them and then hitting the delete button.  All changes occur immediately.  The dismiss button removes the window.


If you have questions or problems, send email to Steve Reiss at spr@cs.brown.edu.

Or go back to the Desert home page.