Graph Editing Framework 

          Overview

          The UCI Graph Editing Framework is a library of Java classes that make it easier to develop new applications that involve diagram editing and connected graph editing.

          The editor supports basic diagram editing options as drawing lines, rectangles, circles, and text. The objects can be selected, moved, deleted. The editor offers a possibility to change the colors of the objects, as well as to change the text font.

          The real merit of the GEF is that it also supports connected graph editing. Each node in the graph is a composite object, which has several ports which are the inputs or outputs of a node. New nodes can be created graphicaly.

          GEF structure

          The design of the GEF consists of clearly decoupled layers such as:

        • Diagram Level - contains the graphical objects ( lines, circles, text etc.) that the user uses and manipulates.
        • Net Level - represents connected graph relationships for use in the user interface.
        • Appliction Level - represents the application specific objects and relationships.
        • The connection between each two layers is established using the Observer/ Obserable pattern.

          GEF basic concepts

          The main concepts in the framework are:

        • Editor - a shell that passes the events to Modes, executes Actions, displays Layers, and manage Selections.
        • Layer - is a drawing layer. New layers can be easily introduced by subclassing the Layer class.
        • Selection - selections allow manipulation of specific DiagramElemet.
        • Mode - modes interpret user input based on context and instanciate Actions. Chanching the code in the Modes allows new interactions to be added without changing the Editor.
        • Action - Actions are instanciated in various places such as Mode event handlers, and are executed in the Editor. Placing code in Actions allows new commands to be added without changing the Editor.
        • Applications developed on top of GEF

          Argo

          Argo is a Software Architecture Design Environment for C2 style software architectures. The nodes in the graph are software components, with a certain interface. As the graph, i.e. the software architecture is build, a list of advices for the architect, as well as short description of the issues that he/she must address is presented in a separate To Do List window.

          WebFlow front end

          The front end of the WebFlow is a visual authoring tool for computational dataflow graphs by integrating the existing software modules in the public domain. The nodes in the graph are modules that are supported by WebFlow system, with inputs and outputs represented as ports. The application supports authoring of computational graphs and their execution. The results of the execution can be followed through the viewers, which are special modules for visualization of the data traffic in the graph.
           

        • GEF v05 Demos
        • GEF v05 Documentation
        • GEF API

        •