Class AbstractHandler
- java.lang.Object
-
- org.eclipse.core.commands.common.EventManager
-
- org.eclipse.core.commands.AbstractHandler
-
- Direct Known Subclasses:
AbstractHandler
,AbstractHandlerWithState
,ActionHandler
,CollapseAllHandler
,DebugCommandHandler
,ExpandAllHandler
,FileBufferOperationHandler
,MarkerViewHandler
,MergeActionHandler
,NewPropertySheetHandler
,ShowPerspectiveHandler
,ShowViewHandler
,TextZoomInHandler
,TextZoomOutHandler
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 callfireHandlerChanged(HandlerEvent)
when the handler changes. Subclasses can also overrideisEnabled()
andisHandled()
.- Since:
- 3.1
-
-
Constructor Summary
Constructors Constructor Description AbstractHandler()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addHandlerListener(IHandlerListener handlerListener)
Registers an instance ofIHandlerListener
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 ofIHandlerListener
listening for changes to properties of this instance.protected void
setBaseEnabled(boolean state)
Allow the defaultisEnabled()
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.-
Methods inherited from class org.eclipse.core.commands.common.EventManager
addListenerObject, clearListeners, getListeners, isListenerAttached, removeListenerObject
-
-
-
-
Method Detail
-
addHandlerListener
public void addHandlerListener(IHandlerListener handlerListener)
Description copied from interface:IHandler
Registers an instance ofIHandlerListener
to listen for changes to properties of this instance.- Specified by:
addHandlerListener
in interfaceIHandler
- Parameters:
handlerListener
- 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.
-
dispose
public void dispose()
The default implementation does nothing. Subclasses who attach listeners to other objects are encouraged to detach them in this method.
-
fireHandlerChanged
protected void fireHandlerChanged(HandlerEvent handlerEvent)
Fires an event to all registered listeners describing changes to this instance.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
inorg.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);
".- Parameters:
handlerEvent
- the event describing changes to this instance. Must not benull
.
-
isEnabled
public boolean isEnabled()
Whether this handler is capable of executing at this time. Subclasses may override this method. If clients override this method they should also consider overridingsetEnabled(Object)
so they can be notified about framework execution contexts.- Specified by:
isEnabled
in interfaceIHandler
- Returns:
true
- See Also:
setEnabled(Object)
,setBaseEnabled(boolean)
-
setBaseEnabled
protected void setBaseEnabled(boolean state)
Allow the defaultisEnabled()
to answer our enabled state. It will fire a HandlerEvent if necessary. If clients use this method they should also consider overridingsetEnabled(Object)
so they can be notified about framework execution contexts.- Parameters:
state
- the enabled state- Since:
- 3.4
-
setEnabled
public 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. Clients may override if they need to extract information from the application context.- Specified by:
setEnabled
in interfaceIHandler2
- Parameters:
evaluationContext
- the application context. May benull
- Since:
- 3.4
- See Also:
setBaseEnabled(boolean)
-
isHandled
public boolean isHandled()
Whether this handler is capable of handling delegated responsibilities at this time. Subclasses may override this method.
-
hasListeners
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
inorg.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() ||
".- Returns:
- true iff there is one or more IHandlerListeners attached to this AbstractHandler
-
removeHandlerListener
public void removeHandlerListener(IHandlerListener handlerListener)
Description copied from interface:IHandler
Unregisters an instance ofIHandlerListener
listening for changes to properties of this instance.- Specified by:
removeHandlerListener
in interfaceIHandler
- Parameters:
handlerListener
- 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.
-
-