# Class CloseResourceAction

java.lang.Object
org.eclipse.core.commands.common.EventManager
org.eclipse.jface.action.AbstractAction
org.eclipse.jface.action.Action
org.eclipse.ui.actions.BaseSelectionListenerAction
org.eclipse.ui.actions.SelectionListenerAction
org.eclipse.ui.actions.WorkspaceAction
org.eclipse.ui.actions.CloseResourceAction

All Implemented Interfaces:
  `EventListener, IResourceChangeListener, IAction, ISelectionChangedListener`

Direct Known Subclasses:
  `CloseUnrelatedProjectsAction`

public class CloseResourceAction extends WorkspaceAction implements IResourceChangeListener
Standard action for closing the currently selected project(s).

This class may be instantiated; it is not intended to be subclassed.

Restriction:
  This class is not intended to be subclassed by clients.

## Field Summary

Fields
Modifier and Type
Field
Description
`static final String`
`ID`
The id of this action.

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

### Fields inherited from interface IResourceChangeListener

`PROPERTY_EVENT_MASK`

## Constructor Summary

Constructors
Modifier
Constructor
Description
``
`CloseResourceAction(IShellProvider provider)`
Create the new action.
`protected`
`CloseResourceAction(IShellProvider provider, String text)`
Provide text to the action.
`protected`
`CloseResourceAction(IShellProvider provider, String text, String tooltip, String textPlural, String tooltipPlural)`
Provide text to the action.
``
`CloseResourceAction(Shell shell)`
Deprecated.
See `CloseResourceAction(IShellProvider)`
`protected`
`CloseResourceAction(Shell shell, String text)`
Deprecated.
See `CloseResourceAction(IShellProvider, String)`

## Method Summary

Modifier and Type
Method
Description
`String[]`
`getModelProviderIds()`
Returns the model provider ids that are known to the client that instantiated this operation.
`protected String`
`getOperationMessage()`
Returns the string to display for this action's operation.
`protected String`
`getProblemsMessage()`
Returns the string to display for this action's problems dialog.
`protected String`
`getProblemsTitle()`
Returns the title for this action's problems dialog.
`protected List<?>`
`getSelectedNonResources()`
Returns the elements in the current selection that are not `IResource`s.
`protected List<? extends IResource>`
`getSelectedResources()`
Returns the elements in the current selection that are `IResource`s.
`protected void`
`invokeOperation(IResource resource, IProgressMonitor monitor)`
Performs this action's operation on each of the selected resources, reporting progress to, and fielding cancel requests from, the given progress monitor.
`void`
`resourceChanged(IResourceChangeEvent event)`
Handles a resource changed event by updating the enablement if one of the selected projects is opened or closed.
`void`
`run()`
The implementation of this `WorkspaceAction` method method saves and closes the resource's dirty editors before closing it.
`void`
`setModelProviderIds(String[] modelProviderIds)`
Sets the model provider ids that are known to the client that instantiated this operation.
`protected boolean`
`shouldPerformResourcePruning()`
Returns whether this action should attempt to optimize the resources being operated on.
`protected boolean`
`updateSelection(IStructuredSelection s)`
The `CloseResourceAction` implementation of this `SelectionListenerAction` method ensures that this action is enabled only if one of the selections is an open project.

### Methods inherited from class WorkspaceAction

`createOperation, getActionResources, runInBackground, runInBackground, runInBackground`

### Methods inherited from class SelectionListenerAction

`clearCache, resourceIsType, selectionIsOfType`

### Methods inherited from class BaseSelectionListenerAction

`getStructuredSelection, runWithEvent, selectionChanged, selectionChanged`

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

### ID

public static final String ID
The id of this action.

See Also:
  - Constant Field Values

## Constructor Details

### CloseResourceAction

@Deprecated public CloseResourceAction(Shell shell)
Deprecated.
See `CloseResourceAction(IShellProvider)`
Creates a new action.

Parameters:
  `shell` - the shell for any dialogs

### CloseResourceAction

@Deprecated protected CloseResourceAction(Shell shell, String text)
Deprecated.
See `CloseResourceAction(IShellProvider, String)`
Override super constructor to allow subclass to override with unique text.

### CloseResourceAction

public CloseResourceAction(IShellProvider provider)
Create the new action.

Parameters:
  `provider` - the shell provider for any dialogs
Since:
  3.4

### CloseResourceAction

protected CloseResourceAction(IShellProvider provider, String text)
Provide text to the action.

Parameters:
  `provider` - the shell provider for any dialogs
  `text` - label for action when only a singular selection is made
Since:
  3.4

### CloseResourceAction

protected CloseResourceAction(IShellProvider provider, String text, String tooltip, String textPlural, String tooltipPlural)
Provide text to the action.

Parameters:
  `provider` - the shell provider for any dialogs
  `text` - label for action when only a singular selection is made
  `tooltip` - tooltip text for action when only a singular selection is made
  `textPlural` - label for action when selection contains multiple elements
  `tooltipPlural` - tooltip text for action when selection contains multiple elements
Since:
  3.14

## Method Details

### getOperationMessage

protected String getOperationMessage()
Description copied from class: `WorkspaceAction`
Returns the string to display for this action's operation.

Note that this hook method is invoked in a non-UI thread.

Subclasses must implement this method.

Specified by:
  `getOperationMessage` in class `WorkspaceAction`
Returns:
  the message

### getProblemsMessage

protected String getProblemsMessage()
Description copied from class: `WorkspaceAction`
Returns the string to display for this action's problems dialog.

The `WorkspaceAction` implementation of this method returns a vague message (localized counterpart of something like "The following problems occurred."). Subclasses may reimplement to provide something more suited to the particular action.

Overrides:
  `getProblemsMessage` in class `WorkspaceAction`
Returns:
  the problems message

### getProblemsTitle

protected String getProblemsTitle()
Description copied from class: `WorkspaceAction`
Returns the title for this action's problems dialog.

The `WorkspaceAction` implementation of this method returns a generic title (localized counterpart of "Problems"). Subclasses may reimplement to provide something more suited to the particular action.

Overrides:
  `getProblemsTitle` in class `WorkspaceAction`
Returns:
  the problems dialog title

### invokeOperation

protected void invokeOperation(IResource resource, IProgressMonitor monitor) throws CoreException
Description copied from class: `WorkspaceAction`
Performs this action's operation on each of the selected resources, reporting progress to, and fielding cancel requests from, the given progress monitor.

Note that this method is invoked in a non-UI thread.

Subclasses must implement this method.

Overrides:
  `invokeOperation` in class `WorkspaceAction`
Parameters:
  `resource` - one of the selected resources
  `monitor` - a progress monitor
Throws:
  `CoreException` - if the operation fails

### run

public void run()
The implementation of this `WorkspaceAction` method method saves and closes the resource's dirty editors before closing it.

Specified by:
  `run` in interface `IAction`
Overrides:
  `run` in class `WorkspaceAction`
See Also:
  - How radio buttons are handled
  - How check boxes are handled

### shouldPerformResourcePruning

protected boolean shouldPerformResourcePruning()
Description copied from class: `WorkspaceAction`
Returns whether this action should attempt to optimize the resources being operated on. This kind of pruning makes sense when the operation has depth infinity semantics (when the operation is applied explicitly to a resource then it is also applied implicitly to all the resource's descendents).

The `WorkspaceAction` implementation of this method returns `true`. Subclasses should reimplement to return `false` if pruning is not required.

Overrides:
  `shouldPerformResourcePruning` in class `WorkspaceAction`
Returns:
  `true` if pruning should be performed, and `false` if pruning is not desired

### updateSelection

protected boolean updateSelection(IStructuredSelection s)
The `CloseResourceAction` implementation of this `SelectionListenerAction` method ensures that this action is enabled only if one of the selections is an open project.

Overrides:
  `updateSelection` in class `WorkspaceAction`
Parameters:
  `s` - the new selection
Returns:
  `true` if the action should be enabled for this selection, and `false` otherwise

### resourceChanged

public void resourceChanged(IResourceChangeEvent event)
Handles a resource changed event by updating the enablement if one of the selected projects is opened or closed.

Specified by:
  `resourceChanged` in interface `IResourceChangeListener`
Parameters:
  `event` - the resource change event
See Also:
  - `IResourceDelta`

### getSelectedResources

protected List<? extends IResource> getSelectedResources()
Description copied from class: `SelectionListenerAction`
Returns the elements in the current selection that are `IResource`s.

Overrides:
  `getSelectedResources` in class `SelectionListenerAction`
Returns:
  list of resource elements (element type: `IResource`)

### getSelectedNonResources

protected List<?> getSelectedNonResources()
Description copied from class: `SelectionListenerAction`
Returns the elements in the current selection that are not `IResource`s.

Overrides:
  `getSelectedNonResources` in class `SelectionListenerAction`
Returns:
  list of elements (element type: `Object`)

### getModelProviderIds

public String[] getModelProviderIds()
Returns the model provider ids that are known to the client that instantiated this operation.

Returns:
  the model provider ids that are known to the client that instantiated this operation.
Since:
  3.2

### setModelProviderIds

public void setModelProviderIds(String[] modelProviderIds)
Sets the model provider ids that are known to the client that instantiated this operation. Any potential side effects reported by these models during validation will be ignored.

Parameters:
  `modelProviderIds` - the model providers known to the client who is using this operation.
Since:
  3.2