Re: Graph Layout



http://mail.gnome.org/archives/gtk-app-devel-list/2002-May/msg00118.html
* From: Andy Tai <lichengtai yahoo com>
* Date: Tue, 14 May 2002 12:21:50 -0700 (PDT)
Graph layout is independent from what GUI toolkit you
use.  You can find pointers to many layout libraries
from this page

I am interested in taking up this offer.
It has been added to my project plan.

Please tell me, is there a standard GTK2 based api for graphs and such
:
here is my proposal :
 
GObject2 / GTK : this is the interface we need to script, and
 we can base those scripting interfaces on a standard. For example the
 GTK2 has a set of perl bindings in the works
 http://sourceforge.net/projects/gtk2-perl/
 
I think that the best way forward is to define a new API for Graphs,
and then start factoring the code from the app back underneath it.

Here are the classes that i would like to see :
 
1. application
2. diagram
3. element
4. connection
 
each of them will support the idea of multiple views, and
 controllers.
 each class will be derived from a "viewable" object and
 "controllable"
 object. They will be responsable for the updating of the views
 attached, and the dispatching of the changes, and the undoing.
 
and with "types"
 
1. application type
2. diagram type
3. element type
4. connection type
 
each type will allow a specialization of dias behaviour and the
subclassing of the application would allow for new versions of dia to
be  created. 
The types can of course be dynamic, and just support the ability to
save themselves to a file. So you can create a "prototype" out of an
instance, by drawing a element, and then converting that to a type. 
 
with the major relationships
 application has collection of diagrams
 diagram     has collection of elements
 diagram     has collection of connections
 connection  has a two elements
 connection-class has many instances, each pointing back
 element     has a collection of connections
 element     has a indirect collection of other elements associated
 element-class has many instances, each pointing back

 a view has many objects (applications diagrams, elements,
 connections)
 that are displayed.
 a controller is connected to a object and dispatches messages to them
 a message can be applied and undone. The resulting change to the
 object
 can be undone my a memozation of the objects state before the change
 was made.
 
the next step will be to allow this data to be accessed via the
 redland/raptor api. That will also get a similar API as the system.
 Then you can directly query the dataset via the rdf model.
 
In fact, the VCG model translates directly onto rdf, where a
connection becomes a statement in rdf. 
 
These simple interfaces would be contain all the code from the GUI
that is needed to do all the work.
 
When the API is finished, i can then present it to you, and we can
start cutting out the code from VCG and shifting it into this new
model.

mike

=====
James Michael DuPont
http://introspector.sourceforge.net/

__________________________________________________
Do you Yahoo!?
Yahoo! Mail Plus - Powerful. Affordable. Sign up now.
http://mailplus.yahoo.com



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]