public class DrawGroup extends DrawItem
A DrawGroup has no local visual representation other than that of its drawItems. Adding items to a drawGroup allows for central event handling, and allows them to be manipulated (drawn, scaled, etc) together.
DrawItems are added to a DrawGroup by creating the DrawItems with DrawItem.drawGroup
set to a drawGroup, or by creating a
DrawGroup with drawItems
.
DrawGroups handle
events by having an explicitly specified group rectangle (see getGroupRect()
). This rectangle has no visual representation
within the draw pane (is not visible) but any user-interactions within the specified coordinates will trigger group
level events.
DrawGroups may contain other DrawGroups.
config, configOnly, factoryCreated, factoryProperties, id, scClassName
Constructor and Description |
---|
DrawGroup() |
DrawGroup(com.google.gwt.core.client.JavaScriptObject jsObj) |
Modifier and Type | Method and Description |
---|---|
java.lang.Boolean |
click()
Notification fired when the user clicks on this DrawGroup.
|
com.google.gwt.core.client.JavaScriptObject |
create() |
boolean |
dragMove()
Notification fired for every mouseMove event triggered while the user is dragging this DrawGroup.
|
boolean |
dragStart()
Notification fired when the user starts to drag this DrawGroup.
|
boolean |
dragStop()
Notification fired when the user stops dragging this DrawGroup.
|
void |
erase()
Erases all DrawItems in the DrawGroup.
|
Point |
getCenter()
Get the center point of the
group rectangle . |
DrawItem[] |
getDrawItems()
Initial list of DrawItems for this DrawGroup.
|
Rectangle |
getGroupRect()
This method will return an array of integers mapping out the coordinates (left, top, width, height) of the "group
rectangle" for the group.
|
int |
getHeight()
Height of the
group rectangle in pixels relative to
the DrawPane (the "drawing coordinate system"). |
KnobType[] |
getKnobs()
NOTE: DrawGroups do not support knobs.
|
int |
getLeft()
Left coordinate of the
group rectangle in pixels
relative to the DrawPane (the "drawing coordinate system"). |
static DrawGroup |
getOrCreateRef(com.google.gwt.core.client.JavaScriptObject jsObj) |
int |
getTop()
Top coordinate of the
group rectangle in pixels
relative to the DrawPane (the "drawing coordinate system"). |
boolean |
getUseGroupRect()
When should this drawGroup receive event notifications? If set to
true , the developer can specify an
explicit set of coordinates . |
int |
getWidth()
Width of the
group rectangle in pixels relative to
the DrawPane (the "drawing coordinate system"). |
java.lang.Boolean |
mouseDown()
Notification fired when the user presses the left mouse button on this DrawGroup.
|
java.lang.Boolean |
mouseMove()
Notification fired when the user moves the mouse over this DrawGroup.
|
java.lang.Boolean |
mouseOut()
Notification fired when the mouse leaves this DrawGroup.
|
java.lang.Boolean |
mouseOver()
Notification fired when the mouse enters this DrawGroup.
|
java.lang.Boolean |
mouseUp()
Notification fired when the user releases the left mouse button on this DrawGroup.
|
void |
moveBy(int dX,
int dY)
Updates the
DrawGroup 's left coordinate by dX and the top coordinate by dY . |
void |
moveTo(java.lang.Integer left,
java.lang.Integer top)
Sets both the left and top coordinates of this
DrawGroup 's group rectangle . |
void |
rotateBy(java.lang.String degrees)
Rotate the group by degrees.
|
void |
rotateTo(java.lang.String degrees)
Rotate the group to degrees.
|
void |
scaleBy(double x,
double y)
Scale all drawItem[] shapes by the x, y multipliers
|
void |
scaleBy(float x,
float y)
Deprecated.
|
void |
scaleTo(double x,
double y)
Scale the each item in the drawGroup by the x, y multipliers
|
void |
scaleTo(float x,
float y)
Deprecated.
|
static void |
setDefaultProperties(DrawGroup drawGroupProperties)
Class level method to set the default properties of this class.
|
void |
setDrawItems(DrawItem... drawItems)
Initial list of DrawItems for this DrawGroup.
|
void |
setHeight(int height)
Height of the
group rectangle in pixels relative to
the DrawPane (the "drawing coordinate system"). |
void |
setKnobs(KnobType... knobs)
NOTE: DrawGroups do not support knobs.
|
void |
setLeft(int left)
Left coordinate of the
group rectangle in pixels
relative to the DrawPane (the "drawing coordinate system"). |
void |
setTop(int top)
Top coordinate of the
group rectangle in pixels
relative to the DrawPane (the "drawing coordinate system"). |
void |
setUseGroupRect(boolean useGroupRect)
When should this drawGroup receive event notifications? If set to
true , the developer can specify an
explicit set of coordinates . |
void |
setWidth(int width)
Width of the
group rectangle in pixels relative to
the DrawPane (the "drawing coordinate system"). |
addClickHandler, addDragMoveHandler, addDragResizeMoveHandler, addDragResizeStartHandler, addDragResizeStopHandler, addDragStartHandler, addDragStopHandler, addMouseDownHandler, addMouseMoveHandler, addMouseOutHandler, addMouseOverHandler, addMouseUpHandler, addMovedHandler, addResizedHandler, addShowContextMenuHandler, changeAutoChildDefaults, changeAutoChildDefaults, changeAutoChildDefaults, computeAngle, computeAngleAsDouble, dragResizeMove, draw, getAttributeAsIntArray, getBoundingBox, getBoundingBoxAsDouble, getCanDrag, getCanHover, getCanvasAutoChild, getContextMenu, getCornerResizeKnob, getCursor, getDestroyed, getDestroying, getDragStartDistance, getDrawGroup, getDrawItemAutoChild, getDrawPane, getEditProxyConstructor, getEndArrow, getEndKnob, getEventOpaque, getFillColor, getFillGradient, getFillGradientAsString, getFillOpacity, getFormItemAutoChild, getHoverDelay, getHoverHTML, getKeepInParentRect, getLineCap, getLineColor, getLineOpacity, getLinePattern, getLineWidth, getMoveKnob, getMoveKnobOffset, getMoveKnobPoint, getPageLeft, getPageTop, getPrompt, getProportionalResizeModifiers, getProportionalResizing, getRef, getResizeBoundingBox, getResizeBoundingBoxAsDouble, getResizeKnobPoints, getResizeOutline, getResizeViaLocalTransformOnly, getRotation, getRotationAsDouble, getScale, getShadow, getShowHover, getShowResizeOutline, getShowTitleLabelBackground, getSideResizeKnob, getStartArrow, getStartKnob, getSvgString, getTitle, getTitleLabel, getTitleLabelBackground, getTitleLabelPadding, getTitleRotationMode, getTranslate, getXShearFactor, getYShearFactor, hide, hideAllKnobs, hideKnobs, hideKnobs, hover, isInBounds, isPointInPath, resizeBy, resizeTo, rotateBy, rotateTo, setAttribute, setAttribute, setAutoChildConstructor, setAutoChildProperties, setAutoChildProperties, setAutoChildProperties, setAutoChildProperties, setAutoChildVisibility, setCanDrag, setCanHover, setCenterPoint, setContextMenu, setCursor, setDefaultProperties, setDragStartDistance, setDrawGroup, setDrawPane, setEditProxyConstructor, setEndArrow, setEventOpaque, setFillColor, setFillGradient, setFillGradient, setFillOpacity, setHoverDelay, setKeepInParentRect, setKeepInParentRect, setLineCap, setLineColor, setLineOpacity, setLinePattern, setLineWidth, setMoveKnobOffset, setMoveKnobPoint, setPrompt, setPropertyValue, setProportionalResizeModifiers, setProportionalResizing, setResizeKnobPoints, setResizeViaLocalTransformOnly, setRotation, setRotation, setScale, setShadow, setShapeData, setShowHover, setShowResizeOutline, setShowTitleLabelBackground, setStartArrow, setTitle, setTitleLabelPadding, setTitleRotationMode, setTranslate, setXShearFactor, setYShearFactor, show, showAllKnobs, showKnobs, showKnobs, supportsEndArrow, supportsStartArrow
applyFactoryProperties, 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, getTestInstance, hasAutoAssignedID, internalSetID, internalSetID, isConfigOnly, isCreated, isFactoryCreated, onBind, onInit, registerID, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setConfig, setConfigOnly, setFactoryCreated, setID, setJavaScriptObject, setProperty, setProperty, setProperty, setProperty, setScClassName
public DrawGroup()
public DrawGroup(com.google.gwt.core.client.JavaScriptObject jsObj)
public static DrawGroup getOrCreateRef(com.google.gwt.core.client.JavaScriptObject jsObj)
public com.google.gwt.core.client.JavaScriptObject create()
public void setHeight(int height)
group rectangle
in pixels relative to
the DrawPane
(the "drawing coordinate system").
DrawGroup
's group rectangle
. Note that setting the height will not move or resize the items in this DrawGroup
.height
- new height for the group rectangle. Default value is 1public int getHeight()
group rectangle
in pixels relative to
the DrawPane
(the "drawing coordinate system").public void setKnobs(KnobType... knobs) throws java.lang.IllegalStateException
setKnobs
in class DrawItem
knobs
- Default value is nulljava.lang.IllegalStateException
- this property cannot be changed after the underlying component has been createdDrawItem.setKnobs(com.smartgwt.client.types.KnobType...)
public KnobType[] getKnobs()
getKnobs
in class DrawItem
DrawItem.getKnobs()
public void setLeft(int left)
group rectangle
in pixels
relative to the DrawPane
(the "drawing coordinate system").
DrawGroup
's group rectangle
. Note that setting the left coordinate will not move the items in this DrawGroup
.left
- new left coordinate. Default value is 0public int getLeft()
group rectangle
in pixels
relative to the DrawPane
(the "drawing coordinate system").public void setTop(int top)
group rectangle
in pixels
relative to the DrawPane
(the "drawing coordinate system").
DrawGroup
's group rectangle
. Note that setting the top coordinate will not move the items in this DrawGroup
.top
- new top coordinate in pixels. Default value is 0public int getTop()
group rectangle
in pixels
relative to the DrawPane
(the "drawing coordinate system").public void setUseGroupRect(boolean useGroupRect) throws java.lang.IllegalStateException
true
, the developer can specify an
explicit set of coordinates
. Whenever the user
interacts with this rectangle, the drawGroup will be notified and the appropriate event handlers will be fired. Note
that rectangle need not contain all DrawItems within the group, and is manually managed by the developer.false
, the event rectangle
coordinates
are unused - instead as a user interacts with specific drawItems within this group, the appropriate event handler would
be fired on the item, then the event would "bubble" to the drawGroup, firing the appropriate event handler at the group
level as well.useGroupRect
- Default value is falsejava.lang.IllegalStateException
- this property cannot be changed after the underlying component has been createdpublic boolean getUseGroupRect()
true
, the developer can specify an
explicit set of coordinates
. Whenever the user
interacts with this rectangle, the drawGroup will be notified and the appropriate event handlers will be fired. Note
that rectangle need not contain all DrawItems within the group, and is manually managed by the developer.false
, the event rectangle
coordinates
are unused - instead as a user interacts with specific drawItems within this group, the appropriate event handler would
be fired on the item, then the event would "bubble" to the drawGroup, firing the appropriate event handler at the group
level as well.public void setWidth(int width)
group rectangle
in pixels relative to
the DrawPane
(the "drawing coordinate system").
DrawGroup
's group rectangle
. Note that setting the width will not move or resize the items in this DrawGroup
.width
- new width for the group rectangle. Default value is 1public int getWidth()
group rectangle
in pixels relative to
the DrawPane
(the "drawing coordinate system").public java.lang.Boolean click()
Note that if useGroupRect
is true, this notification will be triggered
by the user interacting with the specified group
rectangle
for the group. If useGroupRect
is
false, the notification will bubble up from interactions with individual items within the group.
Canvas.getOffsetX()
,
Canvas.getOffsetY()
public boolean dragMove()
canDrag
is true for this group. Note that if useGroupRect
is true, this notification will be triggered
by the user interacting with the specified group
rectangle
for the group. If useGroupRect
is
false, the notification will bubble up from interactions with individual items within the group.
Default drag behavior will be to reposition all items in the group (and update the group rectangle).
Canvas.getOffsetX()
,
Canvas.getOffsetY()
,
Drag pan Examplepublic boolean dragStart()
canDrag
is true for this group. Note that if useGroupRect
is true, this notification will be triggered
by the user interacting with the specified group
rectangle
for the group. If useGroupRect
is
false, the notification will bubble up from interactions with individual items within the group.
Default drag behavior will be to reposition all items in the group (and update the group rectangle).
Canvas.getOffsetX()
,
Canvas.getOffsetY()
,
Drag pan Examplepublic boolean dragStop()
canDrag
is true for this group. Note that if useGroupRect
is true, this notification will be triggered
by the user interacting with the specified group
rectangle
for the group. If useGroupRect
is
false, the notification will bubble up from interactions with individual items within the group.
Canvas.getOffsetX()
,
Canvas.getOffsetY()
public Point getCenter()
group rectangle
.public java.lang.Boolean mouseDown()
Note that if useGroupRect
is true, this notification will be triggered
by the user interacting with the specified group
rectangle
for the group. If useGroupRect
is
false, the notification will bubble up from interactions with individual items within the group.
Canvas.getOffsetX()
,
Canvas.getOffsetY()
public java.lang.Boolean mouseMove()
Note that if useGroupRect
is true, this notification will be triggered
by the user interacting with the specified group
rectangle
for the group. If useGroupRect
is
false, the notification will bubble up from interactions with individual items within the group.
Canvas.getOffsetX()
,
Canvas.getOffsetY()
,
Mouse events Examplepublic java.lang.Boolean mouseOut()
Note that if useGroupRect
is true, this notification will be triggered
by the user interacting with the specified group
rectangle
for the group. If useGroupRect
is
false, the notification will bubble up from interactions with individual items within the group.
public java.lang.Boolean mouseOver()
Note that if useGroupRect
is true, this notification will be triggered
by the user interacting with the specified group
rectangle
for the group. If useGroupRect
is
false, the notification will bubble up from interactions with individual items within the group.
Canvas.getOffsetX()
,
Canvas.getOffsetY()
public java.lang.Boolean mouseUp()
Note that if useGroupRect
is true, this notification will be triggered
by the user interacting with the specified group
rectangle
for the group. If useGroupRect
is
false, the notification will bubble up from interactions with individual items within the group.
Canvas.getOffsetX()
,
Canvas.getOffsetY()
,
Mouse events Examplepublic void moveBy(int dX, int dY)
DrawGroup
's left coordinate by dX
and the top coordinate by dY
. Note
that this does not move or resize the items in this DrawGroup
.public void moveTo(java.lang.Integer left, java.lang.Integer top)
DrawGroup
's group rectangle
. Note that this does not move or resize the
items in this DrawGroup
.public void scaleBy(float x, float y)
GwtFloatVsDouble
x
- scale in the x directiony
- scale in the y directionpublic void scaleBy(double x, double y)
public void scaleTo(float x, float y)
GwtFloatVsDouble
x
- scale in the x directiony
- scale in the y directionpublic void scaleTo(double x, double y)
public static void setDefaultProperties(DrawGroup drawGroupProperties)
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.
drawGroupProperties
- properties that should be used as new defaults when instances of this class are createdSGWTProperties
public void rotateBy(java.lang.String degrees)
degrees
- public void rotateTo(java.lang.String degrees)
degrees
- public void setDrawItems(DrawItem... drawItems) throws java.lang.IllegalStateException
DrawItems can be added to a DrawGroup after initialization by setting
drawGroup
.
drawItems
- drawItems Default value is nulljava.lang.IllegalStateException
- this property cannot be changed after the underlying component has been createdpublic DrawItem[] getDrawItems()
DrawItems can be added to a DrawGroup after initialization by setting
drawGroup
.
public Rectangle getGroupRect()
Developers may also use left
, top
, width
and height
to manage each coordinate directly.