public class DrawItem extends BaseClass implements HasClickHandlers, HasMouseDownHandlers, HasMouseMoveHandlers, HasMouseOutHandlers, HasMouseOverHandlers, HasMouseUpHandlers, HasMovedHandlers, HasDragMoveHandlers, HasDragResizeMoveHandlers, HasDragStartHandlers, HasDragStopHandlers, HasResizedHandlers, HasShowContextMenuHandlers
Note that DrawItems as such should never be created, only concrete
subclasses such as DrawGroup
and DrawLine
.
See DrawPane
for the
different approaches to create DrawItems.
config, id, scClassName
Constructor and Description |
---|
DrawItem() |
DrawItem(com.google.gwt.core.client.JavaScriptObject jsObj) |
Modifier and Type | Method and Description |
---|---|
com.google.gwt.event.shared.HandlerRegistration |
addClickHandler(ClickHandler handler)
Add a click handler.
|
com.google.gwt.event.shared.HandlerRegistration |
addDragMoveHandler(DragMoveHandler handler)
Add a dragMove handler.
|
com.google.gwt.event.shared.HandlerRegistration |
addDragResizeMoveHandler(DragResizeMoveHandler handler)
Add a dragResizeMove handler.
|
com.google.gwt.event.shared.HandlerRegistration |
addDragStartHandler(DragStartHandler handler)
Add a dragStart handler.
|
com.google.gwt.event.shared.HandlerRegistration |
addDragStopHandler(DragStopHandler handler)
Add a dragStop handler.
|
com.google.gwt.event.shared.HandlerRegistration |
addMouseDownHandler(MouseDownHandler handler)
Add a mouseDown handler.
|
com.google.gwt.event.shared.HandlerRegistration |
addMouseMoveHandler(MouseMoveHandler handler)
Add a mouseMove handler.
|
com.google.gwt.event.shared.HandlerRegistration |
addMouseOutHandler(MouseOutHandler handler)
Add a mouseOut handler.
|
com.google.gwt.event.shared.HandlerRegistration |
addMouseOverHandler(MouseOverHandler handler)
Add a mouseOver handler.
|
com.google.gwt.event.shared.HandlerRegistration |
addMouseUpHandler(MouseUpHandler handler)
Add a mouseUp handler.
|
com.google.gwt.event.shared.HandlerRegistration |
addMovedHandler(MovedHandler handler)
Add a moved handler.
|
com.google.gwt.event.shared.HandlerRegistration |
addResizedHandler(ResizedHandler handler)
Add a resized handler.
|
com.google.gwt.event.shared.HandlerRegistration |
addShowContextMenuHandler(ShowContextMenuHandler handler)
Add a showContextMenu handler.
|
static float |
computeAngle(double px1,
double py1,
double px2,
double py2)
Deprecated.
|
static double |
computeAngleAsDouble(double px1,
double py1,
double px2,
double py2)
Computes the angle in degrees from the positive X axis to the difference vector
|
com.google.gwt.core.client.JavaScriptObject |
create() |
void |
dragResizeMove(java.lang.String position,
java.lang.Integer x,
java.lang.Integer y,
java.lang.Integer dX,
java.lang.Integer dY)
If
canDrag is true and the control knobs include "resize" knobs, then this notification
method will be fired when the user drag-resizes the draw item. |
void |
draw()
Draw this item into its current
DrawPane . |
void |
erase()
Erase this drawItem's visual representation and remove it from its DrawGroup (if any) and DrawPane.
|
protected int[] |
getAttributeAsIntArray(java.lang.String property) |
int[] |
getBoundingBox()
Returns the startPoint endPoint
|
java.lang.Double[] |
getBoundingBoxAsDouble()
Returns the startPoint endPoint
|
java.lang.Boolean |
getCanDrag()
Is this DrawItem draggable? If true, then the DrawItem can be drag-repositioned by the user.
|
java.lang.Boolean |
getCanHover()
Will this DrawItem fire hover events when the user hovers over it?
|
Menu |
getContextMenu()
Context menu to show for this object, an instance of the Menu widget.
|
Cursor |
getCursor()
If set, specifies the cursor to display when the mouse pointer is over this DrawItem.
|
java.lang.Boolean |
getDestroyed()
Flag indicating a drawItem has been destroyed, similar to
destroyed . |
java.lang.Boolean |
getDestroying()
Flag indicating a drawItem is mid-destruction, similar to
destroying . |
int |
getDragStartDistance()
Number of pixels the cursor needs to move before the EventHandler starts a drag operation.
|
DrawGroup |
getDrawGroup()
DrawGroup this drawItem is a member of. |
DrawPane |
getDrawPane()
DrawPane this drawItem should draw in. |
ArrowStyle |
getEndArrow()
Style of arrowhead to draw at the end of the line or path.
|
boolean |
getEventOpaque()
Should events inside this DrawItem be attributed to it regardless of which pixels are actually set, if no fill is
specified? If set for DrawItems that aren't closed, will capture events occurring in the region that would filled if a
fill were specified.
|
java.lang.String |
getFillColor()
Fill color to use for shapes.
|
Gradient |
getFillGradient()
Fill gradient to use for shapes.
|
java.lang.String |
getFillGradientAsString()
Fill gradient to use for shapes.
|
float |
getFillOpacity()
Opacity of the fillColor, as a number between 0 (transparent) and 1 (opaque).
|
int |
getHoverDelay()
If
this.canHover is true, how long should the mouse be kept over this widget before the hover event is
fired |
java.lang.String |
getHoverHTML()
If
showHover is true, when the user holds the mouse
over this DrawItem for long enough to trigger a hover event, a hover canvas is shown by default. |
java.lang.Boolean |
getKeepInParentRect()
Constrains drag-resizing and drag-repositioning of this draw item to either the current visible area of the
draw pane or an arbitrary bounding box (if set to an array of the form
[left, top, left + width, top + height] ). |
KnobType[] |
getKnobs()
Array of control knobs to display for this item.
|
LineCap |
getLineCap()
Style of drawing the endpoints of a line.
|
java.lang.String |
getLineColor()
Line color
|
float |
getLineOpacity()
Opacity for lines, as a number between 0 (transparent) and 1 (opaque).
|
LinePattern |
getLinePattern()
Pattern for lines, eg "solid" or "dash".
|
int |
getLineWidth()
Pixel width for lines.
|
int[] |
getMoveKnobOffset()
If this item is showing a
"move" control
knob , this attribute allows you to specify an offset in pixels from the moveKnobPoint for the move knob. |
MoveKnobPoint |
getMoveKnobPoint()
If this item is showing a
KnobType.MOVE control knob , this attribute specifies where the knob should
appear with respect to the draw item. |
static DrawItem |
getOrCreateRef(com.google.gwt.core.client.JavaScriptObject jsObj) |
int |
getPageLeft()
Returns the page-relative left coordinate of the widget on the page, in pixels.
|
int |
getPageTop()
Returns the page-relative top coordinate of the widget on the page, in pixels
|
java.lang.String |
getPrompt()
Default
hover HTML that is displayed in the global
hover canvas if the user hovers over this DrawItem and showHover is true. |
static DrawItem |
getRef(com.google.gwt.core.client.JavaScriptObject jsObj) |
ResizeKnobPoint[] |
getResizeKnobPoints()
If this item is showing
KnobType.RESIZE control knobs , this attribute specifies the points with respect
to the draw item where resize knobs should appear. |
float |
getRotation()
Deprecated.
|
double |
getRotationAsDouble()
Rotation in degrees about the center of the
bounding
box . |
int[] |
getScale()
Array holds 2 values representing scaling along x and y dimensions.
|
Shadow |
getShadow()
Shadow used for all DrawItem subtypes.
|
boolean |
getShowHover()
If
canHover is true, should we show the global hover
canvas by default when the user hovers over this DrawItem? |
ArrowStyle |
getStartArrow()
Style of arrowhead to draw at the beginning of the line or path.
|
void |
getSvgString()
Generates a string containing the SVG source of this DrawItem.
|
void |
hide()
Hide this drawItem.
|
void |
hideKnobs(KnobType... knobType)
Hides a set of control knobs for this drawItem.
|
void |
hideKnobs(KnobType knobType)
Hides a set of control knobs for this drawItem.
|
boolean |
hover()
If
canHover is true for this DrawItem, the hover()
string method will be fired when the user hovers over this DrawItem. |
boolean |
isInBounds(int x,
int y)
Returns true if the given point in the global coordinate system, when converted to coordinates in the drawing coordinate
system, is within the
bounding box of this
DrawItem's shape. |
boolean |
isPointInPath(int x,
int y)
Returns true if the given point in the drawing coordinate system is within this DrawItem's shape, taking into account
local transforms.
|
void |
moveBy(int dX,
int dY)
Move the shape by the specified deltas for the left and top coordinate.
|
void |
resizeBy(int dX,
int dY)
Resize the shape by the specified deltas for the left and top coordinate.
|
void |
resizeTo(int width,
int height)
Resize to the specified size
|
void |
rotateBy(double degrees)
Rotate the shape by the relative rotation in degrees
|
void |
rotateTo(double degrees)
Rotate the shape by the absolute rotation in degrees
|
void |
scaleBy(double x,
double y)
Scale the shape by the x, y multipliers
|
void |
scaleTo(double x,
double y)
Scale the shape by the x, y multipliers
|
protected void |
setAttribute(java.lang.String attribute,
float[] value,
boolean allowPostCreate) |
protected void |
setAttribute(java.lang.String attribute,
java.lang.Float[] value,
boolean allowPostCreate) |
void |
setCanDrag(java.lang.Boolean canDrag)
Is this DrawItem draggable? If true, then the DrawItem can be drag-repositioned by the user.
|
void |
setCanHover(java.lang.Boolean canHover)
Will this DrawItem fire hover events when the user hovers over it?
|
void |
setContextMenu(Menu contextMenu)
Context menu to show for this object, an instance of the Menu widget.
|
void |
setCursor(Cursor cursor)
If set, specifies the cursor to display when the mouse pointer is over this DrawItem.
|
static void |
setDefaultProperties(DrawItem drawItemProperties)
Class level method to set the default properties of this class.
|
void |
setDragStartDistance(int dragStartDistance)
Number of pixels the cursor needs to move before the EventHandler starts a drag operation.
|
void |
setDrawGroup(DrawGroup drawGroup)
DrawGroup this drawItem is a member of. |
void |
setDrawPane(DrawPane drawPane)
DrawPane this drawItem should draw in. |
void |
setEndArrow(ArrowStyle endArrow)
Style of arrowhead to draw at the end of the line or path.
|
void |
setEventOpaque(boolean eventOpaque)
Should events inside this DrawItem be attributed to it regardless of which pixels are actually set, if no fill is
specified? If set for DrawItems that aren't closed, will capture events occurring in the region that would filled if a
fill were specified.
|
void |
setFillColor(java.lang.String fillColor)
Fill color to use for shapes.
|
void |
setFillGradient(Gradient fillGradient)
Fill gradient to use for shapes.
|
void |
setFillGradient(java.lang.String fillGradient)
Fill gradient to use for shapes.
|
void |
setFillOpacity(float fillOpacity)
Opacity of the fillColor, as a number between 0 (transparent) and 1 (opaque).
|
void |
setHoverDelay(int hoverDelay)
If
this.canHover is true, how long should the mouse be kept over this widget before the hover event is
fired |
void |
setKeepInParentRect(java.lang.Boolean keepInParentRect)
Constrains drag-resizing and drag-repositioning of this draw item to either the current visible area of the
draw pane or an arbitrary bounding box (if set to an array of the form
[left, top, left + width, top + height] ). |
void |
setKeepInParentRect(float... keepInParentRect)
Constrains drag-resizing and drag-repositioning of this draw item to either the current visible area of the
draw pane or an arbitrary bounding box (if set to an array of the form
[left, top, left + width, top + height] ). |
void |
setKnobs(KnobType... knobs)
Array of control knobs to display for this item.
|
void |
setLineCap(LineCap lineCap)
Style of drawing the endpoints of a line.
|
void |
setLineColor(java.lang.String lineColor)
Line color
If this method is called after the component has been drawn/initialized: Update lineColor for this drawItem. |
void |
setLineOpacity(float lineOpacity)
Opacity for lines, as a number between 0 (transparent) and 1 (opaque).
|
void |
setLinePattern(LinePattern linePattern)
Pattern for lines, eg "solid" or "dash".
|
void |
setLineWidth(int lineWidth)
Pixel width for lines.
|
void |
setMoveKnobOffset(int[] moveKnobOffset)
If this item is showing a
"move" control
knob , this attribute allows you to specify an offset in pixels from the moveKnobPoint for the move knob. |
void |
setMoveKnobPoint(MoveKnobPoint moveKnobPoint)
If this item is showing a
KnobType.MOVE control knob , this attribute specifies where the knob should
appear with respect to the draw item. |
void |
setPrompt(java.lang.String prompt)
Default
hover HTML that is displayed in the global
hover canvas if the user hovers over this DrawItem and showHover is true. |
void |
setResizeKnobPoints(ResizeKnobPoint... resizeKnobPoints)
If this item is showing
KnobType.RESIZE control knobs , this attribute specifies the points with respect
to the draw item where resize knobs should appear. |
void |
setRotation(double rotation)
Rotation in degrees about the center of the
bounding
box . |
void |
setRotation(float rotation)
Deprecated.
|
void |
setScale(int[] scale)
Array holds 2 values representing scaling along x and y dimensions.
|
void |
setShadow(Shadow shadow)
Shadow used for all DrawItem subtypes.
|
void |
setShowHover(boolean showHover)
If
canHover is true, should we show the global hover
canvas by default when the user hovers over this DrawItem? |
void |
setStartArrow(ArrowStyle startArrow)
Style of arrowhead to draw at the beginning of the line or path.
|
void |
show()
Make this drawItem visible.
|
void |
showKnobs(KnobType... knobType)
Shows a set of control knobs for this drawItem.
|
void |
showKnobs(KnobType knobType)
Shows a set of control knobs for this drawItem.
|
boolean |
supportsEndArrow()
Does this DrawItem support
DrawItem.setEndArrow() ? For
example, this is false for DrawRect and DrawOval , and true for DrawLine . |
boolean |
supportsStartArrow()
Does this DrawItem support
DrawItem.setStartArrow() ?
For example, this is false for DrawRect and DrawOval , and true for DrawLine . |
asSGWTComponent, createJsObj, destroy, doAddHandler, doInit, error, error, errorIfNotCreated, fireEvent, getAttribute, getAttributeAsBoolean, getAttributeAsDate, getAttributeAsDouble, getAttributeAsElement, getAttributeAsFloat, getAttributeAsInt, getAttributeAsJavaScriptObject, getAttributeAsMap, getAttributeAsString, getAttributeAsStringArray, getClassName, getConfig, getHandlerCount, getID, getJsObj, getOrCreateJsObj, getScClassName, hasAutoAssignedID, internalSetID, internalSetID, isCreated, onBind, onInit, registerID, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setConfig, setID, setJavaScriptObject, setProperty, setProperty, setProperty, setProperty, setScClassName
public DrawItem()
public DrawItem(com.google.gwt.core.client.JavaScriptObject jsObj)
public static DrawItem getOrCreateRef(com.google.gwt.core.client.JavaScriptObject jsObj)
public com.google.gwt.core.client.JavaScriptObject create()
public void setCanDrag(java.lang.Boolean canDrag)
canDrag
.
Note : This is an advanced setting
canDrag
- new value for this.canDrag
.. Default value is falsepublic java.lang.Boolean getCanDrag()
public void setCanHover(java.lang.Boolean canHover)
canHover
- Default value is nullsetShowHover(boolean)
public java.lang.Boolean getCanHover()
getShowHover()
public void setContextMenu(Menu contextMenu)
Note: if Canvas.destroy()
is called on a canvas, any specified context menu is not
automatically destroyed as well. This is in contrast to MenuButton
s which
automatically destroy their specified menu
by default. The
behavior is intentional as context menus are commonly reused across components.
contextMenu
- Default value is nullShowContextMenuEvent
,
Cues overview and related methods
,
Context menus Examplepublic Menu getContextMenu()
Note: if Canvas.destroy()
is called on a canvas, any specified context menu is not
automatically destroyed as well. This is in contrast to MenuButton
s which
automatically destroy their specified menu
by default. The
behavior is intentional as context menus are commonly reused across components.
ShowContextMenuEvent
,
Cues overview and related methods
,
Context menus Examplepublic void setCursor(Cursor cursor)
Note : This is an advanced setting
cursor
- new cursor.. Default value is nullpublic Cursor getCursor()
public java.lang.Boolean getDestroyed() throws java.lang.IllegalStateException
destroyed
.
Note : This method should be called only after the underlying component has been created.
java.lang.IllegalStateException
- if the underlying component has not yet been created.public java.lang.Boolean getDestroying() throws java.lang.IllegalStateException
destroying
.
Note : This method should be called only after the underlying component has been created.
java.lang.IllegalStateException
- if the underlying component has not yet been created.public void setDragStartDistance(int dragStartDistance)
Note : This is an advanced setting
dragStartDistance
- Default value is 5Dragdrop overview and related methods
public int getDragStartDistance()
Dragdrop overview and related methods
public void setDrawGroup(DrawGroup drawGroup) throws java.lang.IllegalStateException
DrawGroup
this drawItem is a member of.drawGroup
- Default value is nulljava.lang.IllegalStateException
- this property cannot be changed after the underlying component has been createdpublic DrawGroup getDrawGroup()
DrawGroup
this drawItem is a member of.public void setDrawPane(DrawPane drawPane) throws java.lang.IllegalStateException
DrawPane
this drawItem should draw in. If this item has a DrawGroup
, the drawGroup's drawPane is automatically used.
drawPane
- Default value is nulljava.lang.IllegalStateException
- this property cannot be changed after the underlying component has been createdpublic DrawPane getDrawPane()
DrawPane
this drawItem should draw in. If this item has a DrawGroup
, the drawGroup's drawPane is automatically used.
public void setEndArrow(ArrowStyle endArrow)
NOTE: Not all DrawItem classes support arrowheads. You can use DrawItem.supportsEndArrow()
to dynamically check whether a DrawItem instance supports this method.
endArrow
- style of arrow to use. Default value is nullpublic ArrowStyle getEndArrow()
public void setEventOpaque(boolean eventOpaque) throws java.lang.IllegalStateException
Note : This is an advanced setting
eventOpaque
- Default value is variesjava.lang.IllegalStateException
- this property cannot be changed after the underlying component has been createdsetFillColor(java.lang.String)
,
setFillOpacity(float)
public boolean getEventOpaque()
getFillColor()
,
getFillOpacity()
public void setFillColor(java.lang.String fillColor)
fillColor
- new fillColor to use. Pass null for transparent. See CSSColor
. Default value is nullpublic java.lang.String getFillColor()
CSSColor
public void setFillGradient(Gradient fillGradient)
DrawPane.addGradient()
. Otherwise it expects one of SimpleGradient
, LinearGradient
or RadialGradient
.
fillGradient
- new gradient to use. Pass null for transparent.. Default value is nullGradient
public Gradient getFillGradient()
DrawPane.addGradient()
. Otherwise it expects one of SimpleGradient
, LinearGradient
or RadialGradient
.Gradient
public void setFillGradient(java.lang.String fillGradient)
DrawPane.addGradient()
. Otherwise it expects one of SimpleGradient
, LinearGradient
or RadialGradient
.
fillGradient
- new gradient to use. Pass null for transparent.. Default value is nullGradient
public java.lang.String getFillGradientAsString()
DrawPane.addGradient()
. Otherwise it expects one of SimpleGradient
, LinearGradient
or RadialGradient
.Gradient
public void setFillOpacity(float fillOpacity)
fillOpacity
- new opacity, as a number between 0 (transparent) and 1 (opaque).. Default value is 1.0public float getFillOpacity()
public void setHoverDelay(int hoverDelay)
this.canHover
is true, how long should the mouse be kept over this widget before the hover event is
firedhoverDelay
- Default value is 300setCanHover(java.lang.Boolean)
,
hover()
public int getHoverDelay()
this.canHover
is true, how long should the mouse be kept over this widget before the hover event is
firedgetCanHover()
,
hover()
public void setKeepInParentRect(java.lang.Boolean keepInParentRect)
draw pane
or an arbitrary bounding box (if set to an array of the form
[left, top, left + width, top + height]
). When using a bounding box-type argument the left/top values can
be negative, or the width/height values can be greater than the dimensions of the viewable area, to allow positioning or
resizing the draw item beyond the confines of the draw pane. Note: keepInParentRect affects only user drag interactions, not programmatic moves or resizes.
Note : This is an advanced setting
keepInParentRect
- Default value is nullpublic java.lang.Boolean getKeepInParentRect()
draw pane
or an arbitrary bounding box (if set to an array of the form
[left, top, left + width, top + height]
). When using a bounding box-type argument the left/top values can
be negative, or the width/height values can be greater than the dimensions of the viewable area, to allow positioning or
resizing the draw item beyond the confines of the draw pane. Note: keepInParentRect affects only user drag interactions, not programmatic moves or resizes.
public void setKeepInParentRect(float... keepInParentRect)
draw pane
or an arbitrary bounding box (if set to an array of the form
[left, top, left + width, top + height]
). When using a bounding box-type argument the left/top values can
be negative, or the width/height values can be greater than the dimensions of the viewable area, to allow positioning or
resizing the draw item beyond the confines of the draw pane. Note: keepInParentRect affects only user drag interactions, not programmatic moves or resizes.
Note : This is an advanced setting
keepInParentRect
- Default value is nullpublic void setKnobs(KnobType... knobs) throws java.lang.IllegalStateException
KnobType
specified in this will
turn on UI element(s) allowing the user to manipulate this drawItem. To update the set of knobs at runtime use DrawItem.showKnobs()
and DrawItem.hideKnobs()
. NOTE: Unless otherwise
documented, DrawItem types only support KnobType.RESIZE
and KnobType.MOVE
knobs.
knobs
- Default value is nulljava.lang.IllegalStateException
- this property cannot be changed after the underlying component has been createdpublic KnobType[] getKnobs()
KnobType
specified in this will
turn on UI element(s) allowing the user to manipulate this drawItem. To update the set of knobs at runtime use DrawItem.showKnobs()
and DrawItem.hideKnobs()
. NOTE: Unless otherwise
documented, DrawItem types only support KnobType.RESIZE
and KnobType.MOVE
knobs.
public void setLineCap(LineCap lineCap)
Note that for dashed and dotted lines, the lineCap style affects each dash
or dot.
If this method is called after the component has been drawn/initialized:
Update lineCap for this drawItem.
lineCap
- new lineCap to use. Default value is "round"public LineCap getLineCap()
Note that for dashed and dotted lines, the lineCap style affects each dash or dot.
public void setLineColor(java.lang.String lineColor)
lineColor
- new line color. Pass null for transparent. See CSSColor
. Default value is "#808080"public java.lang.String getLineColor()
CSSColor
public void setLineOpacity(float lineOpacity)
lineOpacity
- new opacity, as a number between 0 (transparent) and 1 (opaque).. Default value is 1.0public float getLineOpacity()
public void setLinePattern(LinePattern linePattern)
Note that support in old browsers, such as Internet Explorer versions
before IE11, is limited for drawingType
"bitmap" to
items with straight edges - DrawLine
s, DrawPath
s, and DrawRect
s with no
rounding
.
If this method is called after the component has been drawn/initialized:
Update linePattern for this drawItem.
linePattern
- new linePattern to use. Default value is "solid"public LinePattern getLinePattern()
Note that support in old browsers, such as Internet Explorer versions
before IE11, is limited for drawingType
"bitmap" to
items with straight edges - DrawLine
s, DrawPath
s, and DrawRect
s with no
rounding
.
public void setLineWidth(int lineWidth)
lineWidth
- new pixel lineWidth. Default value is 3public int getLineWidth()
public void setMoveKnobOffset(int[] moveKnobOffset)
"move"
control
knob
, this attribute allows you to specify an offset in pixels from the moveKnobPoint
for the move knob. Offset should be
specified as a 2-element array of [left offset, top offset].
moveKnobOffset
.
Note : This is an advanced setting
moveKnobOffset
- the new move knob offset. This is a 2-element array of [left offset, top offset]. If null, then new int[] {0,
0}
is assumed.. Default value is [0,0]setMoveKnobPoint(com.smartgwt.client.types.MoveKnobPoint)
public int[] getMoveKnobOffset()
"move"
control
knob
, this attribute allows you to specify an offset in pixels from the moveKnobPoint
for the move knob. Offset should be
specified as a 2-element array of [left offset, top offset].getMoveKnobPoint()
public void setMoveKnobPoint(MoveKnobPoint moveKnobPoint) throws java.lang.IllegalStateException
KnobType.MOVE
control knob
, this attribute specifies where the knob should
appear with respect to the draw item.moveKnobPoint
- Default value is "TL"java.lang.IllegalStateException
- this property cannot be changed after the underlying component has been createdsetMoveKnobOffset(int[])
public MoveKnobPoint getMoveKnobPoint()
KnobType.MOVE
control knob
, this attribute specifies where the knob should
appear with respect to the draw item.getMoveKnobOffset()
public void setPrompt(java.lang.String prompt)
hover HTML
that is displayed in the global
hover canvas if the user hovers over this DrawItem and showHover
is true.prompt
- See HTMLString
. Default value is nullpublic java.lang.String getPrompt()
hover HTML
that is displayed in the global
hover canvas if the user hovers over this DrawItem and showHover
is true.HTMLString
public void setResizeKnobPoints(ResizeKnobPoint... resizeKnobPoints) throws java.lang.IllegalStateException
KnobType.RESIZE
control knobs
, this attribute specifies the points with respect
to the draw item where resize knobs should appear.resizeKnobPoints
- Default value is ["TL","TR","BL","BR"]java.lang.IllegalStateException
- this property cannot be changed after the underlying component has been createdpublic ResizeKnobPoint[] getResizeKnobPoints()
KnobType.RESIZE
control knobs
, this attribute specifies the points with respect
to the draw item where resize knobs should appear.public void setRotation(float rotation) throws java.lang.IllegalStateException
GwtFloatVsDouble
bounding
box
. The positive direction is clockwise.rotation
- Default value is 0.0java.lang.IllegalStateException
- this property cannot be changed after the underlying component has been createdpublic float getRotation()
GwtFloatVsDouble
bounding
box
. The positive direction is clockwise.public void setRotation(double rotation) throws java.lang.IllegalStateException
bounding
box
. The positive direction is clockwise.rotation
- Default value is 0.0java.lang.IllegalStateException
- this property cannot be changed after the underlying component has been createdpublic double getRotationAsDouble()
bounding
box
. The positive direction is clockwise.public void setScale(int[] scale) throws java.lang.IllegalStateException
Note : This is an advanced setting
scale
- Default value is nulljava.lang.IllegalStateException
- this property cannot be changed after the underlying component has been createdpublic int[] getScale()
public void setShadow(Shadow shadow)
shadow
- new shadow. Default value is nullpublic Shadow getShadow()
public void setShowHover(boolean showHover)
canHover
is true, should we show the global hover
canvas by default when the user hovers over this DrawItem?showHover
- Default value is truegetHoverHTML()
public boolean getShowHover()
canHover
is true, should we show the global hover
canvas by default when the user hovers over this DrawItem?getHoverHTML()
public void setStartArrow(ArrowStyle startArrow)
NOTE: Not all DrawItem classes support arrowheads. You can use DrawItem.supportsStartArrow()
to dynamically check whether a DrawItem instance supports this method.
startArrow
- style of arrow to use. Default value is nullpublic ArrowStyle getStartArrow()
public com.google.gwt.event.shared.HandlerRegistration addClickHandler(ClickHandler handler)
Notification fired when the user clicks on this DrawItem.
Note that if this item is part of a DrawGroup
, then the group's useGroupRect
setting affects whether this item receives
the notification. If useGroupRect is true, then this item will not receive the notification. Otherwise, the
item receives the notification and notification bubbles up to the group.
addClickHandler
in interface HasClickHandlers
handler
- the click handlerHandlerRegistration
used to remove this handlerpublic void dragResizeMove(java.lang.String position, java.lang.Integer x, java.lang.Integer y, java.lang.Integer dX, java.lang.Integer dY)
canDrag
is true and the control knobs
include "resize" knobs, then this notification
method will be fired when the user drag-resizes the draw item.position
- provides which knob of the resizeKnobPoints
was
draggedx
- new x-coordinate of the knoby
- new y-coordinate of the knobdX
- horizontal distance moveddY
- vertical distance movedpublic void draw()
DrawPane
.public void erase()
To re-draw the
item within the DrawPane, call DrawItem.draw()
again, or use
DrawPane.addDrawItem()
to move to another DrawGroup.
public java.lang.String getHoverHTML()
showHover
is true, when the user holds the mouse
over this DrawItem for long enough to trigger a hover event, a hover canvas is shown by default. This method returns the
contents of that hover canvas. Default implementation returns prompt
- override for custom hover HTML. Note that returning
null
or an empty string will suppress the hover canvas altogether.public int getPageLeft()
Positioning overview and related methods
public int getPageTop()
Positioning overview and related methods
public void getSvgString()
NOTE: The generated SVG source assumes that the
default namespace is http://www.w3.org/2000/svg
and that namespace prefix xlink
refers to
namespace name http://www.w3.org/1999/xlink
.
public void hide()
public void hideKnobs(KnobType knobType)
knobs
to remove the specified knobType, and clears any drawn knobs for this knobType.knobType
- knobs to hidepublic void hideKnobs(KnobType... knobType)
knobs
to remove the specified knobType, and clears any drawn knobs for this knobType.knobType
- knobs to hidepublic boolean hover()
canHover
is true for this DrawItem, the hover()
string method will be fired when the user hovers over this DrawItem. If this method returns false, it will suppress the
default behavior of showing a hover canvas if showHover
is true.public boolean isInBounds(int x, int y)
bounding box
of this
DrawItem's shape. This method can be used to quickly check whether the given point is definitely not within
the DrawItem shape. To check whether the point is within the DrawItem shape, use the slower but exact DrawItem.isPointInPath()
method.
x
- X coordinate of the point in the global coordinate system.y
- Y coordinate of the point in the global coordinate system.public boolean isPointInPath(int x, int y)
x
- X coordinate of the test point.y
- Y coordinate of the test point.public com.google.gwt.event.shared.HandlerRegistration addMouseDownHandler(MouseDownHandler handler)
Notification fired when the user presses the left mouse button on this DrawItem.
Note that if this item is part of a
DrawGroup
, then the group's useGroupRect
setting affects whether this item receives
the notification. If useGroupRect is true, then this item will not receive the notification. Otherwise, the
item receives the notification and notification bubbles up to the group.
addMouseDownHandler
in interface HasMouseDownHandlers
handler
- the mouseDown handlerHandlerRegistration
used to remove this handlerpublic com.google.gwt.event.shared.HandlerRegistration addMouseMoveHandler(MouseMoveHandler handler)
Notification fired when the user moves the mouse over this DrawItem.
Note that if this item is part of a DrawGroup
, then the group's useGroupRect
setting affects whether this item receives
the notification. If useGroupRect is true, then this item will not receive the notification. Otherwise, the
item receives the notification and notification bubbles up to the group.
addMouseMoveHandler
in interface HasMouseMoveHandlers
handler
- the mouseMove handlerHandlerRegistration
used to remove this handlerpublic com.google.gwt.event.shared.HandlerRegistration addMouseOutHandler(MouseOutHandler handler)
Notification fired when the mouse leaves this DrawItem.
Note that if this item is part of a DrawGroup
, then the group's useGroupRect
setting affects whether this item receives
the notification. If useGroupRect is true, then this item will not receive the notification. Otherwise, the
item receives the notification and notification bubbles up to the group.
addMouseOutHandler
in interface HasMouseOutHandlers
handler
- the mouseOut handlerHandlerRegistration
used to remove this handlerpublic com.google.gwt.event.shared.HandlerRegistration addMouseOverHandler(MouseOverHandler handler)
Notification fired when the mouse enters this DrawItem.
Note that if this item is part of a DrawGroup
, then the group's useGroupRect
setting affects whether this item receives
the notification. If useGroupRect is true, then this item will not receive the notification. Otherwise, the
item receives the notification and notification bubbles up to the group.
addMouseOverHandler
in interface HasMouseOverHandlers
handler
- the mouseOver handlerHandlerRegistration
used to remove this handlerpublic com.google.gwt.event.shared.HandlerRegistration addMouseUpHandler(MouseUpHandler handler)
Notification fired when the user releases the left mouse button on this DrawItem.
Note that if this item is part of
a DrawGroup
, then the group's useGroupRect
setting affects whether this item receives
the notification. If useGroupRect is true, then this item will not receive the notification. Otherwise, the
item receives the notification and notification bubbles up to the group.
addMouseUpHandler
in interface HasMouseUpHandlers
handler
- the mouseUp handlerHandlerRegistration
used to remove this handlerpublic void moveBy(int dX, int dY)
dX
- change to left coordinate in pixelsdY
- change to top coordinate in pixelspublic com.google.gwt.event.shared.HandlerRegistration addMovedHandler(MovedHandler handler)
Notification method fired when this component is explicitly moved. Note that a component's position on the screen may
also be changed due to an ancestor being moved. The parentMoved()
method provides a notification entry point to catch that case as well.
addMovedHandler
in interface HasMovedHandlers
handler
- the moved handlerHandlerRegistration
used to remove this handlerpublic com.google.gwt.event.shared.HandlerRegistration addDragMoveHandler(DragMoveHandler handler)
If canDrag
is true, this notification method will be
fired when the user drags the draw item.
addDragMoveHandler
in interface HasDragMoveHandlers
handler
- the dragMove handlerHandlerRegistration
used to remove this handlerpublic com.google.gwt.event.shared.HandlerRegistration addDragResizeMoveHandler(DragResizeMoveHandler handler)
If canDrag
is true and the control knobs
include "resize" knobs, then this notification
method will be fired when the user drags the resize knobs of the draw item.
addDragResizeMoveHandler
in interface HasDragResizeMoveHandlers
handler
- the dragResizeMove handlerHandlerRegistration
used to remove this handlerpublic com.google.gwt.event.shared.HandlerRegistration addDragStartHandler(DragStartHandler handler)
If canDrag
is true, this notification method will be
fired when the user starts to drag the draw item.
addDragStartHandler
in interface HasDragStartHandlers
handler
- the dragStart handlerHandlerRegistration
used to remove this handlerpublic com.google.gwt.event.shared.HandlerRegistration addDragStopHandler(DragStopHandler handler)
If canDrag
is true, this notification method will be
fired when the user completes a drag on the draw item.
addDragStopHandler
in interface HasDragStopHandlers
handler
- the dragStop handlerHandlerRegistration
used to remove this handlerpublic void resizeBy(int dX, int dY)
dX
- change to left coordinate in pixelsdY
- change to top coordinate in pixelspublic com.google.gwt.event.shared.HandlerRegistration addResizedHandler(ResizedHandler handler)
Observable method called whenever a DrawItem changes size.
addResizedHandler
in interface HasResizedHandlers
handler
- the resized handlerHandlerRegistration
used to remove this handlerpublic void resizeTo(int width, int height)
width
- new widthheight
- new heightpublic void rotateBy(double degrees)
degrees
- number of degrees to rotate from current orientation.public void rotateTo(double degrees)
degrees
- number of degrees to rotatepublic void scaleBy(double x, double y)
x
- scale in the x directiony
- scale in the y directionpublic void scaleTo(double x, double y)
x
- scale in the x directiony
- scale in the y directionpublic void show()
public com.google.gwt.event.shared.HandlerRegistration addShowContextMenuHandler(ShowContextMenuHandler handler)
Executed when the right mouse button is clicked. The default implementation of this method auto-creates a Menu
from the contextMenu
property on this component and then calls Menu.showContextMenu()
on it to show it.
If you want to show a standard context menu, you can simply define your Menu and set it as the contextMenu property on your component - you do not need to override this method.
If you want to do some other processing before showing a menu or do something else entirely, then you should override this method. Note that the return value from this method controls whether or not the native browser context menu is shown.
addShowContextMenuHandler
in interface HasShowContextMenuHandlers
handler
- the showContextMenu handlerHandlerRegistration
used to remove this handlerpublic void showKnobs(KnobType knobType)
knobs
to include the specified knobType, and if necessary draws out the appropriate control knobs.knobType
- knobs to showpublic void showKnobs(KnobType... knobType)
knobs
to include the specified knobType, and if necessary draws out the appropriate control knobs.knobType
- knobs to showpublic boolean supportsEndArrow()
DrawItem.setEndArrow()
? For
example, this is false for DrawRect
and DrawOval
, and true for DrawLine
.public boolean supportsStartArrow()
DrawItem.setStartArrow()
?
For example, this is false for DrawRect
and DrawOval
, and true for DrawLine
.public static void setDefaultProperties(DrawItem drawItemProperties)
Note: This method is intended for setting default attributes only and will affect all instances of the underlying class (including those automatically generated in JavaScript). This method should not be used to apply standard EventHandlers or override methods for a class - use a custom subclass instead. Calling this method after instances have been created can result in undefined behavior, since it bypasses any setters and a class instance may have already examined a particular property and not be expecting any changes through this route.
drawItemProperties
- properties that should be used as new defaults when instances of this class are createdpublic static DrawItem getRef(com.google.gwt.core.client.JavaScriptObject jsObj)
public static float computeAngle(double px1, double py1, double px2, double py2)
GwtFloatVsDouble
px1
- X coordinate of v1py1
- Y coordinate of v1px2
- X coordinate of v2py2
- Y coordinate of v2public static double computeAngleAsDouble(double px1, double py1, double px2, double py2)
px1
- X coordinate of v1py1
- Y coordinate of v1px2
- X coordinate of v2py2
- Y coordinate of v2public java.lang.Double[] getBoundingBoxAsDouble()
public int[] getBoundingBox()
protected int[] getAttributeAsIntArray(java.lang.String property)
protected void setAttribute(java.lang.String attribute, java.lang.Float[] value, boolean allowPostCreate)
setAttribute
in class BaseClass
protected void setAttribute(java.lang.String attribute, float[] value, boolean allowPostCreate)
setAttribute
in class BaseClass