Architecture overview

This page intends to explain the internal architecture of Timeline on a high level.

This page includes diagrams of some of the classes in Timeline. They can remind you of how classes work, but they are not intended to fully explain the code.

GUI classes

_images/classes-gui-overview.png

Drawing

_images/classes-drawing.png

For the purpose of making testing easier we try to divide gui-components in two parts: the GUI class itself and another class, the controller, containing the ‘business’ logic. The goal is to have no ‘business’ logic at all in the GUI class. It should only have simple gui actions.

Another design decision for the purpose of making testing easier is to inject objects into the constructor of a class. This can be seen here when the DrawingArePanel creates its controller, the DrawingArea, it passes the drawer object in the constructor, get_drawer().

Startup

_images/classes-startup.png