Package org.eclipse.gef.mvc.fx.models

# Class SelectionModel

java.lang.Object
org.eclipse.gef.common.adapt.IAdaptable.Bound.Impl<IViewer>
org.eclipse.gef.mvc.fx.models.SelectionModel

All Implemented Interfaces:
  `IAdaptable.Bound<IViewer>`, `IDisposable`

public class SelectionModel extends IAdaptable.Bound.Impl<IViewer> implements IDisposable
The `SelectionModel` is used to store the current viewer's selection. It represents the selection as an ordered list of `IContentPart`s. Thereby, it supports a multi-selection and allows to identify a primary selection (the head element of the list) that may be treated specially.

## Property Summary

Properties
Type
Property
Description
`javafx.beans.property.ReadOnlyListProperty<IContentPart<? extends javafx.scene.Node>>`
`selectionUnmodifiable`
Returns an unmodifiable read-only list property that represents the current selection.

### Properties inherited from class org.eclipse.gef.common.adapt.IAdaptable.Bound.Impl

`adaptable`

## Nested Class Summary

## Nested classes/interfaces inherited from interface org.eclipse.gef.common.adapt.IAdaptable.Bound

`IAdaptable.Bound.Impl<T extends IAdaptable>`

## Field Summary

Fields
Modifier and Type
Field
Description
`static final String`
`SELECTION_PROPERTY`
Name of the `selectionUnmodifiableProperty()`.

## Constructor Summary

Constructors
Constructor
Description
`SelectionModel()`

## Method Summary

Modifier and Type
Method
Description
`void`
`appendToSelection(List<? extends IContentPart<? extends javafx.scene.Node>> toBeAppended)`
Updates the current selection by adding the given `IContentPart`s to it, preserving already selected elements.
`void`
`appendToSelection(IContentPart<? extends javafx.scene.Node> toBeAppended)`
Updates the current selection by adding the given `IContentPart` to it, preserving already selected elements.
`void`
`clearSelection()`
Clears the current selection.
`void`
`dispose()`
`javafx.collections.ObservableList<IContentPart<? extends javafx.scene.Node>>`
`getSelectionUnmodifiable()`
Returns an unmodifiable observable list of the currently selected `IContentPart`s.
`boolean`
`isSelected(IContentPart<? extends javafx.scene.Node> contentPart)`
Returns whether the given `IContentPart` is part of the current selection.
`void`
`prependToSelection(List<? extends IContentPart<? extends javafx.scene.Node>> toBePrepended)`
Updates the current selection by adding the given `IContentPart`s to it, preserving already selected elements.
`void`
`prependToSelection(IContentPart<? extends javafx.scene.Node> toBePrepended)`
Updates the current selection by adding the given `IContentPart` to it, preserving already selected elements.
`void`
`removeFromSelection(Collection<? extends IContentPart<? extends javafx.scene.Node>> contentParts)`
Removes the given `IContentPart`s from the current selection if they are contained.
`void`
`removeFromSelection(IContentPart<? extends javafx.scene.Node> contentPart)`
Removes the given `IContentPart` from the current selection if it is currently selected.
`javafx.beans.property.ReadOnlyListProperty<IContentPart<? extends javafx.scene.Node>>`
`selectionUnmodifiableProperty()`
Returns an unmodifiable read-only list property that represents the current selection.
`void`
`setAdaptable(IViewer adaptable)`
`void`
`setSelection(List<? extends IContentPart<? extends javafx.scene.Node>> selection)`
Replaces the current selection with the given list of `IContentPart` s.
`void`
`setSelection(IContentPart<? extends javafx.scene.Node> newSelection)`
Replaces the current selection with the given `IContentPart`.

### Methods inherited from class org.eclipse.gef.common.adapt.IAdaptable.Bound.Impl

`adaptableProperty, getAdaptable`

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

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

## Property Details

### selectionUnmodifiable

public javafx.beans.property.ReadOnlyListProperty<IContentPart<? extends javafx.scene.Node>> selectionUnmodifiableProperty
Returns an unmodifiable read-only list property that represents the current selection.

See Also:
  - `getSelectionUnmodifiable()`

## Field Details

### SELECTION_PROPERTY

public static final String SELECTION_PROPERTY
Name of the `selectionUnmodifiableProperty()`.

See Also:
  - Constant Field Values

## Constructor Details

### SelectionModel

public SelectionModel()

## Method Details

### appendToSelection

public void appendToSelection(IContentPart<? extends javafx.scene.Node> toBeAppended)
Updates the current selection by adding the given `IContentPart` to it, preserving already selected elements.

If the given content part is not already selected, it will be added to the back of the given selection, otherwise it will be moved to the back. A member of the current selection that is not contained in the given list, will remain selected.

Parameters:
  `toBeAppended` - The `IContentPart` to add to/move to the back of the current selection.

### appendToSelection

public void appendToSelection(List<? extends IContentPart<? extends javafx.scene.Node>> toBeAppended)
Updates the current selection by adding the given `IContentPart`s to it, preserving already selected elements.

A member of the given list that is not contained in the current selection, will be added to it. A member of the current selection that is not contained in the given list, will remain selected.

The selection order will be adjusted, so that the members of the given list are added at the back (in the order they are given), preceded by the already selected elements not contained in the given list (preserving their relative order).

Parameters:
  `toBeAppended` - The `IContentPart`s to add to/move to the back of the current selection.

### clearSelection

public void clearSelection()
Clears the current selection.

### dispose

public void dispose()

Specified by:
  `dispose` in interface `IDisposable`
Since:
  1.1

### getSelectionUnmodifiable

public javafx.collections.ObservableList<IContentPart<? extends javafx.scene.Node>> getSelectionUnmodifiable()
Returns an unmodifiable observable list of the currently selected `IContentPart`s.

Returns:
  An unmodifiable observable list of the currently selected `IContentPart`s.

### isSelected

public boolean isSelected(IContentPart<? extends javafx.scene.Node> contentPart)
Returns whether the given `IContentPart` is part of the current selection.

Parameters:
  `contentPart` - The `IContentPart` which is checked for containment.
Returns:
  `true` if the `IContentPart` is contained by the current selection.

### prependToSelection

public void prependToSelection(IContentPart<? extends javafx.scene.Node> toBePrepended)
Updates the current selection by adding the given `IContentPart` to it, preserving already selected elements.

If the given content part is not already selected, it will be added to the front of the given selection, otherwise it will be moved to the front. A member of the current selection that is not contained in the given list, will remain selected.

Parameters:
  `toBePrepended` - The `IContentPart` to add to/move to the front of the current selection.

### prependToSelection

public void prependToSelection(List<? extends IContentPart<? extends javafx.scene.Node>> toBePrepended)
Updates the current selection by adding the given `IContentPart`s to it, preserving already selected elements.

A member of the given list that is not contained in the current selection, will be added to it. A member of the current selection that is not contained in the given list, will remain selected.

The selection order will be adjusted, so that the members of the given list are added in front (in the order they are given), followed by the already selected elements not contained in the given list (preserving their relative order).

Parameters:
  `toBePrepended` - The `IContentPart`s to add to/move to the front of the current selection.

### removeFromSelection

public void removeFromSelection(Collection<? extends IContentPart<? extends javafx.scene.Node>> contentParts)
Removes the given `IContentPart`s from the current selection if they are contained. Ignores those that are not part of the current selection.

Parameters:
  `contentParts` - The `IContentPart`s which are removed from the selection.

### removeFromSelection

public void removeFromSelection(IContentPart<? extends javafx.scene.Node> contentPart)
Removes the given `IContentPart` from the current selection if it is currently selected. Will not change the current selection otherwise.

Parameters:
  `contentPart` - The `IContentPart` that is to be removed from the selection.

### selectionUnmodifiableProperty

public javafx.beans.property.ReadOnlyListProperty<IContentPart<? extends javafx.scene.Node>> selectionUnmodifiableProperty()
Returns an unmodifiable read-only list property that represents the current selection.

See Also:
  - `getSelectionUnmodifiable()`

### setAdaptable

public void setAdaptable(IViewer adaptable)

Specified by:
  `setAdaptable` in interface `IAdaptable.Bound<IViewer>`
Overrides:
  `setAdaptable` in class `IAdaptable.Bound.Impl<IViewer>`

### setSelection

public void setSelection(IContentPart<? extends javafx.scene.Node> newSelection)
Replaces the current selection with the given `IContentPart`.

Parameters:
  `newSelection` - The `IContentPart` constituting the new selection.

### setSelection

public void setSelection(List<? extends IContentPart<? extends javafx.scene.Node>> selection)
Replaces the current selection with the given list of `IContentPart` s.

Parameters:
  `selection` - The list of `IContentPart`s constituting the new selection.