Class Context
- All Implemented Interfaces:
Comparable
,IIdentifiable
A context is an answer to the question "when". Other services can listen for the activation and deactivation of contexts, and change their own state in response to these changes. For example, Eclipse's key binding service listens to context activation and deactivation to determine which key bindings should be active.
An instance of this interface can be obtained from an instance of
ContextManager
for any identifier, whether or not an context
with that identifier is defined in the extension registry.
The handle-based nature of this API allows it to work well with runtime
plugin activation and deactivation. If a context is defined, that means that
its corresponding plug-in is active. If the plug-in is then deactivated, the
context will still exist but it will be undefined. An attempts to use an
undefined context will result in a NotDefinedException
being
thrown.
This class is not intended to be extended by clients.
- Since:
- 3.1
- See Also:
-
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
Modifier and TypeMethodDescriptionfinal void
addContextListener
(IContextListener listener) Registers an instance ofIContextListener
to listen for changes to properties of this instance.final int
final void
Defines this context by giving it a name, and possibly a description and a parent identifier as well.final String
Returns the identifier of the parent of this instance.final void
removeContextListener
(IContextListener contextListener) Unregisters an instance ofIContextListener
listening for changes to properties of this instance.final String
toString()
The string representation of this context -- for debugging purposes only.final void
undefine()
Makes this context 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
-
Method Details
-
addContextListener
Registers an instance ofIContextListener
to listen for changes to properties of this instance.- Parameters:
listener
- the instance to register. Must not benull
. If an attempt is made to register an instance which is already registered with this instance, no operation is performed.
-
compareTo
- Specified by:
compareTo
in interfaceComparable
-
define
Defines this context by giving it a name, and possibly a description and a parent identifier as well. The defined property automatically becomes
true
.Notification is sent to all listeners that something has changed.
- Parameters:
name
- The name of this context; must not benull
.description
- The description for this context; may benull
.parentId
- The parent identifier for this context; may benull
.
-
getParentId
Returns the identifier of the parent of this instance.Notification is sent to all registered listeners if this property changes.
- Returns:
- the identifier of the parent of this instance. May be
null
. - Throws:
NotDefinedException
- if this instance is not defined.
-
removeContextListener
Unregisters an instance ofIContextListener
listening for changes to properties of this instance.- Parameters:
contextListener
- the instance to unregister. Must not benull
. If an attempt is made to unregister an instance which is not already registered with this instance, no operation is performed.
-
toString
The string representation of this context -- for debugging purposes only. This string should not be shown to an end user.- Specified by:
toString
in classHandleObject
- Returns:
- The string representation; never
null
.
-
undefine
public final void undefine()Makes this context become undefined. This has the side effect of changing the name, description and parent identifier tonull
. Notification is sent to all listeners.- Specified by:
undefine
in classHandleObject
-