org.eclipse.gef.mvc.fx.operations

## Class ChangeContentsOperation

- java.lang.Object
- - org.eclipse.core.commands.operations.AbstractOperation
  - - org.eclipse.gef.mvc.fx.operations.ChangeContentsOperation

All Implemented Interfaces:
  org.eclipse.core.commands.operations.IUndoableOperation, ITransactionalOperation

    public class ChangeContentsOperation
    extends org.eclipse.core.commands.operations.AbstractOperation
    implements ITransactionalOperation

The `ChangeContentsOperation` can be used to change the content objects stored in the `IViewer.contentsProperty()`.

### Field Summary

Fields
`static java.lang.String` `DEFAULT_LABEL` "Change Contents" The default label for this operation (i.e. used if no label is specified).

### Constructor Summary

Constructors
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, java.util.List<? extends java.lang.Object> contents)` Creates a new `ChangeContentsOperation` for changing the contents of the given `IViewer` to the specified list of objects.
`ChangeContentsOperation(java.lang.String label, IViewer viewer, java.util.List<? extends java.lang.Object> contents)` Creates a new `ChangeContentsOperation` for changing the contents of the given `IViewer` to the specified list of objects.

### Method Summary

All Methods Instance Methods Concrete Methods
`org.eclipse.core.runtime.IStatus` `execute(org.eclipse.core.runtime.IProgressMonitor monitor, org.eclipse.core.runtime.IAdaptable info)`
`protected java.util.List<? extends java.lang.Object>` `getInitialContents()` Returns the list containing the initial contents by reference.
`protected java.util.List<? extends java.lang.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).
`org.eclipse.core.runtime.IStatus` `redo(org.eclipse.core.runtime.IProgressMonitor monitor, org.eclipse.core.runtime.IAdaptable info)`
`void` `setNewContents(java.util.List<? extends java.lang.Object> newContents)` Sets the final contents to the given list.
`org.eclipse.core.runtime.IStatus` `undo(org.eclipse.core.runtime.IProgressMonitor monitor, org.eclipse.core.runtime.IAdaptable info)`

### Methods inherited from class org.eclipse.core.commands.operations.AbstractOperation

`addContext, canExecute, canRedo, canUndo, dispose, getContexts, getLabel, hasContext, removeContext, setLabel, toString`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface org.eclipse.core.commands.operations.IUndoableOperation

`addContext, canExecute, canRedo, canUndo, dispose, getContexts, getLabel, hasContext, removeContext`

### Field Detail

#### DEFAULT_LABEL

    public static final java.lang.String DEFAULT_LABEL

     "Change Contents"

The default label for this operation (i.e. used if no label is specified).

See Also:
  Constant Field Values

### Constructor Detail

#### ChangeContentsOperation

    public ChangeContentsOperation(IViewer viewer)

Constructs a new `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.

Parameters:
  `viewer` - The `IViewer` of which the `IViewer.contentsProperty()` is to be changed.

#### ChangeContentsOperation

    public ChangeContentsOperation(IViewer viewer,
                                   java.util.List<? extends java.lang.Object> contents)

Creates a new `ChangeContentsOperation` for changing the contents of the given `IViewer` to the specified list of objects.

Parameters:
  `viewer` - The `IViewer` of which the `IViewer.contentsProperty()` is to be changed.
  `contents` - The new content objects to store in the `IViewer.contentsProperty()`.

#### ChangeContentsOperation

    public ChangeContentsOperation(java.lang.String label,
                                   IViewer viewer,
                                   java.util.List<? extends java.lang.Object> contents)

Creates a new `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.

Parameters:
  `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()`.

### Method Detail

#### execute

    public org.eclipse.core.runtime.IStatus execute(org.eclipse.core.runtime.IProgressMonitor monitor,
                                                    org.eclipse.core.runtime.IAdaptable info)
                                             throws org.eclipse.core.commands.ExecutionException

Specified by:
  `execute` in interface `org.eclipse.core.commands.operations.IUndoableOperation`
Specified by:
  `execute` in class `org.eclipse.core.commands.operations.AbstractOperation`
Throws:
  `org.eclipse.core.commands.ExecutionException`

#### getInitialContents

    protected java.util.List<? extends java.lang.Object> getInitialContents()

Returns the list containing the initial contents by reference.

Returns:
  the list containing the initial contents by reference.

#### getNewContents

    protected java.util.List<? extends java.lang.Object> getNewContents()

Returns the list containing the new contents by reference.

Returns:
  the list containing the new contents by reference.

#### isContentRelevant

    public boolean isContentRelevant()

Description copied from interface: `ITransactionalOperation`
Returns `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.

Specified by:
  `isContentRelevant` in interface `ITransactionalOperation`
Returns:
  `true` if this `ITransactionalOperation` is actually changing model data, otherwise `false`.

#### isNoOp

    public boolean isNoOp()

Description copied from interface: `ITransactionalOperation`
Returns `true` if this `ITransactionalOperation` has no effect (in comparison to its initial state). Otherwise returns `false`.

Specified by:
  `isNoOp` in interface `ITransactionalOperation`
Returns:
  `true` if this `ITransactionalOperation` has no effect, otherwise `false`.

#### redo

    public org.eclipse.core.runtime.IStatus redo(org.eclipse.core.runtime.IProgressMonitor monitor,
                                                 org.eclipse.core.runtime.IAdaptable info)
                                          throws org.eclipse.core.commands.ExecutionException

Specified by:
  `redo` in interface `org.eclipse.core.commands.operations.IUndoableOperation`
Specified by:
  `redo` in class `org.eclipse.core.commands.operations.AbstractOperation`
Throws:
  `org.eclipse.core.commands.ExecutionException`

#### setNewContents

    public void setNewContents(java.util.List<? extends java.lang.Object> newContents)

Sets the final contents to the given list.

Parameters:
  `newContents` - The new final contents.

#### undo

    public org.eclipse.core.runtime.IStatus undo(org.eclipse.core.runtime.IProgressMonitor monitor,
                                                 org.eclipse.core.runtime.IAdaptable info)
                                          throws org.eclipse.core.commands.ExecutionException

Specified by:
  `undo` in interface `org.eclipse.core.commands.operations.IUndoableOperation`
Specified by:
  `undo` in class `org.eclipse.core.commands.operations.AbstractOperation`
Throws:
  `org.eclipse.core.commands.ExecutionException`