Class ChangeViewportOperation

java.lang.Object
org.eclipse.core.commands.operations.AbstractOperation
org.eclipse.gef.mvc.fx.operations.ChangeViewportOperation
All Implemented Interfaces:
IUndoableOperation, ITransactionalOperation

public class ChangeViewportOperation extends AbstractOperation implements ITransactionalOperation
The ChangeViewportOperation can be used to alter the scroll offset and the content transformation of an InfiniteCanvas. It is used by scroll/pan and zoom policies.
  • Constructor Details

    • ChangeViewportOperation

      public ChangeViewportOperation(InfiniteCanvas canvas)
      Creates a new ChangeViewportOperation to manipulate the given InfiniteCanvas. The current viewport values are read and used when undoing this operation.
      Parameters:
      canvas - The InfiniteCanvas which is manipulated by this operation.
    • ChangeViewportOperation

      public ChangeViewportOperation(InfiniteCanvas canvas, AffineTransform newContentTransform)
      Creates a new ChangeViewportOperation to manipulate the given InfiniteCanvas. The current viewport values are read and used when undoing this operation. The given AffineTransform will be applied when executing this operation.
      Parameters:
      canvas - The InfiniteCanvas that is manipulated.
      newContentTransform - The contents transformation which is applied when executing this operation.
    • ChangeViewportOperation

      public ChangeViewportOperation(InfiniteCanvas canvas, double newHorizontalScrollOffset, double newVerticalScrollOffset)
      Creates a new ChangeViewportOperation to manipulate the given InfiniteCanvas. The current viewport values are read and used when undoing this operation. The given translation values will be applied when executing this operation.
      Parameters:
      canvas - The InfiniteCanvas that is manipulated.
      newHorizontalScrollOffset - The horizontal translation that is applied when executing this operation.
      newVerticalScrollOffset - The vertical translation that is applied when executing this operation.
    • ChangeViewportOperation

      public ChangeViewportOperation(InfiniteCanvas canvas, double newHorizontalScrollOffset, double newVerticalScrollOffset, AffineTransform newContentTransform)
      Creates a new ChangeViewportOperation to manipulate the given InfiniteCanvas. The current viewport values are read and used when undoing this operation. The given translation values and contents transformation will be applied when executing this operation.
      Parameters:
      canvas - The InfiniteCanvas that is manipulated.
      newHorizontalScrollOffset - The horizontal translation that is applied when executing this operation.
      newVerticalScrollOffset - The vertical translation that is applied when executing this operation.
      newContentTransform - The contents transformation which is applied when executing this operation.
    • ChangeViewportOperation

      public ChangeViewportOperation(InfiniteCanvas canvas, double newHorizontalScrollOffset, double newVerticalScrollOffset, double newWidth, double newHeight, AffineTransform newContentTransform)
      Creates a new ChangeViewportOperation to manipulate the given InfiniteCanvas. The current viewport values are read and used when undoing this operation. The given translation values, dimensions, and contents transformation will be applied when executing this operation.
      Parameters:
      canvas - The InfiniteCanvas that is manipulated.
      newHorizontalScrollOffset - The horizontal translation that is applied when executing this operation.
      newVerticalScrollOffset - The vertical translation that is applied when executing this operation.
      newWidth - The viewport width that is applied when executing this operation.
      newHeight - The viewport height that is applied when executing this operation.
      newContentTransform - The contents transformation which is applied when executing this operation.
  • Method Details

    • concatenateToNewContentTransform

      public void concatenateToNewContentTransform(AffineTransform t)
      Concatenates the given AffineTransform to the contents transformation that will be applied when executing this operation.
      Parameters:
      t - The AffineTransform which is concatenated to the transformation that will be applied when executing this operation.
    • execute

      public IStatus execute(IProgressMonitor monitor, IAdaptable info) throws ExecutionException
      Specified by:
      execute in interface IUndoableOperation
      Specified by:
      execute in class AbstractOperation
      Throws:
      ExecutionException
    • getInfiniteCanvas

      public InfiniteCanvas getInfiniteCanvas()
      Returns the InfiniteCanvas that is manipulated by this operation.
      Returns:
      The InfiniteCanvas that is manipulated by this operation.
    • getInitialContentTransform

      public AffineTransform getInitialContentTransform()
      Returns the contents transformation that will be applied when undoing this operation.
      Returns:
      The contents transformation that will be applied when undoing this operation.
    • getInitialHeight

      public double getInitialHeight()
      Returns the viewport height that will be applied when undoing this operation.
      Returns:
      The viewport height that will be applied when undoing this operation.
    • getInitialHorizontalScrollOffset

      public double getInitialHorizontalScrollOffset()
      Returns the horizontal translation that will be applied when undoing this operation.
      Returns:
      The horizontal translation that will be applied when undoing this operation.
    • getInitialVerticalScrollOffset

      public double getInitialVerticalScrollOffset()
      Returns the vertical translation that will be applied when undoing this operation.
      Returns:
      The vertical translation that will be applied when undoing this operation.
    • getInitialWidth

      public double getInitialWidth()
      Returns the viewport width that will be applied when undoing this operation.
      Returns:
      The viewport width that will be applied when undoing this operation.
    • getNewContentTransform

      public AffineTransform getNewContentTransform()
      Returns the contents transformation that will be applied when executing this operation.
      Returns:
      The contents transformation that will be applied when executing this operation.
    • getNewHeight

      public double getNewHeight()
      Returns the viewport height that will be applied when executing this operation.
      Returns:
      The viewport height that will be applied when executing this operation.
    • getNewHorizontalScrollOffset

      public double getNewHorizontalScrollOffset()
      Returns the horizontal translation that will be applied when executing this operation.
      Returns:
      The horizontal translation that will be applied when executing this operation.
    • getNewVerticalScrollOffset

      public double getNewVerticalScrollOffset()
      Returns the vertical translation that will be applied when executing this operation.
      Returns:
      The vertical translation that will be applied when executing this operation.
    • getNewWidth

      public double getNewWidth()
      Returns the viewport width that will be applied when executing this operation.
      Returns:
      The viewport width that will be applied when executing this operation.
    • 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.
    • readViewport

      protected void readViewport(InfiniteCanvas canvas)
      Stores all relevant viewport values in fields, so that they can be restored later.
      Parameters:
      canvas - The InfiniteCanvas from which the values are read.
    • redo

      public IStatus redo(IProgressMonitor monitor, IAdaptable info) throws ExecutionException
      Specified by:
      redo in interface IUndoableOperation
      Specified by:
      redo in class AbstractOperation
      Throws:
      ExecutionException
    • setInitialContentTransform

      public void setInitialContentTransform(AffineTransform initialContentTransform)
      Sets the initial content transform before applying the new value.
      Parameters:
      initialContentTransform - The initialContentTransform to set.
    • setInitialHeight

      public void setInitialHeight(double initialHeight)
      Sets the initial height before applying the new value.
      Parameters:
      initialHeight - The initialHeight to set.
    • setInitialHorizontalScrollOffset

      public void setInitialHorizontalScrollOffset(double initialHorizontalScrollOffset)
      Sets the initial horizontal scroll offset before applying the new value.
      Parameters:
      initialHorizontalScrollOffset - The initialHorizontalScrollOffset to set.
    • setInitialVerticalScrollOffset

      public void setInitialVerticalScrollOffset(double initialVerticalScrollOffset)
      Sets the initial vertical scroll offset before applying the new value.
      Parameters:
      initialVerticalScrollOffset - The initialVerticalScrollOffset to set.
    • setInitialWidth

      public void setInitialWidth(double initialWidth)
      Sets the initial width before applying the new value.
      Parameters:
      initialWidth - The initialWidth to set.
    • setNewContentTransform

      public void setNewContentTransform(AffineTransform newContentTransform)
      Sets the contents transformation that will be applied when executing this operation to the given value.
      Parameters:
      newContentTransform - The contents transformation to apply when executing this operation.
    • setNewHeight

      public void setNewHeight(double newHeight)
      Sets the viewport height that will be applied when executing this operation to the given value.
      Parameters:
      newHeight - The viewport height to apply when executing this operation.
    • setNewHorizontalScrollOffset

      public void setNewHorizontalScrollOffset(double newHorizontalScrollOffset)
      Sets the horizontal translation that will be applied when executing this operation to the given value.
      Parameters:
      newHorizontalScrollOffset - The horizontal translation to apply when executing this operation.
    • setNewVerticalScrollOffset

      public void setNewVerticalScrollOffset(double newVerticalScrollOffset)
      Sets the vertical translation that will be applied when executing this operation to the given value.
      Parameters:
      newVerticalScrollOffset - The vertical translation to apply when executing this operation.
    • setNewWidth

      public void setNewWidth(double newWidth)
      Sets the viewport width that will be applied when executing this operation to the given value.
      Parameters:
      newWidth - The viewport width to apply when executing this operation.
    • undo

      public IStatus undo(IProgressMonitor monitor, IAdaptable info) throws ExecutionException
      Specified by:
      undo in interface IUndoableOperation
      Specified by:
      undo in class AbstractOperation
      Throws:
      ExecutionException