public class ChangeContentsOperation extends AbstractOperation implements ITransactionalOperation
ChangeContentsOperation
can be used to change the content objects
stored in the IViewer.contentsProperty()
.Modifier and Type | Field and Description |
---|---|
static String |
DEFAULT_LABEL
"Change Contents"
The default label for this operation (i.e. used if no label is
specified).
|
Constructor and Description |
---|
ChangeContentsOperation(IViewer viewer)
Constructs a new
ChangeContentsOperation that can be used to
change the contents of the given IViewer . |
ChangeContentsOperation(IViewer viewer,
List<? extends Object> contents)
Creates a new
ChangeContentsOperation for changing the contents
of the given IViewer to the specified list of objects. |
ChangeContentsOperation(String label,
IViewer viewer,
List<? extends Object> contents)
Creates a new
ChangeContentsOperation for changing the contents
of the given IViewer to the specified list of objects. |
Modifier and Type | Method and Description |
---|---|
IStatus |
execute(IProgressMonitor monitor,
IAdaptable info) |
protected List<? extends Object> |
getInitialContents()
Returns the list containing the initial contents by reference.
|
protected List<? extends Object> |
getNewContents()
Returns the list containing the new contents by reference.
|
boolean |
isContentRelevant()
Returns
true if this ITransactionalOperation is
actually changing model data (instead of only affecting the
visualization). |
boolean |
isNoOp()
Returns
true if this ITransactionalOperation has no
effect (in comparison to its initial state). |
IStatus |
redo(IProgressMonitor monitor,
IAdaptable info) |
void |
setNewContents(List<? extends Object> newContents)
Sets the final contents to the given list.
|
IStatus |
undo(IProgressMonitor monitor,
IAdaptable info) |
addContext, canExecute, canRedo, canUndo, dispose, getContexts, getLabel, hasContext, removeContext, setLabel, toString
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
addContext, canExecute, canRedo, canUndo, dispose, getContexts, getLabel, hasContext, removeContext
public static final String DEFAULT_LABEL
"Change Contents"The default label for this operation (i.e. used if no label is specified).
public ChangeContentsOperation(IViewer viewer)
ChangeContentsOperation
that can be used to
change the contents of the given IViewer
.
The operation is initialized as a no-op, i.e. the initial viewer contents are also used as the final viewer contents.
The final contents can later be set using the
setNewContents(List)
method.
viewer
- The IViewer
of which the
IViewer.contentsProperty()
is to be changed.public ChangeContentsOperation(IViewer viewer, List<? extends Object> contents)
ChangeContentsOperation
for changing the contents
of the given IViewer
to the specified list of objects.viewer
- The IViewer
of which the
IViewer.contentsProperty()
is to be changed.contents
- The new content objects to store in the
IViewer.contentsProperty()
.public ChangeContentsOperation(String label, IViewer viewer, List<? extends Object> contents)
ChangeContentsOperation
for changing the contents
of the given IViewer
to the specified list of objects. The given
label is used as the label of the operation.label
- The label of the operation.viewer
- The IViewer
of which the
IViewer.contentsProperty()
is to be changed.contents
- The new content objects to store in the
IViewer.contentsProperty()
.public IStatus execute(IProgressMonitor monitor, IAdaptable info) throws ExecutionException
execute
in interface IUndoableOperation
execute
in class AbstractOperation
ExecutionException
protected List<? extends Object> getInitialContents()
protected List<? extends Object> getNewContents()
public boolean isContentRelevant()
ITransactionalOperation
true
if this ITransactionalOperation
is
actually changing model data (instead of only affecting the
visualization). Otherwise returns false
. The content
relevance of an ITransactionalOperation
can be checked to
determine if the execution of the operation will affect the model, for
example, to set an editor's dirty flag.isContentRelevant
in interface ITransactionalOperation
true
if this ITransactionalOperation
is
actually changing model data, otherwise false
.public boolean isNoOp()
ITransactionalOperation
true
if this ITransactionalOperation
has no
effect (in comparison to its initial state). Otherwise returns
false
.isNoOp
in interface ITransactionalOperation
true
if this ITransactionalOperation
has no
effect, otherwise false
.public IStatus redo(IProgressMonitor monitor, IAdaptable info) throws ExecutionException
redo
in interface IUndoableOperation
redo
in class AbstractOperation
ExecutionException
public void setNewContents(List<? extends Object> newContents)
newContents
- The new final contents.public IStatus undo(IProgressMonitor monitor, IAdaptable info) throws ExecutionException
undo
in interface IUndoableOperation
undo
in class AbstractOperation
ExecutionException
Copyright (c) 2014, 2016 itemis AG and others. All rights reserved.