[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