public abstract class WorkspaceAction extends SelectionListenerAction
Subclasses must implement the following methods:
invokeOperation
- to perform the operation on one of the
selected resourcesgetOperationMessage
- to furnish a title for the progress
dialogSubclasses may override the following methods:
shouldPerformResourcePruning
- reimplement to turn offupdateSelection
- extend to refine enablement criteriagetProblemsTitle
- reimplement to furnish a title for the
problems dialoggetProblemsMessage
- reimplement to furnish a message for
the problems dialogrun
- extend to 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
Modifier | Constructor and Description |
---|---|
protected |
WorkspaceAction(IShellProvider provider,
String text)
Creates a new action with the given text.
|
protected |
WorkspaceAction(Shell shell,
String text)
Deprecated.
|
Modifier and Type | Method and Description |
---|---|
protected IRunnableWithProgress |
createOperation(IStatus[] errorStatus)
Returns the operation to perform when this action runs.
|
protected List<? extends IResource> |
getActionResources()
Returns the elements that the action is to be performed on.
|
protected abstract 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 void |
invokeOperation(IResource resource,
IProgressMonitor monitor)
Deprecated.
Since 3.3, subclasses should instead implement the method
createOperation(IStatus[]) and provide an empty implementation
for this method.
|
void |
run()
The
CoreWrapperAction implementation of this
IAction method uses a ProgressMonitorDialog
to run the operation. |
void |
runInBackground(ISchedulingRule rule)
Run the action in the background rather than with the progress dialog.
|
void |
runInBackground(ISchedulingRule rule,
Object jobFamily)
Run the action in the background rather than with the progress dialog.
|
void |
runInBackground(ISchedulingRule rule,
Object[] jobFamilies)
Run the action in the background rather than with the progress dialog.
|
protected boolean |
shouldPerformResourcePruning()
Returns whether this action should attempt to optimize the resources
being operated on.
|
protected boolean |
updateSelection(IStructuredSelection selection)
The
WorkspaceAction implementation of this
SelectionListenerAction method ensures that this action is
disabled if any of the selected resources are inaccessible. |
clearCache, getSelectedNonResources, getSelectedResources, resourceIsType, selectionIsOfType
getStructuredSelection, runWithEvent, selectionChanged, selectionChanged
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
addPropertyChangeListener, firePropertyChange, firePropertyChange, removePropertyChangeListener
addListenerObject, clearListeners, getListeners, isListenerAttached, removeListenerObject
@Deprecated protected WorkspaceAction(Shell shell, String text)
WorkspaceAction(IShellProvider, String)
shell
- the shell (for the modal progress dialog and error messages)text
- the string used as the text for the action, or
null
if there is no textprotected WorkspaceAction(IShellProvider provider, String text)
provider
- the shell provider (for the modal progress dialog and error
messages)text
- the string used as the text for the action, or
null
if there is no textprotected abstract String getOperationMessage()
Note that this hook method is invoked in a non-UI thread.
Subclasses must implement this method.
protected String getProblemsMessage()
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.
protected String getProblemsTitle()
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.
@Deprecated protected void invokeOperation(IResource resource, IProgressMonitor monitor) throws CoreException
createOperation(IStatus[])
and provide an empty implementation
for this method.
Note that this method is invoked in a non-UI thread.
Subclasses must implement this method.
resource
- one of the selected resourcesmonitor
- a progress monitorCoreException
- if the operation failspublic void run()
CoreWrapperAction
implementation of this
IAction
method uses a ProgressMonitorDialog
to run the operation. The operation calls execute
(which,
in turn, calls invokeOperation
). Afterwards, any
CoreException
s encountered while running the operation
are reported to the user via a problems dialog.
Subclasses may extend this method.
run
in interface IAction
run
in class Action
How radio buttons are handled
,
How check boxes are handled
protected boolean shouldPerformResourcePruning()
The WorkspaceAction
implementation of this method returns
true
. Subclasses should reimplement to return
false
if pruning is not required.
true
if pruning should be performed, and
false
if pruning is not desiredprotected boolean updateSelection(IStructuredSelection selection)
WorkspaceAction
implementation of this
SelectionListenerAction
method ensures that this action is
disabled if any of the selected resources are inaccessible. Subclasses
may extend to react to selection changes; however, if the super method
returns false
, the overriding method should also return
false
.updateSelection
in class BaseSelectionListenerAction
selection
- the new selectiontrue
if the action should be enabled for this selection,
and false
otherwiseprotected List<? extends IResource> getActionResources()
Subclasses may override this method.
IResource
)public void runInBackground(ISchedulingRule rule)
rule
- The rule to apply to the background job or null
if there isn't one.public void runInBackground(ISchedulingRule rule, Object jobFamily)
rule
- The rule to apply to the background job or null
if there isn't one.jobFamily
- a single family that the job should belong to or
null
if none.public void runInBackground(ISchedulingRule rule, Object[] jobFamilies)
rule
- The rule to apply to the background job or null
if there isn't one.jobFamilies
- the families the job should belong to or null
if none.protected IRunnableWithProgress createOperation(IStatus[] errorStatus)
IRunnableWithProgress
that will perform the
action's work. The default implementation returns an operation that will
iterate over the selected resources and call
invokeOperation(IResource, IProgressMonitor)
for each resource.
Subclasses must either implement
invokeOperation(IResource, IProgressMonitor)
or override this
method to provide a different operation. Subclasses typically override
this method when an undoable operation is to be provided.errorStatus
- an array of error status objects to which the result of
running the operation should be added.
Copyright (c) 2000, 2018 Eclipse Contributors and others. All rights reserved.Guidelines for using Eclipse APIs.