MDIFramework (http://freshmeat.net/projects/mdiframework) provides a ready-to-use architecture to ease the creation MDI-style applications in Java. It takes care of the overall architecture of the main window of the application, with a tabbed architecture, the presence of an HTML printable message area, and so on. It provides a generic API to manage lengthy actions, keeping the interface responsive, and taking care that actions are performed one at a time, without having to bother about it. It can add metadata to already opened files. It manages loading and unloading of external plugins at runtime.