Java Swing paint application demonstrating principles of Clean Code and Design Patterns (MVC, Adapter, Command, Observer, Strategy, Prototype))