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. AChangeBoundsRequest
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 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) insteadResizeTracker(GraphicalEditPart owner, int direction)
Constructs a resize tracker that resizes in the specified direction.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
activate()
Activates the tool.void
commitDrag()
Added for compatibility.protected java.util.List
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
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 java.lang.String
getCommandName()
Returns the identifier of the command that is being sought.protected java.lang.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, 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
-
-
-
-
Constructor Detail
-
ResizeTracker
public ResizeTracker(int direction)
Deprecated.use ResizeTracker(GraphicalEditPart, int) insteadConstructs a resize tracker that resizes in the specified direction. The direction is specified usingPositionConstants.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 usingPositionConstants.NORTH
,PositionConstants.NORTH_EAST
, etc.- Parameters:
owner
- of the resize handle which returned this trackerdirection
- the direction
-
-
Method Detail
-
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 interfaceTool
- Overrides:
activate
in classAbstractTool
- 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 theDragTracker
interface.- Specified by:
commitDrag
in interfaceDragTracker
- Overrides:
commitDrag
in classSimpleDragTracker
- See Also:
AbstractTool.commitDrag()
-
createOperationSet
protected java.util.List createOperationSet()
Returns all selected parts which understand resizing.- Overrides:
createOperationSet
in classAbstractTool
- 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 classSimpleDragTracker
- 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 interfaceTool
- Overrides:
deactivate
in classSimpleDragTracker
- See Also:
AbstractTool.deactivate()
-
eraseTargetFeedback
protected void eraseTargetFeedback()
This method is invoked when the resize operation is complete. It notifies thetarget
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 classAbstractTool
- Returns:
- a newly obtained command
- See Also:
AbstractTool.getCommand()
-
getCommandName
protected java.lang.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 classAbstractTool
- 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 classAbstractTool
- Returns:
- the default cursor
- See Also:
AbstractTool.getDefaultCursor()
-
getDebugName
protected java.lang.String getDebugName()
Description copied from class:AbstractTool
Returns the debug name for this tool.- Overrides:
getDebugName
in classAbstractTool
- 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 fromPositionConstants
.- 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 deprecatedconstructor
.
-
handleButtonUp
protected boolean handleButtonUp(int button)
If dragging is in progress, cleans up feedback and calls performDrag().- Overrides:
handleButtonUp
in classSimpleDragTracker
- 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 classSimpleDragTracker
- 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 thetarget
to show target feedback.
-
updateSourceRequest
protected void updateSourceRequest()
Description copied from class:SimpleDragTracker
Updates the source request.- Overrides:
updateSourceRequest
in classSimpleDragTracker
- 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
-
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
-
-