The Landscape Architecture Editor Tool (lsedit)

Gary Farmaner - Last updated: November 3, 1997


Table of Contents


Introduction

The Landscape Editor (lsedit) is a Java Applet which can display, edit, and provide simple visual queries, on software architectural diagrams (Landscapes).

The input to lsedit is in the form of the Tuple-Attribute Language (TA).

Due to limitation of the current Web Browsers, the editor functionality can only be obtained by running the applet within the appletviewer supplied with the Java Development Kit (JDK). This is accomplished by running one of two script files for file (direct) or URL (bookshelf) usage.

A reduced functionality Viewer can also be executed within a Java capable (and ENABLED) browser such as Netscape or MS-Internet Explorer. This is how it is used within the Portable Software Bookshelf

One common use within a environment.

This document assumes a familiarity with the TA language.

The Landscape Editor software and documentation was written by Gary Farmaner (dialog@cs.toronto.edu)


Installation

The lsedit is wrapped by the script files lsedit.file (direct editing) and lsedit (bookshelf editing) either of which launches the appletviewer from the Sun Java Development Kit on the editor classes.

You require an installation of JDK 1.0.2 or later to use lsedit.

The lsedit distribution is a tarred and gzipped file containing a lsedit.file script template, the Java class files which implement the Landscape Editor, and a local copy of this documentation HTML file.

The various script files must be editted before being used to set up appropriate paths.

Obtain the lsedit distribution.

Place it in a empty directory. To uncompress the files:

gunzip lsedit.tar.gz and then tar xf lsedit.tar OR
gzip -d lsedit.tar.gz and then tar xf lsedit.tar OR
tar xzf lsedit.tar (GNU tar)

Be sure to follow the directions in the supplied README file. It details some technical steps REQUIRED to make lsedit usable.


Generating TA to Edit

If you're building a full scale Portable Software Bookshelf (PBS) system, then the TA will have already been created and placed within the Bookshelf framework. You can skip to Starting lsedit .

For those who wish to start simple, and merely create and edit TA files directly on the file system, then there are couple of avenues to take:


Starting lsedit

Depending on whether you are directly editing filesystem based TA files or editing a landscape stored within a Portable Software Bookshelf (PBS) environment, you use one of two script files:

In both case, the editor will start-up, read the TA file, parse, and finally display the architecture diagram within the editor's GUI.


The GUI Layout of the Landscape Editor

When started, lsedit will present the user with a display of the form:

This is how the Editor will look running in the appletviewer. To see how the Viewer will look running in a Bookshelf, see the Example Bookshelf

Each section is described below:


The Landscape Editor Menu Bar

The menu bar contains the following menus:

File menu

Edit menu

Mode menu

Fine grain control, on a per entity/relation basis, is obtained through mouse buttons clicks and selecting a mode of operation.

In lsedit the right mouse button is reserved for a TA defined popup menu (see section Popup Menus for details). The left and middle mouse buttons select all the actions for the modes.

Note: For machines with one or two button mice:

One button: The middle button is simulated by pressing the ALT key and then the mouse button. The right button is simulated by pressing the META key and then the mouse button (eg. Apple logo on Mac).

Two button: The middle button is simulated by pressing the ALT key and then the LEFT mouse button.

Modes:

In order as they appear in the modes menu, the modes available are as follows (the letter in parenthisis is the keyboard shortcut):

Relation menu

The defined relations (classes) (except $RELATION and contain) will be listed on this drop-down menu after "All".

This menu selects which relation(s) the various modes will be applied to. For example, by selecting a specific relation an edge elision can be applied to only that relation, while if "All" is selected the elision would be applied to all relations.

Entity Class Menu

The defined entity classes (except $ENTITY) will be listed on this drop-down menu.

Currently this has only one use, for selecting the entity class for drawing new entities.


Group Selection and Changes

There are a number of options within the editor which are related to dealing with groups of entities. This section discusses how groups are selected and changed.

There is always one and only one group. Usually that group has no members. But, when a group is selected the entities in the group will be displayed with an X through the entity. If the entity is the key entity for the group, it will have a * drawn through it (actually the X in addition to a + drawm through the entity).


Implied Scheme of Landscape Editor

This section is only of interest to those generating TA to be viewed/edited with the lsedit tool.

The TA supplied to lsedit may or may not define an explicit scheme. However, irregardless of the scheme supplied, lsedit imposes a default scheme (schema), and has a specific interpretation of that scheme.

The equivalent of the following TA is pre-defined by lsedit:

SCHEME TUPLE :

$INHERIT ROOT_ENTITY $ENTITY

SCHEME ATTRIBUTE :

$ENTITY {
    color = (0.0 0.0 1.0) // Box color == blue
    x
    y
    width
    height
    label
    description
    elision
    outelision
    navlink
    views
}

$ROOT_ENTITY {
    reln_elided
    stumpmode = 1
}

$RELATION {
    color = (0.0 0.0 0.0) // Edge color == black
    label
}

FACT TUPLE :

$INSTANCE $ROOT $ROOT_ENTITY 

Interpretation of the Landscape Viewer Default Scheme

Attributes of $ENTITY:

Additional attributes of $ROOT_ENTITY:

These can be thought of as modelling global options of the editor.


Appendix A - Example TA files for use with 'C' language extractions

The following files are supplied in the lsedit distribution:


Appendix B - Miscellaneous Notes

Mouse buttons

Known bugs and problems