Package org.eclipse.gef.tools

# Class ResizeTracker

java.lang.Object
org.eclipse.gef.util.FlagSupport
org.eclipse.gef.tools.AbstractTool
org.eclipse.gef.tools.SimpleDragTracker
org.eclipse.gef.tools.ResizeTracker

All Implemented Interfaces:
  `DragTracker`, `RequestConstants`, `Tool`

public class ResizeTracker extends SimpleDragTracker
A Tracker for dragging a resize handle. The ResizeTracker will resize all of the selected editparts in the viewer which understand a RESIZE request. A `ChangeBoundsRequest` is sent to each member of the operation set. The tracker allows for the resize direction to be specified in the constructor.

## Nested Class Summary

## Nested classes/interfaces inherited from class org.eclipse.gef.tools.AbstractTool

`AbstractTool.Input`

## Field Summary

Fields
Modifier and Type
Field
Description
`protected static final int`
`MAX_FLAG`
The maximum flag used by this class.

### Fields inherited from class org.eclipse.gef.tools.AbstractTool

`MAX_STATE, MOUSE_BUTTON_ANY, MOUSE_BUTTON1, MOUSE_BUTTON2, MOUSE_BUTTON3, PROPERTY_UNLOAD_WHEN_FINISHED, STATE_ACCESSIBLE_DRAG, STATE_ACCESSIBLE_DRAG_IN_PROGRESS, STATE_DRAG, STATE_DRAG_IN_PROGRESS, STATE_INITIAL, STATE_INVALID, STATE_TERMINAL`

### Fields inherited from interface org.eclipse.gef.RequestConstants

`REQ_ADD, REQ_ALIGN, REQ_ALIGN_CHILDREN, REQ_CLONE, REQ_CONNECTION_END, REQ_CONNECTION_START, REQ_CREATE, REQ_CREATE_BENDPOINT, REQ_DELETE, REQ_DELETE_DEPENDANT, REQ_DIRECT_EDIT, REQ_MOVE, REQ_MOVE_BENDPOINT, REQ_MOVE_CHILDREN, REQ_OPEN, REQ_ORPHAN, REQ_ORPHAN_CHILDREN, REQ_RECONNECT_SOURCE, REQ_RECONNECT_TARGET, REQ_RESIZE, REQ_RESIZE_CHILDREN, REQ_SELECTION, REQ_SELECTION_HOVER`

## Constructor Summary

Constructors
Constructor
Description
`ResizeTracker(int direction)`
Deprecated.
use ResizeTracker(GraphicalEditPart, int) instead
`ResizeTracker(GraphicalEditPart owner, int direction)`
Constructs a resize tracker that resizes in the specified direction.

## Method Summary

Modifier and Type
Method
Description
`void`
`activate()`
Activates the tool.
`void`
`commitDrag()`
Added for compatibility.
`protected List<? extends EditPart>`
`createOperationSet()`
Returns all selected parts which understand resizing.
`protected Request`
`createSourceRequest()`
Creates and returns a new Request that is used during the drag.
`void`
`deactivate()`
Deactivates the tool.
`protected void`
`enforceConstraintsForResize(ChangeBoundsRequest changeBoundsRequest)`
Ensures size constraints (by default minimum and maximum) are respected by the given request.
`protected void`
`enforceResizeConstraintsForBottomRightCorner(ChangeBoundsRequest changeBoundsRequest)`
Ensures that the in addition to the size constraints also the position is respected by the given request.
`protected void`
`eraseTargetFeedback()`
This method is invoked when the resize operation is complete.
`protected Command`
`getCommand()`
Returns a new, updated command based on the tool's current properties.
`protected String`
`getCommandName()`
Returns the identifier of the command that is being sought.
`protected String`
`getDebugName()`
Returns the debug name for this tool.
`protected Cursor`
`getDefaultCursor()`
Returns the cursor used under normal conditions.
`protected org.eclipse.draw2d.geometry.Dimension`
`getMaximumSizeFor(ChangeBoundsRequest request)`
Determines the maximum size that the host can be resized to for a given request.
`protected org.eclipse.draw2d.geometry.Dimension`
`getMinimumSizeFor(ChangeBoundsRequest request)`
Determines the minimum size that the specified child can be resized to.By default, a default value is returned.
`protected GraphicalEditPart`
`getOwner()`
Returns the owner of this resize tracker.
`protected int`
`getResizeDirection()`
Returns the direction of the resize (NORTH, EAST, NORTH_EAST, etc.).
`protected GraphicalEditPart`
`getTargetEditPart()`
The TargetEditPart is the parent of the EditPart being resized.
`protected boolean`
`handleButtonUp(int button)`
If dragging is in progress, cleans up feedback and calls performDrag().
`protected boolean`
`handleDragInProgress()`
Updates the command and the source request, and shows feedback.
`protected void`
`showTargetFeedback()`
This method is invoked as the drag is happening.
`protected void`
`updateSourceRequest()`
Updates the source request.

### Methods inherited from class org.eclipse.gef.tools.SimpleDragTracker

`calculateCursor, eraseSourceFeedback, getSourceRequest, handleButtonDown, handleDragStarted, handleInvalidInput, handleKeyDown, handleKeyUp, isShowingFeedback, performDrag, showSourceFeedback`

### Methods inherited from class org.eclipse.gef.tools.AbstractTool

`acceptArrowKey, accGetStep, accStepIncrement, accStepReset, addFeedback, applyProperty, debug, executeCommand, executeCurrentCommand, focusGained, focusLost, getCurrentCommand, getCurrentInput, getCurrentViewer, getDebugNameForState, getDisabledCursor, getDomain, getDragMoveDelta, getLocation, getOperationSet, getStartLocation, getState, handleCommandStackChanged, handleDoubleClick, handleDrag, handleFinished, handleFocusGained, handleFocusLost, handleHover, handleKeyTraversed, handleMove, handleNativeDragFinished, handleNativeDragStarted, handleViewerEntered, handleViewerExited, isActive, isHoverActive, isInState, isViewerImportant, keyDown, keyTraversed, keyUp, mouseDoubleClick, mouseDown, mouseDrag, mouseHover, mouseMove, mouseUp, mouseWheelScrolled, movedPastThreshold, nativeDragFinished, nativeDragStarted, performViewerMouseWheel, placeMouseInViewer, reactivate, refreshCursor, releaseToolCapture, removeFeedback, resetFlags, setCurrentCommand, setCursor, setDefaultCursor, setDisabledCursor, setEditDomain, setHoverActive, setProperties, setStartLocation, setState, setToolCapture, setUnloadWhenFinished, setViewer, stateTransition, unloadWhenFinished, viewerEntered, viewerExited`

### Methods inherited from class org.eclipse.gef.util.FlagSupport

`getFlag, setFlag`

### 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.Tool

`focusGained, focusLost, keyDown, keyTraversed, keyUp, mouseDoubleClick, mouseDown, mouseDrag, mouseHover, mouseMove, mouseUp, mouseWheelScrolled, nativeDragFinished, nativeDragStarted, setEditDomain, setProperties, setViewer, viewerEntered, viewerExited`

## Field Details

### MAX_FLAG

protected static final int MAX_FLAG
The maximum flag used by this class.

## Constructor Details

### ResizeTracker

@Deprecated public ResizeTracker(int direction)
Deprecated.
use ResizeTracker(GraphicalEditPart, int) instead
Constructs a resize tracker that resizes in the specified direction. The direction is specified using `PositionConstants.NORTH`, `PositionConstants.NORTH_EAST`, etc.

Parameters:
  `direction` - the direction

### ResizeTracker

public ResizeTracker(GraphicalEditPart owner, int direction)
Constructs a resize tracker that resizes in the specified direction. The direction is specified using `PositionConstants.NORTH`, `PositionConstants.NORTH_EAST`, etc.

Parameters:
  `owner` - of the resize handle which returned this tracker
  `direction` - the direction

## Method Details

### activate

public void activate()
Description copied from class: `AbstractTool`
Activates the tool. Any initialization should be performed here. This method is called when a tool is selected.

Specified by:
  `activate` in interface `Tool`
Overrides:
  `activate` in class `AbstractTool`
See Also:
  - `Tool.activate()`

### commitDrag

public void commitDrag()
Description copied from class: `AbstractTool`
Added for compatibility. `DragTracker.commitDrag()` was added for accessibility reasons. Since all tool implementations must inherit from this base class, then implementing this method here avoids breaking subclasses that implemented the `DragTracker` interface.

Specified by:
  `commitDrag` in interface `DragTracker`
Overrides:
  `commitDrag` in class `SimpleDragTracker`
See Also:
  - `AbstractTool.commitDrag()`

### createOperationSet

protected List<? extends EditPart> createOperationSet()
Returns all selected parts which understand resizing.

Overrides:
  `createOperationSet` in class `AbstractTool`
Returns:
  a list of editparts being operated on
See Also:
  - `AbstractTool.createOperationSet()`

### createSourceRequest

protected Request createSourceRequest()
Description copied from class: `SimpleDragTracker`
Creates and returns a new Request that is used during the drag.

Overrides:
  `createSourceRequest` in class `SimpleDragTracker`
Returns:
  a new source request
See Also:
  - `SimpleDragTracker.createSourceRequest()`

### deactivate

public void deactivate()
Description copied from class: `AbstractTool`
Deactivates the tool. This method is called whenever the user switches to another tool. Use this method to do some clean-up when the tool is switched. The abstract tool allows cursors for viewers to be changed. When the tool is deactivated it must revert to normal the cursor of the last tool it changed.

Specified by:
  `deactivate` in interface `Tool`
Overrides:
  `deactivate` in class `SimpleDragTracker`
See Also:
  - `AbstractTool.deactivate()`

### eraseTargetFeedback

protected void eraseTargetFeedback()
This method is invoked when the resize operation is complete. It notifies the `target` to erase target feedback.

### getCommand

protected Command getCommand()
Description copied from class: `AbstractTool`
Returns a new, updated command based on the tool's current properties. The default implementation returns an unexecutable command. Some tools do not work commands and the model, but simply change the viewer's state in some way.

Overrides:
  `getCommand` in class `AbstractTool`
Returns:
  a newly obtained command
See Also:
  - `AbstractTool.getCommand()`

### getCommandName

protected String getCommandName()
Description copied from class: `AbstractTool`
Returns the identifier of the command that is being sought. This name is also the named that will be logged in the debug view.

Specified by:
  `getCommandName` in class `AbstractTool`
Returns:
  the identifier for the command
See Also:
  - `AbstractTool.getCommandName()`

### getDefaultCursor

protected Cursor getDefaultCursor()
Description copied from class: `AbstractTool`
Returns the cursor used under normal conditions.

Overrides:
  `getDefaultCursor` in class `AbstractTool`
Returns:
  the default cursor
See Also:
  - `AbstractTool.getDefaultCursor()`

### getDebugName

protected String getDebugName()
Description copied from class: `AbstractTool`
Returns the debug name for this tool.

Overrides:
  `getDebugName` in class `AbstractTool`
Returns:
  the debug name
See Also:
  - `AbstractTool.getDebugName()`

### getOwner

protected GraphicalEditPart getOwner()
Returns the owner of this resize tracker.

Since:
  3.7

### getResizeDirection

protected int getResizeDirection()
Returns the direction of the resize (NORTH, EAST, NORTH_EAST, etc.). These constants are from `PositionConstants`.

Returns:
  the resize direction.

### getTargetEditPart

protected GraphicalEditPart getTargetEditPart()
The TargetEditPart is the parent of the EditPart being resized.

Returns:
  The target EditPart; may be `null` in 2.1 applications that use the now deprecated `constructor`.

### handleButtonUp

protected boolean handleButtonUp(int button)
If dragging is in progress, cleans up feedback and calls performDrag().

Overrides:
  `handleButtonUp` in class `SimpleDragTracker`
Parameters:
  `button` - the button being released
Returns:
  `true` if the button up was handled
See Also:
  - `SimpleDragTracker.handleButtonUp(int)`

### handleDragInProgress

protected boolean handleDragInProgress()
Updates the command and the source request, and shows feedback.

Overrides:
  `handleDragInProgress` in class `SimpleDragTracker`
Returns:
  `true` if the drag was handled
See Also:
  - `SimpleDragTracker.handleDragInProgress()`

### showTargetFeedback

protected void showTargetFeedback()
This method is invoked as the drag is happening. It notifies the `target` to show target feedback.

### updateSourceRequest

protected void updateSourceRequest()
Description copied from class: `SimpleDragTracker`
Updates the source request.

Overrides:
  `updateSourceRequest` in class `SimpleDragTracker`
See Also:
  - `SimpleDragTracker.updateSourceRequest()`

### enforceConstraintsForResize

protected void enforceConstraintsForResize(ChangeBoundsRequest changeBoundsRequest)
Ensures size constraints (by default minimum and maximum) are respected by the given request. May be overwritten by clients to enforce additional constraints.

Parameters:
  `changeBoundsRequest` - The request to validate
Since:
  3.7

### enforceResizeConstraintsForBottomRightCorner

protected void enforceResizeConstraintsForBottomRightCorner(ChangeBoundsRequest changeBoundsRequest)
Ensures that the in addition to the size constraints also the position is respected by the given request. It ensure that on resize the bottom right corner is fixed when resized from any top/left direction. May be overwritten by clients to enforce additional constraints.

Parameters:
  `changeBoundsRequest` - The request to validate
Since:
  3.13

### getMaximumSizeFor

protected org.eclipse.draw2d.geometry.Dimension getMaximumSizeFor(ChangeBoundsRequest request)
Determines the maximum size that the host can be resized to for a given request. By default, a default value is returned. The value is interpreted to be a dimension in the host figure's coordinate system (i.e. relative to its bounds), so it is not affected by zooming affects.

Parameters:
  `request` - the ChangeBoundsRequest
Returns:
  the minimum size
Since:
  3.7

### getMinimumSizeFor

protected org.eclipse.draw2d.geometry.Dimension getMinimumSizeFor(ChangeBoundsRequest request)
Determines the minimum size that the specified child can be resized to.By default, a default value is returned. The value is interpreted to be a dimension in the host figure's coordinate system (i.e. relative to its bounds), so it is not affected by zooming effects.

Parameters:
  `request` - the ChangeBoundsRequest
Returns:
  the minimum size
Since:
  3.7