GUI Commands is a comprehensive command framework for Swing user interface applications. GUI Commands functionality over Swing's standard Actions. With GUI Commands it is simple to alter appearance of commands based on the context in which they appear. The library also supports platform specific conventions allowing you to write one configuration that will be adapted to the underlying platform. Command groups provided sophisticated support for menus and toolbars. Groups are configured from simple configuration files and can be easily manipulated at runtime using their builder APIs. Many features are provided to simplify UI development including pre-built commands for closing windows, opening and saving files, or showing a recent file list. There are also framework features such as delegating commands and swing worker integration. Delegating commands allow you to easily customize the behavior of a command based on the user's current context. The library includes a focus based delegation strategy that can be activated in a few lines of code. The SwingWorker integration similarly makes it simple to activate the glass pane and disable the command while the background task is running. The API strives to remain simple while supporting powerful features out of the box. Care has been takes to ensure the library scales from small independant to large scale corporate projects. Much of the library's appeal is that it provides many convenience functions and commands to simplify the life of the developer. As an example, you can always retrieve the window of the invoking button using getInvokerWindow(); the command takes care of traversing any popup menu hierarchies. HoverListeners allow you to display the details of any hovered command in a few lines of code. The CommandHyperlinkListener makes it simple to activate commands from hyperlinks in JEditorPanes.