# Class PartEventAction

java.lang.Object
org.eclipse.core.commands.common.EventManager
org.eclipse.jface.action.AbstractAction
org.eclipse.jface.action.Action
org.eclipse.ui.actions.PartEventAction

All Implemented Interfaces:
  `IAction, IPartListener`

Direct Known Subclasses:
  `PageEventAction, RetargetAction`

public abstract class PartEventAction extends Action implements IPartListener
The abstract superclass for actions that listen to part activation and open/close events. This implementation tracks the active part (see `getActivePart`) and provides a convenient place to monitor part lifecycle events that could affect the availability of the action.

Subclasses must implement the following `IAction` method:

- `run` - to do the action's work

Subclasses may extend any of the `IPartListener` methods if the action availablity needs to be recalculated:

- `partActivated`
- `partDeactivated`
- `partOpened`
- `partClosed`
- `partBroughtToTop`

Although this method implements the `IPartListener` interface, it does NOT register itself.

## Field Summary

### Fields inherited from interface IAction

`AS_CHECK_BOX, AS_DROP_DOWN_MENU, AS_PUSH_BUTTON, AS_RADIO_BUTTON, AS_UNSPECIFIED, CHECKED, DESCRIPTION, ENABLED, HANDLED, IMAGE, RESULT, TEXT, TOOL_TIP_TEXT`

## Constructor Summary

Constructors
Modifier
Constructor
Description
`protected`
`PartEventAction(String text)`
Creates a new action with the given text.
`protected`
`PartEventAction(String text, int style)`
Creates a new action with the given text and style.

## Method Summary

Modifier and Type
Method
Description
`IWorkbenchPart`
`getActivePart()`
Returns the currently active part in the workbench.
`void`
`partActivated(IWorkbenchPart part)`
The `PartEventAction` implementation of this `IPartListener` method records that the given part is active.
`void`
`partBroughtToTop(IWorkbenchPart part)`
The `PartEventAction` implementation of this `IPartListener` method does nothing.
`void`
`partClosed(IWorkbenchPart part)`
The `PartEventAction` implementation of this `IPartListener` method clears the active part if it just closed.
`void`
`partDeactivated(IWorkbenchPart part)`
The `PartEventAction` implementation of this `IPartListener` method records that there is no active part.
`void`
`partOpened(IWorkbenchPart part)`
The `PartEventAction` implementation of this `IPartListener` method does nothing.

### Methods inherited from class Action

`convertAccelerator, convertAccelerator, findKeyCode, findKeyString, findModifier, findModifierString, getAccelerator, getActionDefinitionId, getDescription, getDisabledImageDescriptor, getHelpListener, getHoverImageDescriptor, getId, getImageDescriptor, getMenuCreator, getStyle, getText, getToolTipText, isChecked, isEnabled, isHandled, notifyResult, removeAcceleratorText, removeMnemonics, run, runWithEvent, setAccelerator, setActionDefinitionId, setChecked, setDescription, setDisabledImageDescriptor, setEnabled, setHelpListener, setHoverImageDescriptor, setId, setImageDescriptor, setMenuCreator, setText, setToolTipText`

### Methods inherited from class AbstractAction

`addPropertyChangeListener, firePropertyChange, firePropertyChange, removePropertyChangeListener`

### Methods inherited from class EventManager

`addListenerObject, clearListeners, getListeners, isListenerAttached, removeListenerObject`

### Methods inherited from class Object

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

## Constructor Details

### PartEventAction

protected PartEventAction(String text)
Creates a new action with the given text.

Parameters:
  `text` - the action's text, or `null` if there is no text

### PartEventAction

protected PartEventAction(String text, int style)
Creates a new action with the given text and style.

Parameters:
  `text` - the action's text, or `null` if there is no text
  `style` - one of `AS_PUSH_BUTTON`, `AS_CHECK_BOX`, `AS_DROP_DOWN_MENU`, `AS_RADIO_BUTTON`, and `AS_UNSPECIFIED`
Since:
  3.0

## Method Details

### getActivePart

public IWorkbenchPart getActivePart()
Returns the currently active part in the workbench.

Returns:
  currently active part in the workbench, or `null` if none

### partActivated

public void partActivated(IWorkbenchPart part)
The `PartEventAction` implementation of this `IPartListener` method records that the given part is active. Subclasses may extend this method if action availability has to be recalculated.

Specified by:
  `partActivated` in interface `IPartListener`
Parameters:
  `part` - the part that was activated
See Also:
  - `IWorkbenchPage.activate(IWorkbenchPart)`

### partBroughtToTop

public void partBroughtToTop(IWorkbenchPart part)
The `PartEventAction` implementation of this `IPartListener` method does nothing. Subclasses should extend this method if action availability has to be recalculated.

Specified by:
  `partBroughtToTop` in interface `IPartListener`
Parameters:
  `part` - the part that was surfaced
See Also:
  - `IWorkbenchPage.bringToTop(IWorkbenchPart)`

### partClosed

public void partClosed(IWorkbenchPart part)
The `PartEventAction` implementation of this `IPartListener` method clears the active part if it just closed. Subclasses may extend this method if action availability has to be recalculated.

Specified by:
  `partClosed` in interface `IPartListener`
Parameters:
  `part` - the part that was closed
See Also:
  - `IWorkbenchPage.hideView(IViewPart)`

### partDeactivated

public void partDeactivated(IWorkbenchPart part)
The `PartEventAction` implementation of this `IPartListener` method records that there is no active part. Subclasses may extend this method if action availability has to be recalculated.

Specified by:
  `partDeactivated` in interface `IPartListener`
Parameters:
  `part` - the part that was deactivated
See Also:
  - `IWorkbenchPage.activate(IWorkbenchPart)`

### partOpened

public void partOpened(IWorkbenchPart part)
The `PartEventAction` implementation of this `IPartListener` method does nothing. Subclasses should extend this method if action availability has to be recalculated.

Specified by:
  `partOpened` in interface `IPartListener`
Parameters:
  `part` - the part that was opened
See Also:
  - `IWorkbenchPage.showView(String)`