net.refractions.udig.ui.graphics
Class SWTGraphics

java.lang.Object
  extended by net.refractions.udig.ui.graphics.SWTGraphics
All Implemented Interfaces:
ViewportGraphics

public class SWTGraphics
extends java.lang.Object
implements ViewportGraphics

A Graphics object that wraps SWT's GC object

Since:
0.3
Author:
jeichar

Field Summary
static int TRANSPARENT
          The TRANSPARENT color
 
Fields inherited from interface net.refractions.udig.ui.graphics.ViewportGraphics
ALIGN_BOTTOM, ALIGN_LEFT, ALIGN_MIDDLE, ALIGN_RIGHT, ALIGN_TOP, LINE_DASH, LINE_DASHDOT, LINE_DASHDOTDOT, LINE_DOT, LINE_SOLID, LINE_SOLID_ROUNDED
 
Constructor Summary
SWTGraphics(GC gc, Display display, java.awt.Dimension displaySize)
          Construct SWTGraphics.
SWTGraphics(Image image, Display display)
          Construct SWTGraphics.
 
Method Summary
 void clearRect(int x, int y, int width, int height)
          Fills the specified rectangle with the background color.
static java.awt.image.BufferedImage createBufferedImage(int w, int h)
          Create a buffered image that can be be coverted to SWTland later
static Image createDefaultImage(Display display, int width, int height)
           
static ImageData createImageData(java.awt.image.RenderedImage image, boolean transparent)
           
static ImageData createImageDataFromBytes(java.awt.image.RenderedImage image)
           
static ImageDescriptor createImageDescriptor(java.awt.image.RenderedImage image, boolean transparent)
           
static Image createSWTImage(java.awt.image.RenderedImage image, boolean transparent)
           
 void dispose()
          Disposes of any resources the graphics might be hanging on to.
 void draw(java.awt.Shape s)
          Draws the outline of shape using the color, clip & transform.
 void drawImage(java.awt.Image image, int x, int y)
          Draws an Image.
 void drawImage(java.awt.Image image, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2)
          Draws a portion of the image to the target location on the viewport graphics.
 void drawImage(java.awt.image.RenderedImage rimage, int x, int y)
          Draws an image.
 void drawImage(java.awt.image.RenderedImage rimage, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2)
           
 void drawLine(int x1, int y1, int x2, int y2)
          Draws a line from x1,y1 to x2,y2
 void drawString(java.lang.String string, int x, int y, int alignx, int aligny)
          Draws a string.
 void fill(java.awt.Shape s)
          Fills the interior of a Shape using the foreground color, clip & transform.
 void fillRect(int x, int y, int width, int height)
          Fills a rectangle.
 int getFontAscent()
          Gets the ascent of the current font, which is the distance the font rises above its baseline.
 int getFontHeight()
          Gets the height of the current font TODO at some point maybe this could be broken out to getFontMetrics(), and a create FontMetrics object that maps between SWT and AWT.
 java.awt.geom.Rectangle2D getStringBounds(java.lang.String str)
          Returns the bounds of a String.
 void setBackground(java.awt.Color c)
          This is hard because - background doesn't mean what we think it means.
 void setClip(java.awt.Rectangle r)
          Sets the clip.
 void setColor(java.awt.Color c)
          Sets the foreground color to draw with.
 void setStroke(int style, int width)
          Sets the stroke color to draw with.
 void setTransform(java.awt.geom.AffineTransform transform)
          Modifies the graphics so that further draws us minX,minY as the origin and maxX and maxY as the width and height of the display area.
 int stringWidth(java.lang.String str)
          Returns the length in pixels of the given string, or -1 if this operation is not available.
 void translate(java.awt.Point offset)
          Sets the draw offset.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface net.refractions.udig.ui.graphics.ViewportGraphics
drawOval, drawPath, drawRect, drawRoundRect, fillGradientRectangle, fillOval, fillPath, fillRoundRect, getBackgroundColor, getClip, getColor, getDPI, getGC, getTransform, setClipBounds, setFont, setLineDash, setLineWidth
 

Field Detail

TRANSPARENT

public static final int TRANSPARENT
The TRANSPARENT color

See Also:
Constant Field Values
Constructor Detail

SWTGraphics

public SWTGraphics(Image image,
                   Display display)
Construct SWTGraphics.

Parameters:
Image - image
display - The display object

SWTGraphics

public SWTGraphics(GC gc,
                   Display display,
                   java.awt.Dimension displaySize)
Construct SWTGraphics.

Parameters:
gc - The GC object
display - The display object
Method Detail

dispose

public void dispose()
Description copied from interface: ViewportGraphics
Disposes of any resources the graphics might be hanging on to.

Specified by:
dispose in interface ViewportGraphics

draw

public void draw(java.awt.Shape s)
Description copied from interface: ViewportGraphics
Draws the outline of shape using the color, clip & transform.

Reference description from Graphics2d: Strokes the outline of a Shape using the settings of the current Graphics2D context. The rendering attributes applied include the Clip, Transform, Paint, Composite and Stroke attributes.

Specified by:
draw in interface ViewportGraphics
Parameters:
s - the Shape to be rendered
See Also:
net.refractions.udig.project.render.ViewportGraphics#draw(java.awt.Shape)

fill

public void fill(java.awt.Shape s)
Description copied from interface: ViewportGraphics
Fills the interior of a Shape using the foreground color, clip & transform.

Reference description from Graphics2d: Fills the interior of a Shape using the settings of the Graphics2D context. The rendering attributes applied include the Clip, Transform, Paint, and Composite.

Specified by:
fill in interface ViewportGraphics
Parameters:
s - the Shape to be filled

See Also:
net.refractions.udig.project.render.ViewportGraphics#draw(java.awt.Shape)

fillRect

public void fillRect(int x,
                     int y,
                     int width,
                     int height)
Description copied from interface: ViewportGraphics
Fills a rectangle.

Specified by:
fillRect in interface ViewportGraphics
Parameters:
x - the starting x coordinate
y - the starting y coordinate
width - the width of the rectangle.
height - the height of the rectangle.
See Also:
net.refractions.udig.project.render.ViewportGraphics#fillRect(int, int, int, int)

setColor

public void setColor(java.awt.Color c)
Description copied from interface: ViewportGraphics
Sets the foreground color to draw with.

Specified by:
setColor in interface ViewportGraphics
Parameters:
c - The new color.
See Also:
net.refractions.udig.project.render.ViewportGraphics#setColor(java.awt.Color)

setBackground

public void setBackground(java.awt.Color c)
This is hard because - background doesn't mean what we think it means.

Specified by:
setBackground in interface ViewportGraphics
Parameters:
c - The new color.
See Also:
net.refractions.udig.project.render.ViewportGraphics#setBackground(java.awt.Color)

setStroke

public void setStroke(int style,
                      int width)
Description copied from interface: ViewportGraphics
Sets the stroke color to draw with.

Specified by:
setStroke in interface ViewportGraphics
Parameters:
style - The style of line to draw.
width - the width, in pixels, to draw lines with.
See Also:
net.refractions.udig.project.render.ViewportGraphics#setStroke(int, int)

setClip

public void setClip(java.awt.Rectangle r)
Description copied from interface: ViewportGraphics
Sets the clip.

Specified by:
setClip in interface ViewportGraphics
Parameters:
r - the rectangle to clip to.
See Also:
net.refractions.udig.project.render.ViewportGraphics#setClip(java.awt.Rectangle)

translate

public void translate(java.awt.Point offset)
Description copied from interface: ViewportGraphics
Sets the draw offset.

Specified by:
translate in interface ViewportGraphics
Parameters:
offset - The amount the draw is offset in the graphics.
See Also:
net.refractions.udig.project.render.ViewportGraphics#translate(java.awt.Point)

clearRect

public void clearRect(int x,
                      int y,
                      int width,
                      int height)
Description copied from interface: ViewportGraphics
Fills the specified rectangle with the background color.

Specified by:
clearRect in interface ViewportGraphics
Parameters:
x - The starting corner's x-coordinate.
y - The starting corner's y-coordinate.
width - the width of the rectangle
height - the height of the rectangle
See Also:
net.refractions.udig.project.render.ViewportGraphics#clearRect(int, int, int, int)

drawImage

public void drawImage(java.awt.image.RenderedImage rimage,
                      int x,
                      int y)
Description copied from interface: ViewportGraphics
Draws an image.

Specified by:
drawImage in interface ViewportGraphics
x - The x coordinate of the image top left corner of the image.
y - The y coordinate of the image top left corner of the image.
See Also:
net.refractions.udig.project.render.ViewportGraphics#drawImage(javax.media.jai.PlanarImage, int, int)

createDefaultImage

public static Image createDefaultImage(Display display,
                                       int width,
                                       int height)

createImageDescriptor

public static ImageDescriptor createImageDescriptor(java.awt.image.RenderedImage image,
                                                    boolean transparent)

createBufferedImage

public static java.awt.image.BufferedImage createBufferedImage(int w,
                                                               int h)
Create a buffered image that can be be coverted to SWTland later


createSWTImage

public static Image createSWTImage(java.awt.image.RenderedImage image,
                                   boolean transparent)

createImageDataFromBytes

public static ImageData createImageDataFromBytes(java.awt.image.RenderedImage image)

createImageData

public static ImageData createImageData(java.awt.image.RenderedImage image,
                                        boolean transparent)

drawString

public void drawString(java.lang.String string,
                       int x,
                       int y,
                       int alignx,
                       int aligny)
Description copied from interface: ViewportGraphics
Draws a string. Alignment parameters specify where the string should be located relative to coordinate (x,y).

Specified by:
drawString in interface ViewportGraphics
Parameters:
string - The string to draw.
x - the x coordinate of the location where the of the string will be placed.
y - the y coordinate of the location where the of the string will be placed.
alignx - horizontal alignment, ViewportGraphics.ALIGN_LEFT, ViewportGraphics.ALIGN_MIDDLE or ViewportGraphics.ALIGN_RIGHT
aligny - vertical alignment, ViewportGraphics.ALIGN_BOTTOM, ViewportGraphics.ALIGN_MIDDLE or ViewportGraphics.ALIGN_TOP
See Also:
net.refractions.udig.ui.graphics.ViewportGraphics#drawString(String, int, int)

setTransform

public void setTransform(java.awt.geom.AffineTransform transform)
Description copied from interface: ViewportGraphics
Modifies the graphics so that further draws us minX,minY as the origin and maxX and maxY as the width and height of the display area.

Specified by:
setTransform in interface ViewportGraphics
See Also:
net.refractions.udig.project.render.ViewportGraphics#setTransform(java.awt.geom.AffineTransform)

drawImage

public void drawImage(java.awt.Image image,
                      int x,
                      int y)
Description copied from interface: ViewportGraphics
Draws an Image.

Specified by:
drawImage in interface ViewportGraphics
x - The x coordinate of the image top left corner of the image.
y - The y coordinate of the image top left corner of the image.
See Also:
Current version can only draw Image if the image is an RenderedImage

drawImage

public void drawImage(java.awt.Image image,
                      int dx1,
                      int dy1,
                      int dx2,
                      int dy2,
                      int sx1,
                      int sy1,
                      int sx2,
                      int sy2)
Description copied from interface: ViewportGraphics
Draws a portion of the image to the target location on the viewport graphics.

Specified by:
drawImage in interface ViewportGraphics
dx1 - - the x coordinate of the first corner of the destination rectangle.
dy1 - - the y coordinate of the first corner of the destination rectangle.
dx2 - - the x coordinate of the second corner of the destination rectangle.
dy2 - - the y coordinate of the second corner of the destination rectangle.
sx1 - - the x coordinate of the first corner of the source rectangle.
sy1 - - the y coordinate of the first corner of the source rectangle.
sx2 - - the x coordinate of the second corner of the source rectangle.
sy2 - - the y coordinate of the second corner of the source rectangle.
See Also:
ViewportGraphics.drawImage(java.awt.Image, int, int, int, int, int, int, int, int)

drawImage

public void drawImage(java.awt.image.RenderedImage rimage,
                      int dx1,
                      int dy1,
                      int dx2,
                      int dy2,
                      int sx1,
                      int sy1,
                      int sx2,
                      int sy2)

getFontHeight

public int getFontHeight()
Description copied from interface: ViewportGraphics
Gets the height of the current font TODO at some point maybe this could be broken out to getFontMetrics(), and a create FontMetrics object that maps between SWT and AWT.

Specified by:
getFontHeight in interface ViewportGraphics
Returns:
the height of the current font

stringWidth

public int stringWidth(java.lang.String str)
Description copied from interface: ViewportGraphics
Returns the length in pixels of the given string, or -1 if this operation is not available.

Specified by:
stringWidth in interface ViewportGraphics
Returns:

getFontAscent

public int getFontAscent()
Description copied from interface: ViewportGraphics
Gets the ascent of the current font, which is the distance the font rises above its baseline.

Specified by:
getFontAscent in interface ViewportGraphics
Returns:

getStringBounds

public java.awt.geom.Rectangle2D getStringBounds(java.lang.String str)
Description copied from interface: ViewportGraphics
Returns the bounds of a String. Does not expand tabs or newlines

Specified by:
getStringBounds in interface ViewportGraphics
Returns:

drawLine

public void drawLine(int x1,
                     int y1,
                     int x2,
                     int y2)
Description copied from interface: ViewportGraphics
Draws a line from x1,y1 to x2,y2

Specified by:
drawLine in interface ViewportGraphics