Package org.eclipse.gef.mvc.fx.policies

# Class ViewportPolicy

java.lang.Object
org.eclipse.gef.common.adapt.IAdaptable.Bound.Impl<IVisualPart<? extends javafx.scene.Node>>
org.eclipse.gef.mvc.fx.policies.AbstractPolicy
org.eclipse.gef.mvc.fx.policies.ViewportPolicy

All Implemented Interfaces:
  `IAdaptable.Bound<IVisualPart<? extends javafx.scene.Node>>`, `IPolicy`

public class ViewportPolicy extends AbstractPolicy
An `IPolicy` to change the viewport of an `IViewer` via its `InfiniteCanvas`.

## Property Summary

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

`adaptable`

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

`adaptable`

## Nested Class Summary

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

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

## Constructor Summary

Constructors
Constructor
Description
`ViewportPolicy()`

## Method Summary

Modifier and Type
Method
Description
`protected ITransactionalOperation`
`createOperation()`
Creates an `ITransactionalOperation` that is used to encapsulate the changes that are applied by this `AbstractPolicy` through its "work" methods.
`void`
`fitToSize()`
Centers the contents within the viewport and zooms the viewport so that the contents are fully visible.
`void`
`fitToSize(double zoomMin)`
Centers the contents within the viewport and zooms the viewport so that the contents are fully visible (if possible given the specified zoom factor range).
`void`
`fitToSize(double zoomMin, double zoomMax)`
Centers the contents within the viewport and zooms the viewport so that the contents are fully visible (if possible given the specified zoom factor range).
`protected ChangeViewportOperation`
`getChangeViewportOperation()`
Returns an `ChangeViewportOperation` that is extracted from the operation created by `createOperation()`.
`void`
`scroll(boolean concatenate, double deltaTranslateX, double deltaTranslateY)`
Advances the viewport transformation by the given translation values.
`void`
`setScroll(double tx, double ty)`
Sets the x and y translation of the viewport to the given values.
`void`
`setZoom(double zoom)`
Sets the x and y scaling of the viewport to the given zoom factor.
`void`
`zoom(boolean concatenate, boolean discretize, double relativeZoom, double sceneX, double sceneY)`
Concatenates a scaling transformation to the current viewport transformation.

### Methods inherited from class org.eclipse.gef.mvc.fx.policies.AbstractPolicy

`checkInitialized, commit, getOperation, init, isInitialized, locallyExecuteOperation, rollback`

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

`adaptableProperty, getAdaptable, setAdaptable`

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

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

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

`adaptableProperty, getAdaptable, setAdaptable`

### Methods inherited from interface org.eclipse.gef.mvc.fx.policies.IPolicy

`getHost`

## Constructor Details

### ViewportPolicy

public ViewportPolicy()

## Method Details

### createOperation

protected ITransactionalOperation createOperation()
Description copied from class: `AbstractPolicy`
Creates an `ITransactionalOperation` that is used to encapsulate the changes that are applied by this `AbstractPolicy` through its "work" methods. The created operation should allow for `local execution` at each time.

Specified by:
  `createOperation` in class `AbstractPolicy`
Returns:
  A new `ITransactionalOperation` to encapsulate all applied changes.

### fitToSize

public void fitToSize()
Centers the contents within the viewport and zooms the viewport so that the contents are fully visible.

### fitToSize

public void fitToSize(double zoomMin)
Centers the contents within the viewport and zooms the viewport so that the contents are fully visible (if possible given the specified zoom factor range).

Parameters:
  `zoomMin` - The minimum zoom factor.

### fitToSize

public void fitToSize(double zoomMin, double zoomMax)
Centers the contents within the viewport and zooms the viewport so that the contents are fully visible (if possible given the specified zoom factor range).

Parameters:
  `zoomMin` - The minimum zoom factor.
  `zoomMax` - The maximum zoom factor.

### getChangeViewportOperation

protected ChangeViewportOperation getChangeViewportOperation()
Returns an `ChangeViewportOperation` that is extracted from the operation created by `createOperation()`.

Returns:
  An `ChangeViewportOperation` that is extracted from the operation created by `createOperation()`.

### scroll

public void scroll(boolean concatenate, double deltaTranslateX, double deltaTranslateY)
Advances the viewport transformation by the given translation values.

Parameters:
  `concatenate` - `true` to concatenate the specified zoom to the current transformation, `false` to not concatenate the specified scroll to the current but to the initial transformation.
  `deltaTranslateX` - The horizontal translation delta.
  `deltaTranslateY` - The vertical translation delta.

### setScroll

public void setScroll(double tx, double ty)
Sets the x and y translation of the viewport to the given values. Does not alter scaling.

Parameters:
  `tx` - The new x translation.
  `ty` - The new y translation.

### setZoom

public void setZoom(double zoom)
Sets the x and y scaling of the viewport to the given zoom factor. Does not alter translation/scroll-offset.

Parameters:
  `zoom` - The new x and y scaling for the viewport.

### zoom

public void zoom(boolean concatenate, boolean discretize, double relativeZoom, double sceneX, double sceneY)
Concatenates a scaling transformation to the current viewport transformation.

Parameters:
  `concatenate` - `true` to concatenate the specified zoom to the current transformation, `false` to not concatenate the specified zoom to the current but to the initial transformation.
  `discretize` - `true` to discretize the resulting zoom level, i.e. round it to 6 decimal places and do not skip integer zoom levels, `false` to not change the resulting zoom level.
  `relativeZoom` - The scale factor.
  `sceneX` - The pivot x-coordinate.
  `sceneY` - The pivot y-coordinate.