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(Shell shell,
String text)
Creates a new action with the given text.
|
Modifier and Type | Method and Description |
---|---|
protected List |
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 abstract 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 |
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
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
addPropertyChangeListener, removePropertyChangeListener
protected 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.
protected abstract void invokeOperation(IResource resource, IProgressMonitor monitor) throws CoreException
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.
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 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.Guidelines for using Eclipse APIs. Copyright (c) IBM Corp. and others 2000, 2006. All rights reserved.