# Class PluginEvent<T>

java.lang.Object
com.codename1.ui.events.ActionEvent
com.codename1.plugin.event.PluginEvent<T>

Direct Known Subclasses:
  `IsGalleryTypeSupportedEvent, OpenGalleryEvent`

public abstract class PluginEvent<T> extends ActionEvent

Parent class for all plugin events. Plugin events are fired by the Codename One runtime to give plugins an opportunity to override the implementation of certain core methods.

For example, the `OpenGalleryEvent` is fired when the `Display#openGallery()` method is called. This event will be passed to registered plugins, which can choose to "consume" the event and override the behaviour.

If a plugin wishes to handle the event, it should call `#consume()` on the event to prevent Codename One from proceeding to handle the request itself.

Events that require a synchronous return value should call the `#setPluginEventResponse(Object)` method with the return value. `#setPluginEventResponse(Object)` calls `#consume()`, so you do not need to call both of these methods.

- ## Nested Class Summary

  ### Nested classes/interfaces inherited from class ActionEvent

  `ActionEvent.Type`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `PluginEvent(Object source, ActionEvent.Type type)`
  Creates a new plugin event with the given source and type.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `T`
  `getPluginEventResponse()`
  Gets the response to the event.
  `void`
  `setPluginEventResponse(T response)`
  Sets the return value of processing the event.

  ### Methods inherited from class ActionEvent

  `consume, getActualComponent, getCommand, getComponent, getDraggedComponent, getDropTarget, getEventType, getKeyEvent, getProgress, getSource, getX, getY, isConsumed, isLongEvent, isPointerPressedDuringDrag, setPointerPressedDuringDrag`

  ### Methods inherited from class Object

  `clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### PluginEvent

    public PluginEvent(Object source, ActionEvent.Type type)

    Creates a new plugin event with the given source and type.

    ###### Parameters

    - `source`: The source of the event. May be null.

    - `type`: @param type The type of the event. All PluginEvent classes should have a corresponding enum type in the `Type` enum.

- ## Method Details

  - ### getPluginEventResponse

    public T getPluginEventResponse()

    Gets the response to the event. This will be null if the event has not been consumed.

    ###### Returns

    The result of processing the event.

  - ### setPluginEventResponse

    public void setPluginEventResponse(T response)

    Sets the return value of processing the event. This method calls `#consume()`, so you don't need to call both to consume the event and set the response.

    ###### Parameters

    - `response`