org.jvnet.substance.watermark
Class SubstanceImageWatermark

java.lang.Object
  extended by org.jvnet.substance.watermark.SubstanceImageWatermark
All Implemented Interfaces:
SubstanceTrait, SubstanceWatermark

public class SubstanceImageWatermark
extends java.lang.Object
implements SubstanceWatermark

Implementation of SubstanceWatermark, drawing specified image as watermark. This class is part of officially supported API.

Author:
Kirill Grouchnikov, Chris Hall, Mark Haag

Field Summary
protected  java.awt.image.BufferedImage origImage
          The original image (as read from the disk / HTTP connection).
protected  java.lang.String origImageLocation
          The original image location.
protected static java.awt.Image watermarkImage
          Watermark image (screen-sized).
 
Constructor Summary
SubstanceImageWatermark(java.io.InputStream inputStream)
          Creates an instance from the specified input stream.
SubstanceImageWatermark(ParamReader paramReader)
          Simple constructor.
SubstanceImageWatermark(java.lang.String imageLocation)
          Creates an instance with specified image.
 
Method Summary
 void dispose()
          Disposes the memory associated with this watermark.
 void drawWatermarkImage(java.awt.Graphics graphics, java.awt.Component c, int x, int y, int width, int height)
          Draws the watermark on the specified graphics context in the specified region.
 java.lang.String getDisplayName()
          Returns the display name of this trait.
static SubstanceConstants.ImageWatermarkKind getKind()
          Returns the image watermark kind.
static java.lang.String getName()
          Returns the name of all watermarks of this class.
static float getOpacity()
          Returns the image watermark opacity.
 java.lang.String getOrigImageLocation()
          Returns the location of the original image.
 boolean isDependingOnTheme()
          Returns indication whether this watermark depends on the current SubstanceTheme.
 void previewWatermark(java.awt.Graphics g, int x, int y, int width, int height)
          Draws the preview of the watermark image.
static void setKind(SubstanceConstants.ImageWatermarkKind kind)
          Sets image watermark kind.
static void setOpacity(float opacity)
          Sets image watermark opacity.
 boolean updateWatermarkImage()
          Updates the current watermark image.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

watermarkImage

protected static java.awt.Image watermarkImage
Watermark image (screen-sized).


origImage

protected java.awt.image.BufferedImage origImage
The original image (as read from the disk / HTTP connection).


origImageLocation

protected java.lang.String origImageLocation
The original image location.

Constructor Detail

SubstanceImageWatermark

public SubstanceImageWatermark(ParamReader paramReader)
                        throws java.security.AccessControlException
Simple constructor. Uses ParamReader.getWatermarkImageProperty() to retrieve the location of the image. Note that this constructor can throw AccessControlException if this class is used in unsecure JNLP environment. However, in this case we must have access to local disk in any case since we need to read the image.

Parameters:
paramReader - Substance parameter reader instance.
Throws:
java.security.AccessControlException - if this class is used in unsecure JNLP environment

SubstanceImageWatermark

public SubstanceImageWatermark(java.lang.String imageLocation)
Creates an instance with specified image.

Parameters:
imageLocation - Image location. Can point to a local file or HTTP URL (needs to start with http in the later case).

SubstanceImageWatermark

public SubstanceImageWatermark(java.io.InputStream inputStream)
Creates an instance from the specified input stream.

Parameters:
inputStream - Input stream.
Method Detail

drawWatermarkImage

public void drawWatermarkImage(java.awt.Graphics graphics,
                               java.awt.Component c,
                               int x,
                               int y,
                               int width,
                               int height)
Description copied from interface: SubstanceWatermark
Draws the watermark on the specified graphics context in the specified region.

Specified by:
drawWatermarkImage in interface SubstanceWatermark
Parameters:
graphics - Graphics context.
c - Component that is painted.
x - Left X of the region.
y - Top Y of the region.
width - Region width.
height - Region height.

previewWatermark

public void previewWatermark(java.awt.Graphics g,
                             int x,
                             int y,
                             int width,
                             int height)
Description copied from interface: SubstanceWatermark
Draws the preview of the watermark image.

Specified by:
previewWatermark in interface SubstanceWatermark
Parameters:
g - Graphic context.
x - the x coordinate of the watermark to be drawn.
y - The y coordinate of the watermark to be drawn.
width - The width of the watermark to be drawn.
height - The height of the watermark to be drawn.

updateWatermarkImage

public boolean updateWatermarkImage()
Description copied from interface: SubstanceWatermark
Updates the current watermark image.

Specified by:
updateWatermarkImage in interface SubstanceWatermark
Returns:
true if the watermark has been updated successfully, false otherwise.

getDisplayName

public java.lang.String getDisplayName()
Description copied from interface: SubstanceTrait
Returns the display name of this trait. This method is part of officially supported API.

Specified by:
getDisplayName in interface SubstanceTrait
Specified by:
getDisplayName in interface SubstanceWatermark
Returns:
The display name of this trait.

getName

public static java.lang.String getName()
Returns the name of all watermarks of this class.

Returns:
The name of all watermarks of this class.

isDependingOnTheme

public boolean isDependingOnTheme()
Description copied from interface: SubstanceWatermark
Returns indication whether this watermark depends on the current SubstanceTheme.

Specified by:
isDependingOnTheme in interface SubstanceWatermark
Returns:
true if this watermark depends on the current SubstanceTheme, false otherwise.

dispose

public void dispose()
Description copied from interface: SubstanceWatermark
Disposes the memory associated with this watermark.

Specified by:
dispose in interface SubstanceWatermark

getOrigImageLocation

public java.lang.String getOrigImageLocation()
Returns the location of the original image.

Returns:
The location of the original image.

setKind

public static void setKind(SubstanceConstants.ImageWatermarkKind kind)
Sets image watermark kind.

Parameters:
kind - Image watermark kind.

getKind

public static SubstanceConstants.ImageWatermarkKind getKind()
Returns the image watermark kind.

Returns:
Image watermark kind.

getOpacity

public static float getOpacity()
Returns the image watermark opacity.

Returns:
Image watermark opacity.

setOpacity

public static void setOpacity(float opacity)
Sets image watermark opacity.

Parameters:
opacity - Image watermark opacity.
Throws:
java.lang.IllegalArgumentException - if the argument is not in 0.0-1.0 range.