Provides support for bindings between commands and various user input events (e.g., keyboard shortcuts).

## Package Specification

This package provides the common classes and abstract classes required to provide binding support.

All the real work in this package is carried out by the `BindingManager`, and most work with bindings can be carried out directly with it. The binding manager manages a collection of bindings, and decides which bindings are active at any point in time. By changes the various properties of the manager, the active bindings will change. The binding manager implements a caching scheme that is optimized for an infreqeuntly changing set of bindings, but frequently changing properties.

The binding manager also manages schemes. A scheme is a grouping of bindings. To create a scheme, use `BindingManager.getScheme(String)`. The scheme must then be defined before it can be used.

If you wish to implement your own type of binding, then you must subclass `Trigger` and `TriggerSequence`. Then, simply use these subclasses with the `BindingManager`.