# Class FileBufferOperationAction

java.lang.Object
org.eclipse.core.commands.common.EventManager
org.eclipse.jface.action.AbstractAction
org.eclipse.jface.action.Action
org.eclipse.ui.editors.text.FileBufferOperationAction

All Implemented Interfaces:
  `IAction, IActionDelegate, IWorkbenchWindowActionDelegate`

public class FileBufferOperationAction extends Action implements IWorkbenchWindowActionDelegate
File buffer operation action.

Since:
  3.1

## Field Summary

Fields
Modifier and Type
Field
Description
`protected IFileBufferOperation`
`fFileBufferOperation`

### 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`
`FileBufferOperationAction(IFileBufferOperation fileBufferOperation)`

## Method Summary

Modifier and Type
Method
Description
`protected IFile[]`
`collectFiles(IResource[] resources)`
Collect the files to process.
`void`
`dispose()`
Disposes this action delegate.
`protected final void`
`doRun(IFile[] files, IPath location, IFileBufferOperation fileBufferOperation)`
`protected final IPath[]`
`generateLocations(IFile[] files, IProgressMonitor progressMonitor)`
`protected final Shell`
`getShell()`
`protected final IWorkbenchWindow`
`getWorkbenchWindow()`
`void`
`init(IWorkbenchWindow window)`
Initializes this action delegate with the workbench window it will work in.
`protected boolean`
`isAcceptableLocation(IPath location)`
Tells whether this action accepts the given location.
`void`
`run(IAction action)`
Performs this action.
`void`
`selectionChanged(IAction action, ISelection selection)`
Notifies this action delegate that the selection in the workbench has changed.

### 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`

## Field Details

### fFileBufferOperation

protected IFileBufferOperation fFileBufferOperation

## Constructor Details

### FileBufferOperationAction

protected FileBufferOperationAction(IFileBufferOperation fileBufferOperation)

## Method Details

### dispose

public void dispose()
Description copied from interface: `IWorkbenchWindowActionDelegate`
Disposes this action delegate. The implementor should unhook any references to itself so that garbage collection can occur.

Specified by:
  `dispose` in interface `IWorkbenchWindowActionDelegate`

### init

public void init(IWorkbenchWindow window)
Description copied from interface: `IWorkbenchWindowActionDelegate`
Initializes this action delegate with the workbench window it will work in.

Specified by:
  `init` in interface `IWorkbenchWindowActionDelegate`
Parameters:
  `window` - the window that provides the context for this delegate

### selectionChanged

public void selectionChanged(IAction action, ISelection selection)
Description copied from interface: `IActionDelegate`
Notifies this action delegate that the selection in the workbench has changed.

Implementers can use this opportunity to change the availability of the action or to modify other presentation properties.

When the selection changes, the action enablement state is updated based on the criteria specified in the plugin.xml file. Then the delegate is notified of the selection change regardless of whether the enablement criteria in the plugin.xml file is met.

Specified by:
  `selectionChanged` in interface `IActionDelegate`
Parameters:
  `action` - the action proxy that handles presentation portion of the action
  `selection` - the current selection, or `null` if there is no selection.

### getWorkbenchWindow

protected final IWorkbenchWindow getWorkbenchWindow()

### getShell

protected final Shell getShell()

### run

public void run(IAction action)
Description copied from interface: `IActionDelegate`
Performs this action.

This method is called by the proxy action when the action has been triggered. Implement this method to do the actual work.

Note: If the action delegate also implements `IActionDelegate2`, then this method is not invoked but instead the `runWithEvent(IAction, Event)` method is called.

Specified by:
  `run` in interface `IActionDelegate`
Parameters:
  `action` - the action proxy that handles the presentation portion of the action

### collectFiles

protected IFile[] collectFiles(IResource[] resources)
Collect the files to process. This method may show a dialog to ask the user. Subclasses may extend or reimplement.

Parameters:
  `resources` - selected resources
Returns:
  the files to process, can be `null`

### doRun

protected final void doRun(IFile[] files, IPath location, IFileBufferOperation fileBufferOperation)

### generateLocations

protected final IPath[] generateLocations(IFile[] files, IProgressMonitor progressMonitor)

### isAcceptableLocation

protected boolean isAcceptableLocation(IPath location)
Tells whether this action accepts the given location.

Parameters:
  `location` - the location
Returns:
  `true` if the given location is acceptable