|
 |
|
|
org.eclipse.ui.ide.undo
Class UpdateMarkersOperation
java.lang.Object
org.eclipse.core.commands.operations.AbstractOperation
org.eclipse.ui.ide.undo.AbstractWorkspaceOperation
org.eclipse.ui.ide.undo.UpdateMarkersOperation
-
All Implemented Interfaces:
-
IAdvancedUndoableOperation,
IAdvancedUndoableOperation2,
IUndoableOperation
-
public class UpdateMarkersOperation
- extends
AbstractWorkspaceOperation
An UpdateMarkersOperation represents an undoable operation for updating one
or more markers in the workspace with one or more sets of attributes. Clients
may call the public API from a background thread.
This class is intended to be instantiated and used by clients. It is not
intended to be subclassed by clients.
-
Since:
- 3.3
Constructor Summary
|
UpdateMarkersOperation
(
IMarker[] markers,
Map attributes,
String name,
boolean mergeAttributes)
Create an undoable operation that updates many markers to have the same
set of attributes. |
UpdateMarkersOperation
(
IMarker marker,
Map attributes,
String name,
boolean mergeAttributes)
Create an undoable operation that can update the specified marker with
the specified attributes. |
Methods inherited from class org.eclipse.ui.ide.undo.
AbstractWorkspaceOperation
|
aboutToNotify,
canExecute,
canRedo,
canUndo,
execute,
getAffectedObjects,
getErrorStatus,
getRedoSchedulingRule,
getShell,
getWarningStatus,
getWorkspace,
getWorkspaceRuleFactory,
isValid,
markInvalid,
redo,
resourcesExist,
resourcesIncludesProjects,
runInBackground,
setModelProviderIds,
setQuietCompute,
setTargetResources,
toString,
undo,
updateResourceChangeDescriptionFactory
|
UpdateMarkersOperation
public UpdateMarkersOperation(
IMarker marker,
Map attributes,
String name,
boolean mergeAttributes)
- Create an undoable operation that can update the specified marker with
the specified attributes.
-
Parameters:
-
marker - the marker to be updated -
attributes - the map of attributes to be assigned to the marker. This map
does not replace the attribute map of the marker, but instead,
each attribute in the map is added or updated with the current
value in the map. In other words -
name - the name used to describe this operation -
mergeAttributes - true if the specified map of attributes for the
marker is to be merged with the attributes already specified
for the marker, or false if the specified map
of attributes is to be considered a complete replacement of
all attributes of the marker
UpdateMarkersOperation
public UpdateMarkersOperation(
IMarker[] markers,
Map attributes,
String name,
boolean mergeAttributes)
- Create an undoable operation that updates many markers to have the same
set of attributes.
-
Parameters:
-
markers - the markers to be updated -
attributes - the map of attributes to be assigned to each marker -
name - the name used to describe this operation -
mergeAttributes - true if the specified map of attributes for
each marker is to be merged with the attributes already
specified for that marker, or false if the
specified map of attributes is to be considered a complete
replacement of all attributes for each marker
doExecute
protected void doExecute(
IProgressMonitor monitor,
IAdaptable info)
throws
CoreException
-
Description copied from class:
AbstractWorkspaceOperation
- Perform the specific work involved in executing this operation.
-
-
Specified by:
-
doExecute
in class
AbstractWorkspaceOperation
-
-
Parameters:
-
monitor - the progress monitor to use for the operation -
info - the IAdaptable (or null ) provided by the
caller in order to supply UI information for prompting the
user if necessary. When this parameter is not
null , it contains an adapter for the
org.eclipse.swt.widgets.Shell.class
-
Throws:
-
CoreException
- propagates any CoreExceptions thrown from the resources API
doUndo
protected void doUndo(
IProgressMonitor monitor,
IAdaptable info)
throws
CoreException
-
Description copied from class:
AbstractWorkspaceOperation
- Perform the specific work involved in undoing this operation.
-
-
Specified by:
-
doUndo
in class
AbstractWorkspaceOperation
-
-
Parameters:
-
monitor - the progress monitor to use for the operation -
info - the IAdaptable (or null ) provided by the
caller in order to supply UI information for prompting the
user if necessary. When this parameter is not
null , it contains an adapter for the
org.eclipse.swt.widgets.Shell.class
-
Throws:
-
CoreException
- propagates any CoreExceptions thrown from the resources API
getBasicUndoStatus
protected
IStatus getBasicUndoStatus()
- Return a status indicating the projected outcome of undoing the marker
operation. The receiver is not responsible for remembering the result of
this computation.
-
-
-
Returns:
- the status indicating whether the operation can be undone
getBasicRedoStatus
protected
IStatus getBasicRedoStatus()
- Return a status indicating the projected outcome of redoing the marker
operation. The receiver is not responsible for remembering the result of
this computation.
-
-
-
Returns:
- the status indicating whether the operation can be undone
deleteMarkers
protected void deleteMarkers(int work,
IProgressMonitor monitor)
throws
CoreException
- Delete any currently known markers and save their information in marker
descriptions so that they can be restored.
-
-
Parameters:
-
work - the number of work ticks to be used by the delete -
monitor - the progress monitor to use for the delete
-
Throws:
-
CoreException
- propagates any CoreExceptions thrown from the resources API
createMarkers
protected void createMarkers(int work,
IProgressMonitor monitor)
throws
CoreException
- Create markers from any currently known marker descriptions.
-
-
Parameters:
-
work - the number of work ticks to be used by the create -
monitor - the progress monitor to use for the create
-
Throws:
-
CoreException
- propagates any CoreExceptions thrown from the resources API
updateMarkers
protected void updateMarkers(int work,
IProgressMonitor monitor,
boolean mergeAttributes)
throws
CoreException
- Update the currently known markers with the corresponding array of marker
descriptions.
-
-
Parameters:
-
work - the number of work ticks to be used by the update -
monitor - the progress monitor to use for the update -
mergeAttributes - a boolean specifying whether the attributes are merged or
considered to be a replacement of the previous attributes.
-
Throws:
-
CoreException
- propagates any CoreExceptions thrown from the resources API
setMarkerDescriptions
protected void setMarkerDescriptions(org.eclipse.ui.internal.ide.undo.MarkerDescription[] descriptions)
- Set the marker descriptions that describe markers that can be created.
-
-
Parameters:
-
descriptions - the descriptions of markers that can be created.
getMarkers
public
IMarker[] getMarkers()
- Return the array of markers that has been updated or created.
-
-
Returns:
- the array of markers that have been updated or created, or
null if no markers have been created or updated.
markersExist
protected boolean markersExist()
- Return whether the markers known by this operation currently exist.
-
-
Returns:
-
true if there are existing markers and
false if there are no known markers or any one of
them does not exist
computeExecutionStatus
public
IStatus computeExecutionStatus(
IProgressMonitor monitor)
-
Description copied from class:
AbstractWorkspaceOperation
- Return a status indicating the projected outcome of executing the
receiver. This method is not called by the operation history, but instead
is used by clients (such as implementers of
IOperationApprover2 ) who
wish to perform advanced validation of an operation before attempting to
execute it.
If an ERROR status is returned, the operation will not proceed and the
user notified if deemed necessary by the caller. The validity flag on the
operation should be marked as invalid. If an OK status is returned, the
operation will proceed. The caller must interpret any other returned
status severity, and may choose to prompt the user as to how to proceed.
If there are multiple conditions that result in an ambiguous status
severity, it is best for the implementor of this method to consult the
user as to how to proceed for each one, and return an OK or ERROR status
that accurately reflects the user's wishes, or to return a multi-status
that accurately describes all of the issues at hand, so that the caller
may potentially consult the user. (Note that the user should not be
consulted at all if a client has called
AbstractWorkspaceOperation.setQuietCompute(boolean)
with a value of true .)
This implementation computes the validity of execution by computing the
resource delta that would be generated on execution, and checking whether
any registered model providers are affected by the operation.
-
-
Specified by:
-
computeExecutionStatus
in interface
IAdvancedUndoableOperation2
-
Overrides:
-
computeExecutionStatus
in class
AbstractWorkspaceOperation
-
-
Parameters:
-
monitor - the progress monitor to be used for computing the status
-
Returns:
- the status indicating the projected outcome of executing the
receiver
-
See Also:
-
IAdvancedUndoableOperation.computeUndoableStatus(org.eclipse.core.runtime.IProgressMonitor) ,
AbstractWorkspaceOperation.setQuietCompute(boolean)
computeUndoableStatus
public
IStatus computeUndoableStatus(
IProgressMonitor monitor)
-
Description copied from class:
AbstractWorkspaceOperation
- Return a status indicating the projected outcome of undoing the receiver.
This method is not called by the operation history, but instead is used
by clients (such as implementers of
IOperationApprover2 ) who
wish to perform advanced validation of an operation before attempting to
undo it.
If an ERROR status is returned, the undo will not proceed and the user
notified if deemed necessary by the caller. The validity flag on the
operation should be marked as invalid. If an OK status is returned, the
undo will proceed. The caller must interpret any other returned status
severity, and may choose to prompt the user as to how to proceed.
If there are multiple conditions that result in an ambiguous status
severity, it is best for the implementor of this method to consult the
user as to how to proceed for each one, and return an OK or ERROR status
that accurately reflects the user's wishes, or to return a multi-status
that accurately describes all of the issues at hand, so that the caller
may potentially consult the user. (Note that the user should not be
consulted at all if a client has called
AbstractWorkspaceOperation.setQuietCompute(boolean)
with a value of true .)
This implementation computes the validity of undo by computing the
resource delta that would be generated on undo, and checking whether any
registered model providers are affected by the operation.
-
-
Specified by:
-
computeUndoableStatus
in interface
IAdvancedUndoableOperation
-
Overrides:
-
computeUndoableStatus
in class
AbstractWorkspaceOperation
-
-
Parameters:
-
monitor - the progress monitor to be used for computing the status
-
Returns:
- the status indicating the projected outcome of undoing the
receiver
-
See Also:
-
IAdvancedUndoableOperation.computeUndoableStatus(org.eclipse.core.runtime.IProgressMonitor) ,
AbstractWorkspaceOperation.setQuietCompute(boolean)
computeRedoableStatus
public
IStatus computeRedoableStatus(
IProgressMonitor monitor)
-
Description copied from class:
AbstractWorkspaceOperation
- Return a status indicating the projected outcome of redoing the receiver.
This method is not called by the operation history, but instead is used
by clients (such as implementers of
IOperationApprover2 ) who
wish to perform advanced validation of an operation before attempting to
redo it.
If an ERROR status is returned, the redo will not proceed and the user
notified if deemed necessary by the caller. The validity flag on the
operation should be marked as invalid. If an OK status is returned, the
redo will proceed. The caller must interpret any other returned status
severity, and may choose to prompt the user as to how to proceed.
If there are multiple conditions that result in an ambiguous status
severity, it is best for the implementor of this method to consult the
user as to how to proceed for each one, and return an OK or ERROR status
that accurately reflects the user's wishes, or to return a multi-status
that accurately describes all of the issues at hand, so that the caller
may potentially consult the user. (Note that the user should not be
consulted at all if a client has called
AbstractWorkspaceOperation.setQuietCompute(boolean)
with a value of true .)
This implementation computes the validity of redo by computing the
resource delta that would be generated on redo, and checking whether any
registered model providers are affected by the operation.
-
-
Specified by:
-
computeRedoableStatus
in interface
IAdvancedUndoableOperation
-
Overrides:
-
computeRedoableStatus
in class
AbstractWorkspaceOperation
-
-
Parameters:
-
monitor - the progress monitor to be used for computing the status
-
Returns:
- the status indicating the projected outcome of redoing the
receiver
-
See Also:
-
IAdvancedUndoableOperation.computeUndoableStatus(org.eclipse.core.runtime.IProgressMonitor) ,
AbstractWorkspaceOperation.setQuietCompute(boolean)
getMarkerDeletionStatus
protected
IStatus getMarkerDeletionStatus()
- Compute the status for deleting any known markers. A status severity of
OK indicates that the delete is likely to be successful. A
status severity of ERROR indicates that the operation is
no longer valid. Other status severities are open to interpretation by
the caller.
-
-
Returns:
- the status indicating the projected outcome of deleting the
markers.
getMarkerCreationStatus
protected
IStatus getMarkerCreationStatus()
- Compute the status for creating any known markers. A status severity of
OK indicates that the create is likely to be successful. A
status severity of ERROR indicates that the operation is
no longer valid. Other status severities are open to interpretation by
the caller.
-
-
Returns:
- the status indicating the projected outcome of creating the
markers.
getMarkerUpdateStatus
protected
IStatus getMarkerUpdateStatus()
- Compute the status for updating any known markers. A status severity of
OK indicates that the update is likely to be successful. A
status severity of ERROR indicates that the operation is
no longer valid. Other status severities are open to interpretation by
the caller.
-
-
Returns:
- the status indicating the projected outcome of updating the
markers.
getExecuteSchedulingRule
protected
ISchedulingRule getExecuteSchedulingRule()
-
Description copied from class:
AbstractWorkspaceOperation
- Return a scheduling rule appropriate for executing this operation.
The default implementation is to return a rule that locks out the entire
workspace. Subclasses are encouraged to provide more specific rules that
affect only their resources.
-
-
Overrides:
-
getExecuteSchedulingRule
in class
AbstractWorkspaceOperation
-
-
Returns:
- the scheduling rule to use when executing this operation, or
null if there are no scheduling restrictions for
this operation. -
See Also:
-
IWorkspace.run(IWorkspaceRunnable, ISchedulingRule, int, IProgressMonitor)
getUndoSchedulingRule
protected
ISchedulingRule getUndoSchedulingRule()
-
Description copied from class:
AbstractWorkspaceOperation
- Return a scheduling rule appropriate for undoing this operation.
The default implementation is to return a rule that locks out the entire
workspace. Subclasses are encouraged to provide more specific rules that
affect only their resources.
-
-
Overrides:
-
getUndoSchedulingRule
in class
AbstractWorkspaceOperation
-
-
Returns:
- the scheduling rule to use when undoing this operation, or
null if there are no scheduling restrictions for
this operation. -
See Also:
-
IWorkspace.run(IWorkspaceRunnable, ISchedulingRule, int, IProgressMonitor)
appendDescriptiveText
protected void appendDescriptiveText(
StringBuffer text)
-
Description copied from class:
AbstractWorkspaceOperation
- Append any descriptive text to the specified string buffer to be shown in
the receiver's
AbstractWorkspaceOperation.toString() text.
Note that this method is not intend to be subclassed by clients.
-
-
Overrides:
-
appendDescriptiveText
in class
AbstractWorkspaceOperation
-
-
Parameters:
-
text - the StringBuffer on which to append the text
Guidelines for using Eclipse APIs.
Copyright (c) Eclipse contributors and others 2000, 2008. All rights reserved.
|
|
|