The GUI Layer
LPUIController is our central controller which also happens to be the NSApplication delegate. It holds references to all the main GUI controllers of the application.
Most of the classes in the GUI (be it controllers or views) are directly tied to objects in our Objective-C Model Layer through one or several of the following methods: cocoa bindings, key-value observing and/or coding, cocoa notifications or some delegation pattern as traditionally employed in cocoa.
Since high-level overviews are better conveyed through diagrams, and since the details that are omitted in those diagrams are easily clarified by consulting the source code for the involved classes, the remainder of this document will be mostly filled with diagrams and only short discussions of the subjects where deemed absolutely necessary.