public abstract class SnapToHelper extends java.lang.Object implements PositionConstants
ALWAYS_LEFT, ALWAYS_RIGHT, BOTTOM, CENTER, EAST, EAST_WEST, HORIZONTAL, LEFT, LEFT_CENTER_RIGHT, MIDDLE, NONE, NORTH, NORTH_EAST, NORTH_SOUTH, NORTH_WEST, NSEW, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TOP_MIDDLE_BOTTOM, VERTICAL, WEST
Constructor and Description |
---|
SnapToHelper() |
Modifier and Type | Method and Description |
---|---|
protected void |
makeAbsolute(IFigure figure,
Translatable t)
Translates from a given figure to absolute coordinates.
|
protected void |
makeRelative(IFigure figure,
Translatable t)
Translates from absolute to coordinates relative to the given figure.
|
int |
snapPoint(Request request,
int snapDirections,
PrecisionPoint where,
PrecisionPoint result)
Applies a snapping correction to the given result.
|
int |
snapPoint(Request request,
int snapLocations,
PrecisionRectangle[] rects,
PrecisionPoint result)
A convenience method for snapping a Point based on an array of
rectangles.
|
int |
snapRectangle(Request request,
int snapOrientation,
PrecisionRectangle[] baseRects,
PrecisionRectangle result)
A convenience method for snapping a Rectangle based on one or more
rectangles.
|
abstract int |
snapRectangle(Request request,
int snapOrientation,
PrecisionRectangle baseRect,
PrecisionRectangle result)
Applies a snap correction to a Rectangle based on a given Rectangle.
|
protected void makeAbsolute(IFigure figure, Translatable t)
figure
- the reference figuret
- the object to translateprotected void makeRelative(IFigure figure, Translatable t)
figure
- the reference figuret
- the object to translatepublic int snapPoint(Request request, int snapDirections, PrecisionPoint where, PrecisionPoint result)
PositionConstants
. By default a Point is treated as an empty
Rectangle. Only NORTH and WEST should be used in general. But SOUTH and
EAST may also be used. Similarly, VERTICAL and HORIZONTAL may be used to
allow a point to snap to the "center" or "middle" as defined by the
concrete subclass.
The returned value should be a subset of the given snapDirections based on what correction was applied to the result. e.g., if the x value was adjusted, the returned value should not contain WEST, EAST, or HORIZONTAL.
All coordinate information received and returned by this method should be in absolute coordinates.
request
- a request or null
snapDirections
- the directions in which snapping should occur.where
- the rectangle used to determine snappingresult
- the resultpublic int snapPoint(Request request, int snapLocations, PrecisionRectangle[] rects, PrecisionPoint result)
snapRectangle(Request, int, PrecisionRectangle[], PrecisionRectangle)
. The intended usage of this method is when dragging one or more parts in
a diagram.
The returned value should be a subset of the given snapDirections based on what correction was applied to the result. e.g., if the x value was adjusted, the returned value should not contain WEST, EAST, or HORIZONTAL.
All coordinate information received and returned by this method should be in absolute coordinates.
request
- the request or null
snapLocations
- the types of snapping to performrects
- an array of one or more rectangles used to perform the
snappingresult
- the correction will be applied to this pointpublic int snapRectangle(Request request, int snapOrientation, PrecisionRectangle[] baseRects, PrecisionRectangle result)
snapRectangle(Request, int, PrecisionRectangle, PrecisionRectangle)
for each rectangle in the array or until no more snap locations remain.
All coordinate information received and returned by this method should be in absolute coordinates.
request
- the request or null
baseRects
- the prioritized rectangles to snap toresult
- the outputsnapOrientation
- the input snap locationspublic abstract int snapRectangle(Request request, int snapOrientation, PrecisionRectangle baseRect, PrecisionRectangle result)
The baseRect is not modified. The correction is applied to the result.
The request's extended data
may contain
additional information about the snapping which was performed.
All coordinate information received and returned by this method should be in absolute coordinates.
request
- the request or null
baseRect
- the input rectangleresult
- the correction is applied to this rectanglesnapOrientation
- the input snap locationsCopyright (c) IBM Corp. and others 2000, 2011. All Rights Reserved.