public abstract class AbstractHandler extends EventManager implements IHandler2
This class is a partial implementation of IHandler
. This
abstract implementation provides support for handler listeners. You should
subclass from this method unless you want to implement your own listener
support. Subclasses should call
fireHandlerChanged(HandlerEvent)
when the handler
changes. Subclasses can also override isEnabled()
and
isHandled()
.
Constructor and Description |
---|
AbstractHandler() |
Modifier and Type | Method and Description |
---|---|
void |
addHandlerListener(IHandlerListener handlerListener)
Registers an instance of
IHandlerListener to listen for
changes to properties of this instance. |
void |
dispose()
The default implementation does nothing.
|
protected void |
fireHandlerChanged(HandlerEvent handlerEvent)
Fires an event to all registered listeners describing changes to this
instance.
|
protected boolean |
hasListeners()
Returns true iff there is one or more IHandlerListeners attached to this
AbstractHandler.
|
boolean |
isEnabled()
Whether this handler is capable of executing at this time.
|
boolean |
isHandled()
Whether this handler is capable of handling delegated responsibilities at
this time.
|
void |
removeHandlerListener(IHandlerListener handlerListener)
Unregisters an instance of
IHandlerListener listening for
changes to properties of this instance. |
protected void |
setBaseEnabled(boolean state)
Allow the default
isEnabled() to answer our enabled state. |
void |
setEnabled(Object evaluationContext)
Called by the framework to allow the handler to update its enabled state
by extracting the same information available at execution time.
|
addListenerObject, clearListeners, getListeners, isListenerAttached, removeListenerObject
public void addHandlerListener(IHandlerListener handlerListener)
IHandler
IHandlerListener
to listen for
changes to properties of this instance.addHandlerListener
in interface IHandler
handlerListener
- the instance to register. Must not be null
. If
an attempt is made to register an instance which is already
registered with this instance, no operation is performed.public void dispose()
protected void fireHandlerChanged(HandlerEvent handlerEvent)
Subclasses may extend the definition of this method (i.e., if a different
type of listener can be attached to a subclass). This is used primarily
for support of AbstractHandler
in
org.eclipse.ui.workbench
, and clients should be wary of
overriding this behaviour. If this method is overridden, then the first
line of the method should be "super.fireHandlerChanged(handlerEvent);
".
handlerEvent
- the event describing changes to this instance. Must not be
null
.public boolean isEnabled()
setEnabled(Object)
so they can be notified
about framework execution contexts.isEnabled
in interface IHandler
true
setEnabled(Object)
,
setBaseEnabled(boolean)
protected void setBaseEnabled(boolean state)
isEnabled()
to answer our enabled state. It
will fire a HandlerEvent if necessary. If clients use this method they
should also consider overriding setEnabled(Object)
so they can
be notified about framework execution contexts.state
- the enabled statepublic void setEnabled(Object evaluationContext)
setEnabled
in interface IHandler2
evaluationContext
- the application context. May be null
setBaseEnabled(boolean)
public boolean isHandled()
protected boolean hasListeners()
Returns true iff there is one or more IHandlerListeners attached to this AbstractHandler.
Subclasses may extend the definition of this method (i.e., if a different
type of listener can be attached to a subclass). This is used primarily
for support of AbstractHandler
in
org.eclipse.ui.workbench
, and clients should be wary of
overriding this behaviour. If this method is overridden, then the return
value should include "super.hasListeners() ||
".
public void removeHandlerListener(IHandlerListener handlerListener)
IHandler
IHandlerListener
listening for
changes to properties of this instance.removeHandlerListener
in interface IHandler
handlerListener
- the instance to unregister. Must not be null
.
If an attempt is made to unregister an instance which is not
already registered with this instance, no operation is
performed.
Copyright (c) 2000, 2018 Eclipse Contributors and others. All rights reserved.Guidelines for using Eclipse APIs.