The App class owns an instance of Controller. The App class also has a Boot()
method, as well as a Shutdown() method.
The Controller is defined thus:
def __init__(self, app):
self.app = app
self.cmd_mgr = CommandManager(100)
The main app class **MainApp** is different to the App class in Pynsource \-
containing the main GUI handlers.
It points to a `umlcanvas` which is where all the fancy drawing is done, using
the wxPython GUI toolkit.
Here are some screenshots of what's possible to dra…
Most of the commands in Pynsource are wrapped in command objects, which have
an **execute** , undo and redo method.
This is a classic use of the Command design pattern.
These are diagrams from the GitHub repository of one of my other projects, Pynsource, a desktop UML app for Python.
This project has been going for 10+ years and is open source. It actually led to the creation of GitUML and shares parts of its Python parser.