Abstract
Project Overview
Goals and Objectives
The goal of this project is to design and implement a generic, portable, and efficient abstraction for displaying and transforming graphical figures.
Approach
To accomplish our goals we first designed a hard coded tree editor. The program was written using C++. I endeavored to give it a good object-oriented design so that its components could be easily subclassed to suit the user's needs. It was designed for speed at the price of memory requirements and contains many innovations to enhance its performance. To make it portable between platforms I used a portable GUI toolkit called wxWindows.
wxWindows is a platform independent class library for C++ for providing a graphical user interface (GUI). Using this package for the development of this project allows it to run in the MS-Windows, Motif, and Open Look environments. In addition, Macintosh, OS/2, Xt, and even Curses ports are in progress that will give the project a wide usability base. The wxWindows package is being developed at the Artificial Intelligence Applications Institute at the University of Edinburgh by Julian Smart. wxWindows is available by anonymous ftp at ftp.aiai.ed.ac.uk. While the wxWindows package is completely usable in its current state, it is also currently in development, and each new release provides more useful features for this project. It is currently in release 1.66 and generally compiles and installs without any problems.
The design of the tree editor helped us pin down the interactions between nodes in a tree when constructing and editing it. The next step toward fulfilling our goals was to specify a grammar that abstractly defined these interactions.
Once the grammar was specified, the final step to complete our goal was to define the grammar rules necessary for tree and graph editing. For any visual graph representation there are two sets of grammar rules that must be defined, the graphical layout rules and the internal data structure rules.
Project Proposal:
The presentation for the report is available as a Powerpoint presentation. The presentation has been split into two disks which include a Powerpoint viewer. Disk 1 (1268k) Disk 2 (151k)
Screen shot
Java applet demo
While the real program was written in C++, you can try out a Java Applet Demo of the program if you're interested in seeing how it works. Note: You must have a Java 1.1 enabled browser to use this demo.
Source code
The source code for the hard-coded version of the editor (mentioned above) is available, packaged for appropriate platforms.
Binary executables
Compiled executable versions of the hard-coded editor are availale in various formats.
Necessary libraries