Package org.eclipse.jface.bindings

## Class Scheme

- java.lang.Object
- - org.eclipse.core.commands.common.EventManager
  - - org.eclipse.core.commands.common.HandleObject
    - - org.eclipse.core.commands.common.NamedHandleObject
      - - org.eclipse.jface.bindings.Scheme

All Implemented Interfaces:
  `Comparable`, `IIdentifiable`

    public final class Scheme
    extends NamedHandleObject
    implements Comparable

An instance of `IScheme` is a handle representing a binding scheme as defined by the extension point `org.eclipse.ui.bindings`. The identifier of the handle is the identifier of the scheme being represented.

An instance of `IScheme` can be obtained from an instance of `ICommandManager` for any identifier, whether or not a scheme with that identifier is defined in the plugin registry.

The handle-based nature of this API allows it to work well with runtime plugin activation and deactivation. If a scheme is defined, that means that its corresponding plug-in is active. If the plug-in is then deactivated, the scheme will still exist but it will be undefined. An attempt to use an undefined scheme will result in a `NotDefinedException` being thrown.

This class is not intended to be extended by clients.

Since:
  3.1
See Also:
  `ISchemeListener`, `CommandManager`

### Field Summary

### Fields inherited from class org.eclipse.core.commands.common.NamedHandleObject

`description, name`

### Fields inherited from class org.eclipse.core.commands.common.HandleObject

`defined, id, string`

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `addSchemeListener​(ISchemeListener schemeListener)` Registers an instance of `ISchemeListener` to listen for changes to attributes of this instance.
`int` `compareTo​(Object object)`
`void` `define​(String name, String description, String parentId)` Defines this scheme by giving it a name, and possibly a description and a parent identifier as well.
`String` `getParentId()` Returns the identifier of the parent of the scheme represented by this handle.
`void` `removeSchemeListener​(ISchemeListener schemeListener)` Unregisters an instance of `ISchemeListener` listening for changes to attributes of this instance.
`String` `toString()` The string representation of this command -- for debugging purposes only.
`void` `undefine()` Makes this scheme become undefined.

### Methods inherited from class org.eclipse.core.commands.common.NamedHandleObject

`getDescription, getName`

### Methods inherited from class org.eclipse.core.commands.common.HandleObject

`equals, getId, hashCode, isDefined`

### Methods inherited from class org.eclipse.core.commands.common.EventManager

`addListenerObject, clearListeners, getListeners, isListenerAttached, removeListenerObject`

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

### Method Detail

#### addSchemeListener

    public final void addSchemeListener​(ISchemeListener schemeListener)

Registers an instance of `ISchemeListener` to listen for changes to attributes of this instance.

Parameters:
  `schemeListener` - the instance of `ISchemeListener` to register. Must not be `null`. If an attempt is made to register an instance of `ISchemeListener` which is already registered with this instance, no operation is performed.

#### compareTo

    public final int compareTo​(Object object)

Specified by:
  `compareTo` in interface `Comparable`

#### define

    public final void define​(String name,
                             String description,
                             String parentId)

Defines this scheme by giving it a name, and possibly a description and a parent identifier as well. The defined property for the scheme automatically becomes `true`.

Notification is sent to all listeners that something has changed.

Parameters:
  `name` - The name of this scheme; must not be `null`.
  `description` - The description for this scheme; may be `null`.
  `parentId` - The parent identifier for this scheme; may be `null`.

#### getParentId

    public final String getParentId()
                             throws NotDefinedException

Returns the identifier of the parent of the scheme represented by this handle.

Notification is sent to all registered listeners if this attribute changes.

Returns:
  the identifier of the parent of the scheme represented by this handle. May be `null`.
Throws:
  `NotDefinedException` - if the scheme represented by this handle is not defined.

#### removeSchemeListener

    public final void removeSchemeListener​(ISchemeListener schemeListener)

Unregisters an instance of `ISchemeListener` listening for changes to attributes of this instance.

Parameters:
  `schemeListener` - the instance of `ISchemeListener` to unregister. Must not be `null`. If an attempt is made to unregister an instance of `ISchemeListener` which is not already registered with this instance, no operation is performed.

#### toString

    public final String toString()

The string representation of this command -- for debugging purposes only. This string should not be shown to an end user.

Specified by:
  `toString` in class `HandleObject`
Returns:
  The string representation; never `null`.

#### undefine

    public final void undefine()

Makes this scheme become undefined. This has the side effect of changing the name, description and parent identifier to `null`. Notification is sent to all listeners.

Specified by:
  `undefine` in class `HandleObject`