Graphical Programming and
Structure Editing Framework
About GPSE
The GPSE (graphical programming & structure editing) framework targets at easing the definition, implementation and integration of data-specific (graphical) editors. It is based on a new OO-technique named Directly-Linked-ViewAndEdit (DLVaE) for handling interactions between data and graphic objects, including editing-possibilities. The DLVaE concept is synthesized from a newly introduced design pattern as well as from numerous existing ones. In contrast to the usual Model-View-Control (MVC) paradigm it easily allows an abitrary number of visualisations/editors according to a model. In this context it guarantees, and not just enables, the simultaneity of changes. Changes occur fluent and are not managed with separated generating steps which are common in most MVC-implemented IDEs (e.g. sourcecode is generated from UML-diagrams). Furthermore any overlapping of the different (editable) views can be selected. So for each model-detail a switch-over to a more comfortable view is possible at any time. If an appropriate view/editor is not available, it can be implemented and added, then becoming useable for all (suitable) data models. In addition, high-order edit-functionalities like cut-copy-paste, undo-redo etc. can be defined just on one view without any knowledge of the underlying data, carrying on the WYSIWYG-principle. This is almost impossible with MVC. If a new data model is applied to a so-called view-and-edit, the functionalities are automatically inherited by the model and all other view(-and-edit)s of that model (e.g. a cut-copy-paste implemented for one view works on the model and the other views). This and the fact, that a new data model can be quickly adapted and attached to existing views, brings an improved reuse of implemented components. The advantages of DLVaE reveal most when dealing with visualising/manipulating highly structured data or having more than one view for a model.

The current gp-version (v0.1), implemented in JavaTM, includes a model for syntax trees of generic OO-programs. The framework offers four configurable, an immutable text-based and three editable graphic-based, visualisations, that suit the task of imperative programming or similar tasks. The only OO-concept that lacks a graphical counterpart is dereferencing, but this is under development. Obfuscation is a disadvantage of many graphical systems. This is annihilated by making the three graphic views dynamic or somewhat browser-like, so the user is not stunned by 'seeing everything in one picture'. She/he is instead able to focus on objects of interest. The existing visualisations have been configured and new data models have been implemented for two additional prototypes: a RNA (ribonucleic acid) analyse tool and an editor that allows to define the valid input format for a multi modal system (see screenshots).

Features such as auto-mapping initial view(-and-edit)s to a model or graphical methods for specifiying a syntax (maybe XML) to interchange data are further aspects that arise from the DLVaE-technique. There are also plans to augment the editor catalogue with a 3D-editor, a generic graph editor (spiderweb) and an editable text editor that does otf-parsing. First tests on adapting standard GUI widgets (AWT, Swing) to DLVaE have also been successful. More on these topics can be found on the project page.