[kplato] Moving Forward

Thomas Zander kplato@kde.org
Sun, 1 Jul 2001 20:16:12 +0200


--M9NhX3UHpAaciwkO
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

> On the details front there are currently two sets of psedo-code available,
> the data dictionary on the kplato site, and the header files created by John
> Lamb at http://www.btinternet.com/~uyea/
>
> I think it's about time to start integrating these, and work on defining the
> primitive operations for our classes.  Anybody want to volunteer to start?
>
 
Right, guess what I just spent half my sunday doing ;)
 
I just put this into CVS (koffice/kplato) But I also attached a tar for 
convinience.
 
I re-examened all the texts and John D Lamb-s header files all came to the 
conclusion that a full data model was specified by reading between a lot of lines.
Basically I did just that.
 
I used programming styles native to KOffice if you are unfamiliar here are the
biggest changes from the norm;
- member variables have a name starting with m_
- there are methods in the name of member variables, this means _without_ the
  normal get. (Ask QT why they did that, we are following practice ;)
- class names start with a project identifier. I choose KPT (KDE Planning Tool)
- filenames are always completely lowercase
 
Ok, short rundown;
- we have a KPTNode, an abstract class which represents the various nodes.
- we have KPTProject, KPTTask and KPTMilestone which implement the node class.
 
- We have KPTResource for resource management, including some basic thoughts
  on planning those resources. (Working hours/appointments-list etc.)
- We have a KPTRisk which links the node and the resource, so we can attach
  a number of resources to a task/project and give that a risk.
 
- The nodes have a list of children for the hierarchical structure of
  tasks/subtasks etc.
- The nodes have a list of other nodes which depend on it for their own
  start/completion times.
  This is done in such a way that a node can depend on 0 or more nodes
  for the completion/starting times. (and the other way around)
 
Last; I did not even try to make this compile, it probably contains typos
and other mistakes, but I'm out of time for this weekend ;)
 
For the non-technical people; this is the basic data-model, it specifies
what object has which intelligence, and links to which other objects.
 
The logic to let these work together will have to be implemented in
another place.
 
Feel free to comment, sent patches, burn me to the ground and basically
get things going.

-- 
Thomas Zander                                            zander@earthling.net
The only thing worse than failure is the fear of trying something new

--M9NhX3UHpAaciwkO
Content-Type: application/x-gtar
Content-Disposition: attachment; filename="kplato-data-classes.tgz"
Content-Transfer-Encoding: base64

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
uOKKK6644oorrrjiiiuuuJIr/wP+O5K8AKAAAA==

--M9NhX3UHpAaciwkO--