com.tensegrity.graphics.device
Interface Device

All Known Implementing Classes:
AbstractDevice, AWTDevice, SVGDevice, SWTDevice, SWTDeviceNonAWTDependent

public interface Device

All drawing operations of the API take place on a Device object. This interface defines the abstraction which decouples client code from any particular Widget Toolkit.

Colors are represented as integer values. The itemization of the colors components in hexadecimal code is as follows:
0xaarrggbb
where
aa means the alpha component
rr means the red component
gg means the green component
bb means the blue component

A Device uses StrokeFormat objects to draw lines or the current color value set to it if the current StrokeFormat is null.

A Device uses PaintFormat objects to fill areas or the current color value set to it if the current PaintFormat is null

A Device uses FontFormat objects to output text. If the current FontFormat is null, the Device uses the current color value and the default font.

Version:
$Id: Device.java,v 1.25 2005/11/14 15:27:13 KevinCVS Exp $
Author:
M. Kegel,
See Also:
StrokeFormat, PaintFormat, FontFormat

Field Summary
static int DRAW_FILL
          Constant used with the different draw-methods of the Device interface and determine what to draw
static int DRAW_OUTLINE
          Constant used with the different draw-methods of the Device interface and determine what to draw
 
Method Summary
 void clearClip()
          Clears the currently used clip rectangle.
 void clearRect(int x, int y, int width, int height)
          Clears the specified rectangle by filling it with the background color of the current drawing surface.
 void clipRect(int x, int y, int width, int height)
          Intersects the current clip with the specified rectangle.
 void dispose()
          Disposes this AWTDevice.
 void drawArc(int flags, int x, int y, int width, int height, int startAngle, int arcAngle)
          Draws a circular or elliptical arc covering the specified rectangle.
 void drawLine(int x1, int y1, int x2, int y2)
          This method draws a line from the starting coordinate given by x1 and y1 to the ending coordinate given by x2 and y2.
 void drawOval(int flags, int x, int y, int width, int height)
          Draws an oval.
 void drawPolygon(int flags, int[] ptX, int[] ptY, int ptCount)
          This method draws a closed polygon.
 void drawPolyline(int[] ptX, int[] ptY, int ptCount)
          This method draws a polyline.
 void drawRect(int flags, int x, int y, int width, int height)
          This methods draws the rectangle defined by the given parameters.
 void drawRoundRect(int flags, int x, int y, int width, int height, int arcWidth, int arcHeight)
          Draws a round-cornered rectangle using this graphic contexts currently set Stroke- and PaintFormat.
 void drawString(java.lang.String str, int x, int y)
          Draws the text given by the specified string, using this graphics context's current font and color.
 Boundary getClipBounds()
          Returns the bounding rectangle of the current clipping area.
 Boundary getClipBounds(Boundary boundary)
          Returns the bounding rectangle of the current clipping area.
 FontFormat getFontFormat()
          Returns the FontFormat currently used for text drawing operations.
 PaintFormat getPaintFormat()
          Returns the current PaintFormat the Device uses to fill areas.
 StrokeFormat getStrokeFormat()
          Returns the current StrokeFormat the Device uses for drawing lines.
 Transform2D getTransform()
          Returns a copy of the current AffineTransform in the Device.
 boolean hitClip(int x, int y, int width, int height)
          Returns true if the specified rectangular area intersects the bounding rectangle of the current clipping area.
 void initiate()
          Initializes this Device.
 boolean isAntialiasing()
          Returns true if antialising is enabled for this Device, otherwise false is returned.
 boolean isInhibitLT2RBFlip()
           
 boolean isInhibitYFlip()
           
 boolean isPrinting()
           
 void setAntialiasing(boolean antialiasing)
          Enables or disables antialiasing for this Device
 void setClip(int x, int y, int width, int height)
          Sets the current clip to the rectangle specified by the given coordinates.
 void setClipBounds(Boundary boundary)
          Sets the current clip to the rectangle specified by the given coordinates.
 void setFontFormat(FontFormat fontFormat)
          Sets the FontFormat that will be used for all subsequent text drawing operations.
 void setFontFormatData(java.lang.Object[] fontFormatData)
          Because all formats get pooled, illustrators and users need an easy way to change them.
 void setInhibitLT2RBFlip(boolean inhibitLT2RBFlip)
           
 void setInhibitYFlip(boolean inhibitYFlip)
           
 void setIsPrinting(boolean isPrinting)
           
 void setPaintFormat(PaintFormat paintFormat)
          Sets the PaintFormat the Device should use for filling areas.
 void setPaintFormatData(java.lang.Object[] paintFormatData)
          Sets the PaintFormat rendering data the Device should use for filling areas.
 void setPaintMode()
          Sets the paint mode of this graphics context to overwrite the destination with this graphics context's current color.
 void setStrokeFormat(StrokeFormat strokeFormat)
          Sets the StrokeFormat the Device should use for drawing lines or borders around rectangles and polygons.
 void setStrokeFormatData(java.lang.Object[] strokeFormatData)
          Sets the StrokeFormat rendering data the Device should use for drawing lines or borders around rectangles and polygons.
 void setTransform(Transform2D xform)
          Sets the Transform2D in the Device.
 void setXORMode(int xorAlternationColor)
          Sets the paint mode of this graphics context to alternate between this graphics context's current color and the new specified color.
 void translate(int x, int y)
          This method translates the origin of this devise to the point given by x and y in the actual coordinate of this device.
 

Field Detail

DRAW_OUTLINE

public static final int DRAW_OUTLINE
Constant used with the different draw-methods of the Device interface and determine what to draw

See Also:
Constant Field Values

DRAW_FILL

public static final int DRAW_FILL
Constant used with the different draw-methods of the Device interface and determine what to draw

See Also:
Constant Field Values
Method Detail

initiate

public void initiate()
Initializes this Device.
NOTICE:This method must be called before any drawing can be performed.


dispose

public void dispose()
Disposes this AWTDevice. After disposing the instance may not longer be used.
NOTICE:This method must be called. Otherwise the Device is no longer in a valid state.


setAntialiasing

public void setAntialiasing(boolean antialiasing)
Enables or disables antialiasing for this Device

Parameters:
antialiasing - true indicates that anti-aliasing should be enabled, false disables it.

isAntialiasing

public boolean isAntialiasing()
Returns true if antialising is enabled for this Device, otherwise false is returned.

Returns:
true if antialising is enabled for this Device, otherwise false is returned.

getStrokeFormat

public StrokeFormat getStrokeFormat()
Returns the current StrokeFormat the Device uses for drawing lines.

Returns:
the current used StrokeFormat or null

setStrokeFormat

public void setStrokeFormat(StrokeFormat strokeFormat)
Sets the StrokeFormat the Device should use for drawing lines or borders around rectangles and polygons. When invoking this method the StrokeFormat is used instead of the color value the Device currently uses. If the Device should use the current color value, this method has to be called with a null parameter.

Parameters:
strokeFormat - the StrokeFormat to use when drawing lines or borders, or null

Find more information in the class documentation


setStrokeFormatData

public void setStrokeFormatData(java.lang.Object[] strokeFormatData)
Sets the StrokeFormat rendering data the Device should use for drawing lines or borders around rectangles and polygons. When invoking this method the StrokeFormat is used instead of the color value the Device currently uses. If the Device should use the current color value, this method has to be called with a null parameter. The given array has to consist of three Integer objects. The meaning of the value is defined by its position in the array. The following list specifies the valid index positions:

Parameters:
strokeFormatData - the StrokeFormat rendering data to use when drawing lines or borders, or null

Find more information in the class documentation


getPaintFormat

public PaintFormat getPaintFormat()
Returns the current PaintFormat the Device uses to fill areas.

Returns:
the current PaintFormat or null

setPaintFormat

public void setPaintFormat(PaintFormat paintFormat)
Sets the PaintFormat the Device should use for filling areas. If the current color should be used, this method has to be called with a null parameter.

Parameters:
paintFormat - the PaintFormat to use when filling areas, or null

Find more information in the class documentation


setPaintFormatData

public void setPaintFormatData(java.lang.Object[] paintFormatData)
Sets the PaintFormat rendering data the Device should use for filling areas. When invoking this method the PaintFormat is used instead of the color value the Device> currently uses. If the Device should use the current color value, this method has to be called with a null parameter. Overall eight values of the given array are estimated. REVIEWJAVADOC: Device.java : what do you mean by "estimated"??? The meaning of each value is defined by its position in the array. The following table specifies the valid index positions and object types:
IndexType
RenderingData.VALUEINDEX_PAINT_STYLE Integer
RenderingData.VALUEINDEX_PAINT_COLORBACK Integer
RenderingData.VALUEINDEX_PAINT_COLORFORE Integer
RenderingData.VALUEINDEX_PAINT_GRADIENTTYPE Integer
RenderingData.VALUEINDEX_PAINT_PATTERNTYPE Integer
RenderingData.VALUEINDEX_PAINT_TEXTURE Texture
RenderingData.VALUEINDEX_PAINT_TRANSPARENCY Integer
RenderingData.VALUEINDEX_PAINT_TRANSPARENT Boolean

Parameters:
paintFormatData - the PaintFormat rendering data to use when filling areas, or null

Find more information in the class documentation


getFontFormat

public FontFormat getFontFormat()
Returns the FontFormat currently used for text drawing operations.

Returns:
FontFormat the currently used FontFormat

setFontFormat

public void setFontFormat(FontFormat fontFormat)
Sets the FontFormat that will be used for all subsequent text drawing operations. When the default color and font of the Device should be used, the method has to be called with a null parameter.

Parameters:
fontFormat - the FontFormat to use when drawing text, or null

Find more information in the class documentation


setFontFormatData

public void setFontFormatData(java.lang.Object[] fontFormatData)
Because all formats get pooled, illustrators and users need an easy way to change them. This method sets the FontFormat rendering data that will be used for all subsequent text drawing operations. When the Device should use the current color value and the default font of the device, however, this method has to be called with a null parameter. At this time, four values of the given array are estimated. REVIEWJAVADOC: There is that word "estimated" again!!! The meaning of each value is defined by its position in the array. The following list specifies the valid index positions and object types:
IndexType
RenderingData.VALUEINDEX_FONT_SIZE Integer
RenderingData.VALUEINDEX_FONT_WEIGHT Integer
RenderingData.VALUEINDEX_FONT_FAMILY String
RenderingData.VALUEINDEX_FONT_ITALIC Boolean

Parameters:
fontFormatData - the FontFormat rendering data to use when drawing text, or null

Find more information in the class documentation


translate

public void translate(int x,
                      int y)
This method translates the origin of this devise to the point given by x and y in the actual coordinate of this device. All coordinates in subsequent calls to drawing methods are assumed to be relative to the new origin.

Parameters:
x - the x coordinate of the new origin
y - the y coordinate of the new origin

getTransform

public Transform2D getTransform()
Returns a copy of the current AffineTransform in the Device.

Returns:
the current AffineTransform in the Device.

setTransform

public void setTransform(Transform2D xform)
Sets the Transform2D in the Device.

Parameters:
xform - the Transform2D object to be used in the rendering process

setPaintMode

public void setPaintMode()
Sets the paint mode of this graphics context to overwrite the destination with this graphics context's current color. This sets the logical pixel operation function to the paint or overwrite mode. All subsequent rendering operations will overwrite the destination with the current color.


setXORMode

public void setXORMode(int xorAlternationColor)
Sets the paint mode of this graphics context to alternate between this graphics context's current color and the new specified color. This specifies that logical pixel operations are performed in the XOR mode, which alternates pixels between the current color and a specified XOR color. When drawing operations are performed, pixels which are the current color are changed to the specified color, and vice versa. Pixels that are of colors other than those two colors are changed in an unpredictable but reversible manner; if the same figure is drawn twice, then all pixels are restored to their original values.

Parameters:
xorAlternationColor - the XOR alternation color

setClip

public void setClip(int x,
                    int y,
                    int width,
                    int height)
Sets the current clip to the rectangle specified by the given coordinates. Rendering operations have no effect outside of the clipping area.

Parameters:
x - the left coordinate of the new clip rectangle
y - the top coordinate of the new clip rectangle
width - the extent of the new clip rectangle in x direction
height - the extent of the new clip rectangle in y direction

clipRect

public void clipRect(int x,
                     int y,
                     int width,
                     int height)
Intersects the current clip with the specified rectangle. The resulting clipping area is the intersection of the current clipping area and the specified rectangle. If there is no current clipping area, either because the clip has never been set, or the clip has been cleared using setClip(Integer.MIN_VALUE, Integer.MIN_VALUE, Integer.MAX_VALUE, Integer.MAX_VALUE), the specified rectangle becomes the new clip. This method sets the user clip, which is independent of the clipping associated with device bounds and window visibility. This method can only be used to make the current clip smaller. To set the current clip larger, use any of the setClip methods. Rendering operations have no effect outside of the clipping area.

Parameters:
x - the x coordinate of the rectangle to intersect the clip with
y - the y coordinate of the rectangle to intersect the clip with
width - the width of the rectangle to intersect the clip with
height - the height of the rectangle to intersect the clip with

hitClip

public boolean hitClip(int x,
                       int y,
                       int width,
                       int height)
Returns true if the specified rectangular area intersects the bounding rectangle of the current clipping area. The coordinates in the rectangle are relative to the coordinate system origin of this graphics context.

Parameters:
x - the x coordinate of the rectangle to test against the clip
y - the y coordinate of the rectangle to test against the clip
width - the width of the rectangle to test against the clip
height - the height of the rectangle to test against the clip
Returns:
true if the specified rectangular area intersects the bounding rectangle of the current clipping area.

getClipBounds

public Boundary getClipBounds()
Returns the bounding rectangle of the current clipping area. This method refers to the user clip, which is independent of the clipping associated with device bounds and window visibility. If no clip has previously been set, or if the clip has been cleared using setClip(null), this method returns null. The coordinates in the rectangle are relative to the coordinate system origin of this graphics context.

Returns:
the bounding rectangle of the current clipping area, or null if no clip is set.

getClipBounds

public Boundary getClipBounds(Boundary boundary)
Returns the bounding rectangle of the current clipping area. The coordinates in the rectangle are relative to the coordinate system origin of this graphics context. This method differs from getClipBounds() in that an existing Boundary is used instead of allocating a new one. This method refers to the user clip, which is independent of the clipping associated with device bounds and window visibility. If no clip has previously been set, or if the clip has been cleared using setClip(null), this method returns the specified Boundary.

Parameters:
boundary - the rectangular boundary where the current clipping area is copied to. Any current values in this rectangle are overwritten.
Returns:
the bounding rectangle of the current clipping area.

setClipBounds

public void setClipBounds(Boundary boundary)
Sets the current clip to the rectangle specified by the given coordinates. Rendering operations have no effect outside of the clipping area.

Parameters:
boundary - the new bounding rectangle to clip against

clearClip

public void clearClip()
Clears the currently used clip rectangle.


drawLine

public void drawLine(int x1,
                     int y1,
                     int x2,
                     int y2)
This method draws a line from the starting coordinate given by x1 and y1 to the ending coordinate given by x2 and y2.

Parameters:
x1 - the starting coordinate x value
y1 - the starting coordinate y value
x2 - the ending coordinate x value
y2 - the ending coordinate y value

Find more information in the class documentation


drawRect

public void drawRect(int flags,
                     int x,
                     int y,
                     int width,
                     int height)
This methods draws the rectangle defined by the given parameters. The rectangle starts at x and y. The right coordinates are calculated by x + width and the bottom coordinates are calculated by y + height.

Parameters:
flags - bitwise combined flags that determine what to draw.
x - the left coordinate of the rectangle.
y - the top coordinate of the rectangle.
width - the extent in x direction.
height - the extent in y direction.

Find more information in the class documentation


clearRect

public void clearRect(int x,
                      int y,
                      int width,
                      int height)
Clears the specified rectangle by filling it with the background color of the current drawing surface.

Parameters:
x - the x coordinate of the rectangle to be clear
y - the y coordinate of the rectangle to be clear
width - the width of the rectangle to be clear
height - the height of the rectangle to be clear

drawRoundRect

public void drawRoundRect(int flags,
                          int x,
                          int y,
                          int width,
                          int height,
                          int arcWidth,
                          int arcHeight)
Draws a round-cornered rectangle using this graphic contexts currently set Stroke- and PaintFormat. The left and right edges of the rectangle are at x and x + width, respectively. The top and bottom edges of the rectangle are at y and y + height.

Parameters:
flags - bitwise combined flags that determine what to draw
x - the x coordinate of the rectangle to be drawn
y - the y coordinate of the rectangle to be drawn
width - the width of the rectangle to be drawn
height - the height of the rectangle to be drawn
arcWidth - the horizontal diameter of the arc at the four corners
arcHeight - the vertical diameter of the arc at the four corners

Find more information in the class documentation


drawOval

public void drawOval(int flags,
                     int x,
                     int y,
                     int width,
                     int height)
Draws an oval. The result is a circle or ellipse that fits within the rectangle specified by the x, y, width, and height arguments. The oval covers an area that is width + 1 pixels wide and height + 1 pixels tall.

Parameters:
flags - bitwise combined flags that determine what to draw
x - the x coordinate of the upper left corner of the oval to be drawn
y - the y coordinate of the upper left corner of the oval to be drawn
width - the width of the oval to be drawn
height - the height of the oval to be drawn

Find more information in the class documentation


drawArc

public void drawArc(int flags,
                    int x,
                    int y,
                    int width,
                    int height,
                    int startAngle,
                    int arcAngle)
Draws a circular or elliptical arc covering the specified rectangle. The resulting arc starts at startAngle and extends for arcAngle degrees, using the current color of the Device. Angles are interpreted in such a manner that a degree of 0 belongs to the 3 o'clock position. A positive value indicates a counter-clockwise rotation while a negative value indicates a clockwise rotation. The center of the arc is the center of the rectangle whose origin is (x, y) and whose size is specified by the width and height arguments. The resulting arc covers an area width + 1 pixels wide by height + 1 pixels tall. The angles are specified relative to the non-square extents of the bounding rectangle such that 45 degrees always falls on the line from the center of the ellipse to the upper right corner of the bounding rectangle. As a result, if the bounding rectangle is noticeably longer in one axis than the other, the angles to the start and end of the arc segment will be skewed farther along the longer axis of the bounds.

Parameters:
flags - bitwise combined flags that determine what to draw
x - the x coordinate of the upper-left corner of the arc to be drawn
y - the y coordinate of the upper-left corner of the arc to be drawn
width - the width of the arc to be drawn
height - the height of the arc to be drawn
startAngle - the beginning angle
arcAngle - the angular extent of the arc, relative to the start angle

Find more information in the class documentation


drawPolyline

public void drawPolyline(int[] ptX,
                         int[] ptY,
                         int ptCount)
This method draws a polyline. The polyline is defined by the two given arrays of x and y coordinates. Each point of the polyline is defined by a pair. The points are taken from the arrays starting at index 0 up to index ptCount-1.

Parameters:
ptX - the x coordinates of the points
ptY - the y coordinates of the points
ptCount - the amount of points the polygon consist of

Find more information in the class documentation


drawPolygon

public void drawPolygon(int flags,
                        int[] ptX,
                        int[] ptY,
                        int ptCount)
This method draws a closed polygon. The polygon is defined by the two given arrays of x and y coordinates. Each point of the polygon is defined by a pair. The points are taken from the arrays starting at index 0 up to index ptCount-1. If the point at index 0 and the point at index ptCount-1 are different the polygon is automatically closed.

Parameters:
flags - bitwise combined flags that determine what to draw
ptX - the x coordinates of the points
ptY - the y coordinates of the points
ptCount - the amount of points the polygon consist of

Find more information in the class documentation


drawString

public void drawString(java.lang.String str,
                       int x,
                       int y)
Draws the text given by the specified string, using this graphics context's current font and color. The baseline of the leftmost character is at position (x, y) in this graphic contexts coordinate system.

Parameters:
str - the string to be drawn
x - the x coordinate
y - the y coordinate

Find more information in the class documentation


setIsPrinting

public void setIsPrinting(boolean isPrinting)

isPrinting

public boolean isPrinting()

setInhibitLT2RBFlip

public void setInhibitLT2RBFlip(boolean inhibitLT2RBFlip)

isInhibitLT2RBFlip

public boolean isInhibitLT2RBFlip()

setInhibitYFlip

public void setInhibitYFlip(boolean inhibitYFlip)

isInhibitYFlip

public boolean isInhibitYFlip()


Copyright © 2005 Tensegrity Software GmbH. All Rights Reserved. Date of creation: 09.06.2006.