# GUI Commands Change History

## Version 2.1

### New Features

- New annotions for creating and binding ActionCommands and SwingWorkerCommands from regular methods. The new annotations are processed using GuiCommands.bindAnnotatedCommands(..).
- New DEBUG mode for command groups that shows missing members. The debug mode is activated by specifying the system property `com.pietschy.command.debugGroups=true`.
- New support for DelegatingToggleCommands and DelegatingToggleGroups.
- New converter utility for converting old 1.1.x configuration files to the new 2.x format.

### Changes

- Added ActionCommand.getContainerProperty() convenience method for retrieving CommandContainer properties.
- Added ActionCommand.addContainerPropertyListener() methods to monitor container properties in a manner similar to standard property changes listeners.
- Command Ids can not longer contain spaces. This allows improved error checking in group member specifications.
- ActionCommandExcecutor now exends Identifiable to simplify usage of delegates.
- Renamed ToggleCommandGroup to ToggleGroup.
- Renamed DelegateContainer to DelegateProvider to avoid confusion with CommandContainers.
- Updated DefaultDelegateMediator and FocusTrackingDelegateMediator to allow the direct addition of delegates without having to provide a DelegateProvider.
- Fixed case where delegate could find themselves as the delegate to use.
- Added DelegateProviderSupport to assist in implemention DelegateProvider without having to use a CommandContainer.
- Added SwingWorkerCommand finished(..), failed(..) and cancelled(..) convenience methods.
- Deprecated SwingWorkerCommand.WorkingMode and replaced it with boolean properties `disableWhileWorking` and `activateGlassPane`.
- Updated CommandHyperLinkListener to also accept a list of commands instead of just a CommandContainer instance.
- Deprecated HoverManager.getInstanceFor(Window) and replaced it with GuiCommands.getHoverManagerFor(Window) to make it easier to find.
- Changes to ReflectionCommand including moving to new package 'reflection' as well as adding ArgumentProvider and ExceptionHandler interfaces for abstracting argument and exception handling.
- Added getters on ReflectionCommand for the target object and method.
- Refactored CommandGroup package.
- Made Command.getButtonFactory() and associated methods protected to avoid confusion on how to create a buttons.
- Various configuration parser cleanups.
- Javadoc and build updates in preparation for the source code license.
- Improvements to the User Guide including support for online searching.
- Cleaned up demo and added more comments.

### Bug Fixes

- Fixed bug where faces were not removing listeners when they were re-parented.
- Fixed issues with not being able to change the standard drop down icon for groups in DefaultFaceRenderer.
- Fixed spelling in RenderContext.isFirstMember().
- Removed duplicate copy of Defaults object.

## Version 2.0

- Initial Release