Class WCanvasPaintDevice
- All Implemented Interfaces:
WPaintDevice
The WCanvasPaintDevice is used by WPaintedWidget to render to the browser using the
HTML 5 <canvas> element. You usually will not use the device directly, but rather rely on
WPaintedWidget to use this device when appropriate.
Note: Older browsers do not have text support in <canvas>. Text is then
rendered in an overlayed DIV and a consequence text is not subject to rotation and scaling
components of the current transformation (but does take into account translation). On most
browser you can use the WSvgImage or WVmlImage paint devices which do support
text natively.
Note: To paint an image (WPainter#drawImage()), this requires its uri.
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class eu.webtoolkit.jwt.WObject
WObject.FormData -
Constructor Summary
ConstructorsConstructorDescriptionWCanvasPaintDevice(WLength width, WLength height) Create a canvas paint device.WCanvasPaintDevice(WLength width, WLength height, boolean paintUpdate) Create a canvas paint device. -
Method Summary
Modifier and TypeMethodDescriptionvoiddone()Finishes painting on the device.voidDraws an arc.voiddrawImage(WRectF rect, WAbstractDataInfo info, int imgWidth, int imgHeight, WRectF sourceRect) Draws an image.voidDraws an image.voiddrawLine(double x1, double y1, double x2, double y2) Draws a line.voiddrawPath(WPainterPath path) Draws a path.voidDraws a rectangle.voiddrawStencilAlongPath(WPainterPath stencil, WPainterPath path, boolean softClipping) voiddrawText(WRectF rect, EnumSet<AlignmentFlag> flags, TextFlag textFlag, WTextF text, WPointF clipPoint) Draws text.voiddrawText(WRectF rect, EnumSet<AlignmentFlag> alignmentFlags, TextFlag textFlag, CharSequence text, WPointF clipPoint) Draws text.voiddrawTextOnPath(WRectF rect, EnumSet<AlignmentFlag> alignmentFlags, List<WTextF> text, WTransform transform, WPainterPath path, double angle, double lineHeight, boolean softClipping) Returns device features.Returns font metrics.Returns the device height.Returns the painter that is currently painting on the device.getWidth()Returns the device width.voidinit()Initializes the device for painting.booleanReturns whether painting is active.measureText(CharSequence text, double maxWidth, boolean wordWrap) Measures rendered text size.voidrender(String paintedWidgetJsRef, String canvasId, DomElement text, String updateAreasJs) voidrenderPaintCommands(StringWriter js_target, String canvasElement) voidsetChanged(EnumSet<PainterChangeFlag> flags) Indicates changes in painter state.voidsetPainter(WPainter painter) Sets the painter.Methods inherited from class eu.webtoolkit.jwt.WObject
getId, getObjectName, remove, resendFormData, setFormData, setObjectName, trMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface eu.webtoolkit.jwt.WPaintDevice
measureText, measureText, setChanged
-
Constructor Details
-
WCanvasPaintDevice
Create a canvas paint device. -
WCanvasPaintDevice
Create a canvas paint device.
-
-
Method Details
-
getFeatures
Description copied from interface:WPaintDeviceReturns device features.- Specified by:
getFeaturesin interfaceWPaintDevice
-
setChanged
Description copied from interface:WPaintDeviceIndicates changes in painter state.The
flagsargument is the logical OR of one or more change flags.- Specified by:
setChangedin interfaceWPaintDevice
-
drawArc
Description copied from interface:WPaintDeviceDraws an arc.The arc describes the segment of an ellipse enclosed by the rect. The segment starts at
startAngle, and spans an angle given byspanAngle. These angles have as unit degree, and are measured counter-clockwise starting from the 3 o'clock position.The arc must be stroked, filled, and transformed using the current painter settings.
- Specified by:
drawArcin interfaceWPaintDevice
-
drawImage
Description copied from interface:WPaintDeviceDraws an image.Draws sourceRect from the image with URL
imageUriand original dimensions imgWidth andimgHeightto the location, into the rectangle defined byrect.The image is transformed using the current painter settings.
- Specified by:
drawImagein interfaceWPaintDevice
-
drawImage
public void drawImage(WRectF rect, WAbstractDataInfo info, int imgWidth, int imgHeight, WRectF sourceRect) Description copied from interface:WPaintDeviceDraws an image.Draws
sourceRectfrom the image with the information contained inimageInfoand original dimensionsimgWidthandimgHeightto the location, into the rectangle defined byrect.The image is transformed using the current painter settings.
- Specified by:
drawImagein interfaceWPaintDevice
-
drawLine
public void drawLine(double x1, double y1, double x2, double y2) Description copied from interface:WPaintDeviceDraws a line.The line must be stroked and transformed using the current painter settings.
- Specified by:
drawLinein interfaceWPaintDevice
-
drawPath
Description copied from interface:WPaintDeviceDraws a path.The path must be stroked, filled, and transformed using the current painter settings.
- Specified by:
drawPathin interfaceWPaintDevice
-
drawStencilAlongPath
-
drawRect
Description copied from interface:WPaintDeviceDraws a rectangle.The rect must be stroked, filled, and transformed using the current painter settings.
- Specified by:
drawRectin interfaceWPaintDevice
-
drawText
public void drawText(WRectF rect, EnumSet<AlignmentFlag> flags, TextFlag textFlag, WTextF text, WPointF clipPoint) Description copied from interface:WPaintDeviceDraws text.The text must be rendered, stroked and transformed using the current painter settings.
If clipPoint is not null, a check is performed whether the point is inside of the current clip area. If not, the text is not drawn.
- Specified by:
drawTextin interfaceWPaintDevice
-
drawText
public void drawText(WRectF rect, EnumSet<AlignmentFlag> alignmentFlags, TextFlag textFlag, CharSequence text, WPointF clipPoint) Description copied from interface:WPaintDeviceDraws text.The text must be rendered, stroked and transformed using the current painter settings.
If clipPoint is not null, a check is performed whether the point is inside of the current clip area. If not, the text is not drawn.
- Specified by:
drawTextin interfaceWPaintDevice
-
drawTextOnPath
public void drawTextOnPath(WRectF rect, EnumSet<AlignmentFlag> alignmentFlags, List<WTextF> text, WTransform transform, WPainterPath path, double angle, double lineHeight, boolean softClipping) -
measureText
Description copied from interface:WPaintDeviceMeasures rendered text size.Returns the bounding rect of the given text when rendered using the current font.
If
maxWidth!= -1, then the text is truncated to fit in the width.If
wordWrap=truethen text is truncated only at word boundaries. Note that in this case the whitespace at the truncated position is included in the text but not accounted for by the returned width (since usually you will not render the whitespace at the end of a line).Throws a std::logic_error if the underlying device does not provide font metrics.
- Specified by:
measureTextin interfaceWPaintDevice
-
getFontMetrics
Description copied from interface:WPaintDeviceReturns font metrics.This returns font metrics for the current font.
Throws a std::logic_error if the underlying device does not provide font metrics.
- Specified by:
getFontMetricsin interfaceWPaintDevice
-
init
public void init()Description copied from interface:WPaintDeviceInitializes the device for painting.This method is called when a
WPainterstarts painting.- Specified by:
initin interfaceWPaintDevice- See Also:
-
done
public void done()Description copied from interface:WPaintDeviceFinishes painting on the device.This method is called when a
WPainterstopped painting.- Specified by:
donein interfaceWPaintDevice- See Also:
-
isPaintActive
public boolean isPaintActive()Description copied from interface:WPaintDeviceReturns whether painting is active.- Specified by:
isPaintActivein interfaceWPaintDevice- See Also:
-
render
public void render(String paintedWidgetJsRef, String canvasId, DomElement text, String updateAreasJs) -
renderPaintCommands
-
getWidth
Description copied from interface:WPaintDeviceReturns the device width.The device width, in pixels, establishes the width of the device coordinate system.
- Specified by:
getWidthin interfaceWPaintDevice
-
getHeight
Description copied from interface:WPaintDeviceReturns the device height.The device height, in pixels, establishes the height of the device coordinate system.
- Specified by:
getHeightin interfaceWPaintDevice
-
getPainter
Description copied from interface:WPaintDeviceReturns the painter that is currently painting on the device.- Specified by:
getPainterin interfaceWPaintDevice- See Also:
-
setPainter
Description copied from interface:WPaintDeviceSets the painter.- Specified by:
setPainterin interfaceWPaintDevice
-