Eclipse Draw2d
2.1

org.eclipse.draw2d
Class SWTGraphics

java.lang.Object
  |
  +--org.eclipse.draw2d.Graphics
        |
        +--org.eclipse.draw2d.SWTGraphics

public class SWTGraphics
extends Graphics

Implementation of providing the drawing capabilities of SWT's GC class in Draw2d. There are 2 states contained in this graphics class -- the applied state which is the actual state of the GC and the current state which is the current state of this graphics object. Certain properties can be changed multiple times and the GC won't be updated until it's actually used.


Nested Class Summary
protected static class SWTGraphics.State
          Contains the state variables of this SWTGraphics object
 
Field Summary
static boolean debug
           
 
Fields inherited from class org.eclipse.draw2d.Graphics
LINE_DASH, LINE_DASHDOT, LINE_DASHDOTDOT, LINE_DOT, LINE_SOLID
 
Constructor Summary
SWTGraphics(GC gc)
          Constructs a new SWTGraphics that draws to the Canvas using the given GC.
 
Method Summary
protected  void checkFill()
          If the background color has changed, this change will be pushed to the GC.
protected  void checkGC()
          If the XOR or the clip region has change, these changes will be pushed to the GC.
protected  void checkPaint()
          If the line width, line style, foreground or background colors have changed, these changes will be pushed to the GC.
protected  void checkText()
          If the font has changed, this change will be pushed to the GC.
 void clipRect(Rectangle rect)
          Sets the clip region to the given rectangle.
 void dispose()
          Disposes this Graphics object.
 void drawArc(int x, int y, int width, int height, int offset, int length)
          Draws the outline of an arc located at (x,y) with width w and height h.
 void drawFocus(int x, int y, int w, int h)
          Draws a focus rectangle.
 void drawImage(Image srcImage, int x, int y)
          Draws the given Image at the location (x,y).
 void drawImage(Image srcImage, int x1, int y1, int w1, int h1, int x2, int y2, int w2, int h2)
          Draws a rectangular section of the given Image to the specified rectangular reagion on the canvas.
 void drawLine(int x1, int y1, int x2, int y2)
          Draws a line between the points (x1,y1) and (x2,y2) using the foreground color.
 void drawOval(int x, int y, int width, int height)
          Draws the outline of an ellipse that fits inside the rectangle with the given properties using the foreground color.
 void drawPolygon(PointList points)
          Draws a closed polygon defined by the given PointList containing the vertices.
 void drawPolyline(PointList points)
          Draws a polyline defined by the given PointList containing the vertices.
 void drawRectangle(int x, int y, int width, int height)
          Draws a rectangle whose top-left corner is located at the point (x,y) with the given width and height.
 void drawRoundRectangle(Rectangle r, int arcWidth, int arcHeight)
          Draws a rectangle with rounded corners using the foreground color.
 void drawString(String s, int x, int y)
          Draws the given string using the current font and foreground color.
 void drawText(String s, int x, int y)
          Draws the given string using the current font and foreground color.
 void fillArc(int x, int y, int width, int height, int offset, int length)
          Fills the interior of an arc located at (x,y) with width w and height h.
 void fillGradient(int x, int y, int w, int h, boolean vertical)
          Fills the the given rectangle with a gradient from the foreground color to the background color.
 void fillOval(int x, int y, int width, int height)
          Fills an ellipse that fits inside the rectangle with the given properties using the background color.
 void fillPolygon(PointList points)
          Fills a closed polygon defined by the given PointList containing the vertices.
 void fillRectangle(int x, int y, int width, int height)
          Fills a rectangle whose top-left corner is located at the point (x,y) with the given width and height.
 void fillRoundRectangle(Rectangle r, int arcWidth, int arcHeight)
          Fills a rectangle with rounded corners using the background color.
 void fillString(String s, int x, int y)
          Draws the given string using the current font and foreground color.
 void fillText(String s, int x, int y)
          Draws the given string using the current font and foreground color.
 Color getBackgroundColor()
          Returns the background color used for filling.
 Rectangle getClip(Rectangle rect)
          Modifies the given rectangle to match the clip region and returns that rectangle.
 Font getFont()
          Returns the font used to draw and fill text.
 FontMetrics getFontMetrics()
          Returns the font metrics for the current font.
 Color getForegroundColor()
          Returns the foreground color used to draw lines and text.
 int getLineStyle()
          Returns the line style.
 int getLineWidth()
          Returns the current line width.
 boolean getXORMode()
          Returns true if this graphics object should use XOR mode with painting.
protected  void init()
          Called by constructor, initializes all State information for currentState
 void popState()
          Pops the previous state of this graphics object off the stack (if pushState() has previously been called) and restores the current state to that popped state.
 void pushState()
          Pushes the current state of this graphics object onto a stack.
 void restoreState()
          Restores the previous state of this graphics object.
protected  void restoreState(SWTGraphics.State s)
          Sets all State information to that of the given State, called by restoreState()
 void scale(double factor)
          Scales this graphics object by the given amount.
 void setBackgroundColor(Color color)
          Sets the background color.
 void setClip(Rectangle rect)
          Sets the clip rectangle.
protected  void setClipAbsolute(int x, int y, int w, int h)
          Sets clip values to the given values.
 void setFont(Font f)
          Sets the font.
 void setForegroundColor(Color color)
          Sets the foreground color.
 void setLineStyle(int style)
          Sets the line style.
 void setLineWidth(int width)
          Sets the line width.
protected  void setTranslation(int x, int y)
          Sets the translation values of this to the given values
 void setXORMode(boolean b)
          Sets the XOR mode.
 void translate(int x, int y)
          Translates this graphics object so that its origin is offset horizontally by dx and vertically by dy.
 
Methods inherited from class org.eclipse.draw2d.Graphics
drawArc, drawFocus, drawImage, drawImage, drawLine, drawOval, drawRectangle, drawString, drawText, fillArc, fillGradient, fillOval, fillRectangle, fillString, fillText, translate
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

debug

public static boolean debug
Constructor Detail

SWTGraphics

public SWTGraphics(GC gc)
Constructs a new SWTGraphics that draws to the Canvas using the given GC.

Parameters:
gc - the GC
Method Detail

checkFill

protected final void checkFill()
If the background color has changed, this change will be pushed to the GC. Also calls checkGC().


checkGC

protected final void checkGC()
If the XOR or the clip region has change, these changes will be pushed to the GC.


checkPaint

protected final void checkPaint()
If the line width, line style, foreground or background colors have changed, these changes will be pushed to the GC. Also calls checkGC().


checkText

protected final void checkText()
If the font has changed, this change will be pushed to the GC. Also calls checkPaint() and checkFill().


clipRect

public void clipRect(Rectangle rect)
Description copied from class: Graphics
Sets the clip region to the given rectangle. Anything outside this rectangle will not be drawn.

Specified by:
clipRect in class Graphics
Parameters:
rect - the clip rectangle
See Also:
Graphics.clipRect(Rectangle)

dispose

public void dispose()
Description copied from class: Graphics
Disposes this Graphics object.

Specified by:
dispose in class Graphics
See Also:
Graphics.dispose()

drawArc

public void drawArc(int x,
                    int y,
                    int width,
                    int height,
                    int offset,
                    int length)
Description copied from class: Graphics
Draws the outline of an arc located at (x,y) with width w and height h. The starting angle of the arc (specified in degrees) is offset and length is the arc's angle (specified in degrees).

Specified by:
drawArc in class Graphics
Parameters:
x - the x coordinate
y - the y coordinate
width - the width
height - the height
offset - the start angle
length - the length of the arc
See Also:
Graphics.drawArc(int, int, int, int, int, int)

drawFocus

public void drawFocus(int x,
                      int y,
                      int w,
                      int h)
Description copied from class: Graphics
Draws a focus rectangle.

Specified by:
drawFocus in class Graphics
Parameters:
x - the x coordinate
y - the y coordinate
w - the width
h - the height
See Also:
Graphics.drawFocus(int, int, int, int)

drawImage

public void drawImage(Image srcImage,
                      int x,
                      int y)
Description copied from class: Graphics
Draws the given Image at the location (x,y).

Specified by:
drawImage in class Graphics
Parameters:
srcImage - the Image
x - the x coordinate
y - the y coordinate
See Also:
Graphics.drawImage(Image, int, int)

drawImage

public void drawImage(Image srcImage,
                      int x1,
                      int y1,
                      int w1,
                      int h1,
                      int x2,
                      int y2,
                      int w2,
                      int h2)
Description copied from class: Graphics
Draws a rectangular section of the given Image to the specified rectangular reagion on the canvas. The section of the image bounded by the rectangle (x1,y1,w1,h1) is copied to the section of the canvas bounded by the rectangle (x2,y2,w2,h2). If these two sizes are different, scaling will occur.

Specified by:
drawImage in class Graphics
Parameters:
srcImage - the image
x1 - the x coordinate of the source
y1 - the y coordinate of the source
w1 - the width of the source
h1 - the height of the source
x2 - the x coordinate of the destination
y2 - the y coordinate of the destination
w2 - the width of the destination
h2 - the height of the destination
See Also:
Graphics.drawImage(Image, int, int, int, int, int, int, int, int)

drawLine

public void drawLine(int x1,
                     int y1,
                     int x2,
                     int y2)
Description copied from class: Graphics
Draws a line between the points (x1,y1) and (x2,y2) using the foreground color.

Specified by:
drawLine in class Graphics
Parameters:
x1 - the x coordinate for the first point
y1 - the y coordinate for the first point
x2 - the x coordinate for the second point
y2 - the y coordinate for the second point
See Also:
Graphics.drawLine(int, int, int, int)

drawOval

public void drawOval(int x,
                     int y,
                     int width,
                     int height)
Description copied from class: Graphics
Draws the outline of an ellipse that fits inside the rectangle with the given properties using the foreground color.

Specified by:
drawOval in class Graphics
Parameters:
x - the x coordinate
y - the y coordinate
width - the width
height - the height
See Also:
Graphics.drawOval(int, int, int, int)

drawPolygon

public void drawPolygon(PointList points)
Description copied from class: Graphics
Draws a closed polygon defined by the given PointList containing the vertices. The first and last points in the list will be connected.

Specified by:
drawPolygon in class Graphics
Parameters:
points - the vertices
See Also:
Graphics.drawPolygon(PointList)

drawPolyline

public void drawPolyline(PointList points)
Description copied from class: Graphics
Draws a polyline defined by the given PointList containing the vertices. The first and last points in the list will not be connected.

Specified by:
drawPolyline in class Graphics
Parameters:
points - the vertices
See Also:
Graphics.drawPolyline(PointList)

drawRectangle

public void drawRectangle(int x,
                          int y,
                          int width,
                          int height)
Description copied from class: Graphics
Draws a rectangle whose top-left corner is located at the point (x,y) with the given width and height.

Specified by:
drawRectangle in class Graphics
Parameters:
x - the x coordinate
y - the y coordinate
width - the width
height - the height
See Also:
Graphics.drawRectangle(int, int, int, int)

drawRoundRectangle

public void drawRoundRectangle(Rectangle r,
                               int arcWidth,
                               int arcHeight)
Description copied from class: Graphics
Draws a rectangle with rounded corners using the foreground color. arcWidth and arcHeight represent the horizontal and vertical diameter of the corners.

Specified by:
drawRoundRectangle in class Graphics
Parameters:
r - the rectangle
arcWidth - the arc width
arcHeight - the arc height
See Also:
Graphics.drawRoundRectangle(Rectangle, int, int)

drawString

public void drawString(String s,
                       int x,
                       int y)
Description copied from class: Graphics
Draws the given string using the current font and foreground color. No tab expansion or carriage return processing will be performed. The background of the string will be transparent.

Specified by:
drawString in class Graphics
Parameters:
s - the string
x - the x coordinate
y - the y coordinate
See Also:
Graphics.drawString(String, int, int)

drawText

public void drawText(String s,
                     int x,
                     int y)
Description copied from class: Graphics
Draws the given string using the current font and foreground color. Tab expansion and carriage return processing are performed. The background of the text will be transparent.

Specified by:
drawText in class Graphics
Parameters:
s - the text
x - the x coordinate
y - the y coordinate
See Also:
Graphics.drawText(String, int, int)

fillArc

public void fillArc(int x,
                    int y,
                    int width,
                    int height,
                    int offset,
                    int length)
Description copied from class: Graphics
Fills the interior of an arc located at (x,y) with width w and height h. The starting angle of the arc (specified in degrees) is offset and length is the arc's angle (specified in degrees).

Specified by:
fillArc in class Graphics
Parameters:
x - the x coordinate
y - the y coordinate
width - the width
height - the height
offset - the start angle
length - the length of the arc
See Also:
Graphics.fillArc(int, int, int, int, int, int)

fillGradient

public void fillGradient(int x,
                         int y,
                         int w,
                         int h,
                         boolean vertical)
Description copied from class: Graphics
Fills the the given rectangle with a gradient from the foreground color to the background color. If vertical is true, the gradient will go from top to bottom. Otherwise, it will go from left to right. background color.

Specified by:
fillGradient in class Graphics
Parameters:
x - the x coordinate
y - the y coordinate
w - the width
h - the height
vertical - whether the gradient should be vertical
See Also:
Graphics.fillGradient(int, int, int, int, boolean)

fillOval

public void fillOval(int x,
                     int y,
                     int width,
                     int height)
Description copied from class: Graphics
Fills an ellipse that fits inside the rectangle with the given properties using the background color.

Specified by:
fillOval in class Graphics
Parameters:
x - the x coordinate
y - the y coordinate
width - the width
height - the height
See Also:
Graphics.fillOval(int, int, int, int)

fillPolygon

public void fillPolygon(PointList points)
Description copied from class: Graphics
Fills a closed polygon defined by the given PointList containing the vertices. The first and last points in the list will be connected.

Specified by:
fillPolygon in class Graphics
Parameters:
points - the vertices
See Also:
Graphics.fillPolygon(PointList)

fillRectangle

public void fillRectangle(int x,
                          int y,
                          int width,
                          int height)
Description copied from class: Graphics
Fills a rectangle whose top-left corner is located at the point (x,y) with the given width and height.

Specified by:
fillRectangle in class Graphics
Parameters:
x - the x coordinate
y - the y coordinate
width - the width
height - the height
See Also:
Graphics.fillRectangle(int, int, int, int)

fillRoundRectangle

public void fillRoundRectangle(Rectangle r,
                               int arcWidth,
                               int arcHeight)
Description copied from class: Graphics
Fills a rectangle with rounded corners using the background color. arcWidth and arcHeight represent the horizontal and vertical diameter of the corners.

Specified by:
fillRoundRectangle in class Graphics
Parameters:
r - the rectangle
arcWidth - the arc width
arcHeight - the arc height
See Also:
Graphics.fillRoundRectangle(Rectangle, int, int)

fillString

public void fillString(String s,
                       int x,
                       int y)
Description copied from class: Graphics
Draws the given string using the current font and foreground color. No tab expansion or carriage return processing will be performed. The background of the string will be filled with the current background color.

Specified by:
fillString in class Graphics
Parameters:
s - the string
x - the x coordinate
y - the y coordinate
See Also:
Graphics.fillString(String, int, int)

fillText

public void fillText(String s,
                     int x,
                     int y)
Description copied from class: Graphics
Draws the given string using the current font and foreground color. Tab expansion and carriage return processing are performed. The background of the text will be filled with the current background color.

Specified by:
fillText in class Graphics
Parameters:
s - the text
x - the x coordinate
y - the y coordinate
See Also:
Graphics.fillText(String, int, int)

getBackgroundColor

public Color getBackgroundColor()
Description copied from class: Graphics
Returns the background color used for filling.

Specified by:
getBackgroundColor in class Graphics
Returns:
the background color
See Also:
Graphics.getBackgroundColor()

getClip

public Rectangle getClip(Rectangle rect)
Description copied from class: Graphics
Modifies the given rectangle to match the clip region and returns that rectangle.

Specified by:
getClip in class Graphics
Parameters:
rect - the rectangle to hold the clip region
Returns:
the clip rectangle
See Also:
Graphics.getClip(Rectangle)

getFont

public Font getFont()
Description copied from class: Graphics
Returns the font used to draw and fill text.

Specified by:
getFont in class Graphics
Returns:
the font
See Also:
Graphics.getFont()

getFontMetrics

public FontMetrics getFontMetrics()
Description copied from class: Graphics
Returns the font metrics for the current font.

Specified by:
getFontMetrics in class Graphics
Returns:
the font metrics
See Also:
Graphics.getFontMetrics()

getForegroundColor

public Color getForegroundColor()
Description copied from class: Graphics
Returns the foreground color used to draw lines and text.

Specified by:
getForegroundColor in class Graphics
Returns:
the foreground color
See Also:
Graphics.getForegroundColor()

getLineStyle

public int getLineStyle()
Description copied from class: Graphics
Returns the line style.

Specified by:
getLineStyle in class Graphics
Returns:
the line style
See Also:
Graphics.getLineStyle()

getLineWidth

public int getLineWidth()
Description copied from class: Graphics
Returns the current line width.

Specified by:
getLineWidth in class Graphics
Returns:
the line width
See Also:
Graphics.getLineWidth()

getXORMode

public boolean getXORMode()
Description copied from class: Graphics
Returns true if this graphics object should use XOR mode with painting.

Specified by:
getXORMode in class Graphics
Returns:
whether XOR mode is turned on
See Also:
Graphics.getXORMode()

init

protected void init()
Called by constructor, initializes all State information for currentState


popState

public void popState()
Description copied from class: Graphics
Pops the previous state of this graphics object off the stack (if Graphics.pushState() has previously been called) and restores the current state to that popped state.

Specified by:
popState in class Graphics
See Also:
Graphics.popState()

pushState

public void pushState()
Description copied from class: Graphics
Pushes the current state of this graphics object onto a stack.

Specified by:
pushState in class Graphics
See Also:
Graphics.pushState()

restoreState

public void restoreState()
Description copied from class: Graphics
Restores the previous state of this graphics object.

Specified by:
restoreState in class Graphics
See Also:
Graphics.restoreState()

restoreState

protected void restoreState(SWTGraphics.State s)
Sets all State information to that of the given State, called by restoreState()

Parameters:
s - the State

scale

public void scale(double factor)
Description copied from class: Graphics
Scales this graphics object by the given amount.

Specified by:
scale in class Graphics
Parameters:
factor - the scale factor
See Also:
Graphics.scale(double)

setBackgroundColor

public void setBackgroundColor(Color color)
Description copied from class: Graphics
Sets the background color.

Specified by:
setBackgroundColor in class Graphics
Parameters:
color - the new background color
See Also:
Graphics.setBackgroundColor(Color)

setClip

public void setClip(Rectangle rect)
Description copied from class: Graphics
Sets the clip rectangle. Painting will not occur outside this area.

Specified by:
setClip in class Graphics
Parameters:
rect - the new clip rectangle
See Also:
Graphics.setClip(Rectangle)

setClipAbsolute

protected void setClipAbsolute(int x,
                               int y,
                               int w,
                               int h)
Sets clip values to the given values.

Parameters:
x - the X value
y - the Y value
w - the width value
h - the height value

setFont

public void setFont(Font f)
Description copied from class: Graphics
Sets the font.

Specified by:
setFont in class Graphics
Parameters:
f - the new font
See Also:
Graphics.setFont(Font)

setForegroundColor

public void setForegroundColor(Color color)
Description copied from class: Graphics
Sets the foreground color.

Specified by:
setForegroundColor in class Graphics
Parameters:
color - the new foreground color
See Also:
Graphics.setForegroundColor(Color)

setLineStyle

public void setLineStyle(int style)
Description copied from class: Graphics
Sets the line style.

Specified by:
setLineStyle in class Graphics
Parameters:
style - the new style
See Also:
Graphics.setLineStyle(int)

setLineWidth

public void setLineWidth(int width)
Description copied from class: Graphics
Sets the line width.

Specified by:
setLineWidth in class Graphics
Parameters:
width - the new width
See Also:
Graphics.setLineWidth(int)

setTranslation

protected void setTranslation(int x,
                              int y)
Sets the translation values of this to the given values

Parameters:
x - The x value
y - The y value

setXORMode

public void setXORMode(boolean b)
Description copied from class: Graphics
Sets the XOR mode.

Specified by:
setXORMode in class Graphics
Parameters:
b - the new XOR mode
See Also:
Graphics.setXORMode(boolean)

translate

public void translate(int x,
                      int y)
Description copied from class: Graphics
Translates this graphics object so that its origin is offset horizontally by dx and vertically by dy.

Specified by:
translate in class Graphics
Parameters:
x - the horizontal offset
y - the vertical offset
See Also:
Graphics.translate(int, int)

Eclipse Draw2d
2.1

Copyright (c) IBM Corp. and others 2000, 2003. All Rights Reserved.