Class AbstractHandler

java.lang.Object
org.eclipse.core.commands.common.EventManager
org.eclipse.core.commands.AbstractHandler
All Implemented Interfaces:
IHandler, IHandler2
Direct Known Subclasses:
AbstractEnabledHandler, AbstractHandlerWithState, ActionHandler, CloseHelpTrayHandler, CollapseAllHandler, CompareWithOtherResourceHandler, DebugCommandHandler, ExpandAllHandler, FileBufferOperationHandler, FilteredTableBaseHandler, MarkerViewHandler, MergeActionHandler, NewPropertySheetHandler, ShowInHandler, ShowPerspectiveHandler, ShowViewHandler, SplitHandler, TextZoomInHandler, TextZoomOutHandler, WorkbenchEditorsHandler

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().

Since:
3.1
  • Constructor Details

    • AbstractHandler

      public AbstractHandler()
  • Method Details

    • addHandlerListener

      public void addHandlerListener(IHandlerListener handlerListener)
      Description copied from interface: IHandler
      Registers an instance of IHandlerListener to listen for changes to properties of this instance.
      Specified by:
      addHandlerListener in interface IHandler
      Parameters:
      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.
    • dispose

      public void dispose()
      The default implementation does nothing. Subclasses who attach listeners to other objects are encouraged to detach them in this method.
      Specified by:
      dispose in interface IHandler
    • 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 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);".

      Parameters:
      handlerEvent - the event describing changes to this instance. Must not be null.
    • 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 overriding setEnabled(Object) so they can be notified about framework execution contexts.
      Specified by:
      isEnabled in interface IHandler
      Returns:
      true
      See Also:
    • setBaseEnabled

      protected void setBaseEnabled(boolean state)
      Allow the default 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.
      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 interface IHandler2
      Parameters:
      evaluationContext - the application context. May be null
      Since:
      3.4
      See Also:
    • isHandled

      public boolean isHandled()
      Whether this handler is capable of handling delegated responsibilities at this time. Subclasses may override this method.
      Specified by:
      isHandled in interface IHandler
      Returns:
      true
    • 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 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() ||".

      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 of IHandlerListener listening for changes to properties of this instance.
      Specified by:
      removeHandlerListener in interface IHandler
      Parameters:
      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.