Abstract:
The visual programming language Forms/3 currently uses a graphical user
interface implemented in Garnet. Garnet was developed by the User Interface
Software Group in the Human Computer Interaction Institute at Carnegie
Mellon University, but is no longer supported. This paper presents an
implementation of a user interface for Forms/3 written in Java. In addition to
the implementation it also discusses the Model/View/Controller architecture
used, the asynchronous socket traffic required for communication with the
underlying Lisp engine, and a few design patterns found helpful in the
implementation.
Description:
Title page ................................................................................................................ 1
Abstract ................................................................................................................... 2
Table of Contents .................................................................................................. 3
Acknowledgments ............................................................................................... 4
1. Background ........................................................................................................ 5
1.1 Visual Programming Languages in general ..................................... 5
1.1.1 Forms/3 ........................................................................................... 5
1.2 Motivation ............................................................................................... 5
2. Design Decisions ............................................................................................... 8
2.1 The Model/View/Controller Pattern ................................................. 8
2.2 Preserving the Existing Lisp Architecture ......................................... 11
2.3 Asynchronous Socket Traffic ............................................................... 11
2.4 Design Patterns ........................................................................................ 12
3. Implementation ............................................................................................... 15
3.1 The Forms3 class .................................................................................... 15
3.2 View-Model Communication ............................................................. 16
3.3 The Forms ................................................................................................ 18
3.4 The Controller - class FormDrawWindow ....................................... 21
3.5 The Referenceable Object (RO) Hierarchies ...................................... 22
3.5.1 the cached RO model .................................................................... 23
3.5.2 the RO view .................................................................................... 25
3.6 Other Objects ........................................................................................... 29
3.6.1 Matrix regions ................................................................................ 29
3.6.2 Dycons .............................................................................................. 30
3.6.3 Arrows ............................................................................................. 32
3.6.4 class Global ...................................................................................... 32
3.6.5 ROFactory ........................................................................................ 33
3.6.6 Dialogs ............................................................................................. 34
3.7 Java Containers, Inheritance, and Casting ....................................... 34
4. Summary .......................................................................................................... 36
5. Future Work .................................................................................................... 37
6. Appendices ....................................................................................................... 38
Appendix A .................................................................................................. 38
Appendix B ................................................................................................... 41
Appendix C ................................................................................................... 54
Appendix D .................................................................................................. 56
7. References ........................................................................................................ 58