ach
Class ImgComponent

java.lang.Object
  |
  +--java.awt.Component
        |
        +--ach.ImgComponent
All Implemented Interfaces:
java.awt.image.ImageObserver, ImgComponentIntf, java.awt.MenuContainer, java.io.Serializable

public class ImgComponent
extends java.awt.Component
implements ImgComponentIntf

ImgComponent.java
Copyright (c) 1999 Helge Hackbarth, All Rights Reserved.
Extends Component with comfortable image display functions and automatic drawing of background patterns. The functionality is similar to class ImgCanvas but this class can be used as lightweight component e.g. in a JInternalFrame. If used embedded in standard AWT components you may recognize some flickering, so ImgCanvas is recommended.

THE AUTHOR MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT. THE AUTHOR SHALL NOT BE LIABLE FOR ANY DAMAGES SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING THIS SOFTWARE OR ITS DERIVATIVES.

See Also:
Serialized Form

Inner classes inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent
 
Field Summary
 boolean clearBackground
          Flag if background is simply cleared or drawn with a black-and-white pattern
 boolean clearBeforePaint
          Flag if component needs to be cleared before paint.
 boolean needsFocus
          Flag if component needs to request focus after update automatcally set to true if run with Java 1.0x
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
ImgComponent(java.awt.Container parent)
          constructor for ImgComponent
ImgComponent(java.awt.Container parent, java.awt.image.ImageObserver observer)
          constructor for ImgComponent chaining to additional image observer
 
Method Summary
 void checkFocus()
          request focus if boolean var needsFocus is set true
 void drawError(java.lang.String errorMsg)
          schedule a repaint that will draw an error message (may contain \r\n)
 void drawImage(java.awt.Image img, int x, int y)
          schedule a repaint with drawing the given image (not scaled)
 void drawImage(java.awt.Image img, int x, int y, int width, int height, int hints)
          schedule a repaint with drawing the given image (scaled)
 void drawShapes(ShapeList sl)
          draw vector graphics objects
 void fitInImage(java.awt.Image img, java.awt.Dimension imgDim, int hints)
          schedule a repaint with an image proportionally scaled to fit in component
 boolean getDoubleBuffering()
          Retrieve current setting of double buffering mode
 java.awt.Dimension getMinimumSize()
           
 java.awt.Image getOffscreen()
          Get offscreen image
 java.awt.Dimension getPreferredSize()
           
 java.awt.Dimension getSize()
           
 boolean imageUpdate(java.awt.Image img, int flags, int x, int y, int w, int h)
          Image component is a modified ImageObserver to retry after ABORT and to be able to chain in another ImageObserver
 java.awt.Dimension minimumSize()
           
 void paint(java.awt.Graphics g)
          the paint method of the image component
 java.awt.Dimension preferredSize()
           
 void requestFocus()
           
 void resize(java.awt.Dimension d)
           
 void resize(int width, int height)
           
 void setBackgroundExclusion(int x, int y, int width, int height)
          Specify the area that has to be excluded from drawing the background
 void setDoubleBuffering(boolean dblBufMode)
          Enable or disable double buffering when component is painted
 void setSize(java.awt.Dimension d)
           
 void setSize(int width, int height)
           
 java.awt.Dimension size()
           
 void update(java.awt.Graphics g)
          the update method of the image component (calling paint()); drawing of the background is controlled by clearBeforePaint-flag
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addNotify, addPropertyChangeListener, addPropertyChangeListener, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, deliverEvent, disable, disableEvents, dispatchEvent, doLayout, enable, enable, enableEvents, enableInputMethods, firePropertyChange, getAccessibleContext, getAlignmentX, getAlignmentY, getBackground, getBounds, getBounds, getColorModel, getComponentAt, getComponentAt, getComponentOrientation, getCursor, getDropTarget, getFont, getFontMetrics, getForeground, getGraphics, getGraphicsConfiguration, getHeight, getInputContext, getInputMethodRequests, getListeners, getLocale, getLocation, getLocation, getLocationOnScreen, getMaximumSize, getName, getParent, getPeer, getSize, getToolkit, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, hide, inside, invalidate, isDisplayable, isDoubleBuffered, isEnabled, isFocusTraversable, isLightweight, isOpaque, isShowing, isValid, isVisible, keyDown, keyUp, layout, list, list, list, list, list, locate, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, paramString, postEvent, prepareImage, prepareImage, print, printAll, processComponentEvent, processEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeNotify, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, reshape, setBackground, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setEnabled, setFont, setForeground, setLocale, setLocation, setLocation, setName, setVisible, show, show, toString, transferFocus, validate
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface ach.ImgComponentIntf
setBackground
 

Field Detail

needsFocus

public boolean needsFocus
Flag if component needs to request focus after update automatcally set to true if run with Java 1.0x

clearBeforePaint

public boolean clearBeforePaint
Flag if component needs to be cleared before paint. This class automatically draws a background pattern around the image, so usually clearing the background before painting is not necessary

clearBackground

public boolean clearBackground
Flag if background is simply cleared or drawn with a black-and-white pattern
Constructor Detail

ImgComponent

public ImgComponent(java.awt.Container parent)
constructor for ImgComponent
Parameters:
parent - is the container where this component is to be embedded

ImgComponent

public ImgComponent(java.awt.Container parent,
                    java.awt.image.ImageObserver observer)
constructor for ImgComponent chaining to additional image observer
Parameters:
parent - is the container where this component is to be embedded
observer - additional image observer to be chained in at drawImage
Method Detail

setDoubleBuffering

public void setDoubleBuffering(boolean dblBufMode)
Enable or disable double buffering when component is painted
Specified by:
setDoubleBuffering in interface ImgComponentIntf
Parameters:
dblBufMode - true to enable double buffering, false otherwise

getDoubleBuffering

public boolean getDoubleBuffering()
Retrieve current setting of double buffering mode
Specified by:
getDoubleBuffering in interface ImgComponentIntf
Returns:
true if double buffering is enabled, false otherwise

getOffscreen

public java.awt.Image getOffscreen()
Get offscreen image
Specified by:
getOffscreen in interface ImgComponentIntf
Returns:
image representing the current double buffer screen or null

size

public java.awt.Dimension size()
Overrides:
size in class java.awt.Component

getSize

public java.awt.Dimension getSize()
Overrides:
getSize in class java.awt.Component

resize

public void resize(java.awt.Dimension d)
Specified by:
resize in interface ImgComponentIntf
Overrides:
resize in class java.awt.Component

resize

public void resize(int width,
                   int height)
Specified by:
resize in interface ImgComponentIntf
Overrides:
resize in class java.awt.Component

setSize

public void setSize(java.awt.Dimension d)
Specified by:
setSize in interface ImgComponentIntf
Overrides:
setSize in class java.awt.Component

setSize

public void setSize(int width,
                    int height)
Specified by:
setSize in interface ImgComponentIntf
Overrides:
setSize in class java.awt.Component

minimumSize

public java.awt.Dimension minimumSize()
Overrides:
minimumSize in class java.awt.Component

getMinimumSize

public java.awt.Dimension getMinimumSize()
Overrides:
getMinimumSize in class java.awt.Component

preferredSize

public java.awt.Dimension preferredSize()
Overrides:
preferredSize in class java.awt.Component

getPreferredSize

public java.awt.Dimension getPreferredSize()
Overrides:
getPreferredSize in class java.awt.Component

setBackgroundExclusion

public void setBackgroundExclusion(int x,
                                   int y,
                                   int width,
                                   int height)
Specify the area that has to be excluded from drawing the background
Specified by:
setBackgroundExclusion in interface ImgComponentIntf
Parameters:
x - the X-coordinate of the excluded area
y - the Y-coordinate of the excluded area
width - the width of the excluded area
height - the height of the excluded area

checkFocus

public void checkFocus()
Description copied from interface: ImgComponentIntf
request focus if boolean var needsFocus is set true
Specified by:
checkFocus in interface ImgComponentIntf

drawImage

public void drawImage(java.awt.Image img,
                      int x,
                      int y,
                      int width,
                      int height,
                      int hints)
schedule a repaint with drawing the given image (scaled)
Specified by:
drawImage in interface ImgComponentIntf
Parameters:
img - the image to be drawn
x - the X-coordinate of the image relative to component
y - the Y-coordinate of the image relative to component
width - the scaled width of the image
height - the scaled height of the image
hints - options for scaling method, see getScaledInstance (e.g. SCALE_SMOOTH)
See Also:
Image.getScaledInstance(int width, int height, int hints)

drawImage

public void drawImage(java.awt.Image img,
                      int x,
                      int y)
schedule a repaint with drawing the given image (not scaled)
Specified by:
drawImage in interface ImgComponentIntf
Parameters:
img - the image to be drawn
x - the X-coordinate of the image relative to component
y - the Y-coordinate of the image relative to component

fitInImage

public void fitInImage(java.awt.Image img,
                       java.awt.Dimension imgDim,
                       int hints)
schedule a repaint with an image proportionally scaled to fit in component
Specified by:
fitInImage in interface ImgComponentIntf
Parameters:
img - the image to be drawn
imgDim - the size of the image
hints - options for scaling method, see getScaledInstance (e.g. SCALE_SMOOTH)
See Also:
Image.getScaledInstance(int width, int height, int hints)

drawError

public void drawError(java.lang.String errorMsg)
schedule a repaint that will draw an error message (may contain \r\n)
Specified by:
drawError in interface ImgComponentIntf
Parameters:
errorMsg - the error message

drawShapes

public void drawShapes(ShapeList sl)
draw vector graphics objects
Specified by:
drawShapes in interface ImgComponentIntf
Parameters:
ShapeList - containing vector graphics (e.g. annotations)

requestFocus

public void requestFocus()
Overrides:
requestFocus in class java.awt.Component

paint

public void paint(java.awt.Graphics g)
the paint method of the image component
Specified by:
paint in interface ImgComponentIntf
Overrides:
paint in class java.awt.Component

imageUpdate

public boolean imageUpdate(java.awt.Image img,
                           int flags,
                           int x,
                           int y,
                           int w,
                           int h)
Image component is a modified ImageObserver to retry after ABORT and to be able to chain in another ImageObserver
Specified by:
imageUpdate in interface ImgComponentIntf
Overrides:
imageUpdate in class java.awt.Component

update

public void update(java.awt.Graphics g)
the update method of the image component (calling paint()); drawing of the background is controlled by clearBeforePaint-flag
Specified by:
update in interface ImgComponentIntf
Overrides:
update in class java.awt.Component