[kde-edu]: long - Rocs Core Redesign.
Tomaz Canabrava
tcanabrava at kde.org
Wed Sep 15 11:57:16 CEST 2010
Hello All,
While I think Rocs is a good application, it is a good application for it was
firstly designed, and now Wagner Reck ( the student that worked on rocs for
summer of code ) implemented a plugin system that made it able to show any
kind of data structure. this is very good since now it has a broader use, and
rocs was also used in another project, gluon, for the visual code builder.
But I think it needs a rethnk in the core lib and in the image lib for that.
Firsly I tougth of using the KGraphViewer but KGraphViewer only shows static
graphs and I already talked to the maintaner and he doesn't want to make it a
generic graph - visualization - builder program ( it's tigtly integrated with
Graphviz files and such, so anything that Graphviz can do, KGraphViewer will be
able to represent), and this is not the reason of existence of Rocs.
The current Core Architecture has the Plugin Interface, the DataStructure
interface and a few non-existant classes that have just the header file hanging
out to remember me to implement it.
What it is today:
Pointer - represents an arrow from an data to other data ( edge )
Datum - represents an data ( or a node )
DataType - it's a container that holds all data and pointers.
DataDocument - starts saves and loads DataStructure files.
PluginInterface - interface for other Graph-related structures.
The rework will just look at it's internals and change a few stuff, maintaining
compatibility will be easy because things are looking good. ( maybe get rid or
the thread management and do a better one ) but will implement a few more
classes.:
Core:
undosystem - undo and reado are still not working properly in rocs, =/
grouping - or subgraphs.
FileformatFactory - instead of plugins to manage file types, move them to the
core and use a factory to save - load their contents.
Plugins:
there's already Linked List and Graph plugins, but there's quite a few
more that are userful for a DataStructure class / programming class.
- Binary Tree
- AVL Tree
- Circular List
- Double Linked List
Visual Part:
Rocs is purely based on sinals from the core getting connected to graphics
in the ui , and the ui is updated when it needs to, quite fast as I shoewd in
the Edu Meeting in randa, but it can do so much more. I'm planning to make the
visual parte *beauty* and who kows, after I finish it, port Umbrello to use
RocsPart ;)
btw, is anyone maintaining umbrello?
Tomaz
More information about the kde-edu
mailing list