com.jgoodies.forms.util
Class DefaultUnitConverter

java.lang.Object
  extended by com.jgoodies.forms.util.AbstractUnitConverter
      extended by com.jgoodies.forms.util.DefaultUnitConverter
All Implemented Interfaces:
UnitConverter

public final class DefaultUnitConverter
extends AbstractUnitConverter

This is the default implementation of the UnitConverter interface. It converts horizontal and vertical dialog base units to pixels.

The horizontal base unit is equal to the average width, in pixels, of the characters in the system font; the vertical base unit is equal to the height, in pixels, of the font. Each horizontal base unit is equal to 4 horizontal dialog units; each vertical base unit is equal to 8 vertical dialog units.

The DefaultUnitConverter computes dialog base units using a default font and a test string for the average character width. You can configure the font and the test string via the bound Bean properties defaultDialogFont and averageCharacterWidthTestString.

Version:
$Revision: 1.10 $
Author:
Karsten Lentzsch
See Also:
UnitConverter, Size, Sizes

Method Summary
 void addPropertyChangeListener(PropertyChangeListener listener)
          Adds a PropertyChangeListener to the listener list.
 void addPropertyChangeListener(String propertyName, PropertyChangeListener listener)
          Adds a PropertyChangeListener to the listener list for a specific property.
 String getAverageCharacterWidthTestString()
          Returns the string used to compute the average character width.
 Font getDefaultDialogFont()
          Lazily creates and returns the dialog font used to compute the dialog base units.
protected  double getDialogBaseUnitsX(Component component)
          Returns the cached or computed horizontal dialog base units.
protected  double getDialogBaseUnitsY(Component component)
          Returns the cached or computed vertical dialog base units for the given component.
static DefaultUnitConverter getInstance()
          Lazily instantiates and returns the sole instance.
 void removePropertyChangeListener(PropertyChangeListener listener)
          Removes a PropertyChangeListener from the listener list.
 void removePropertyChangeListener(String propertyName, PropertyChangeListener listener)
          Removes a PropertyChangeListener from the listener list for a specific property.
 void setAverageCharacterWidthTestString(String newTestString)
          Sets a string that will be used to compute the average character width.
 void setDefaultDialogFont(Font newFont)
          Sets a dialog font that will be used to compute the dialog base units.
 
Methods inherited from class com.jgoodies.forms.util.AbstractUnitConverter
centimeterAsPixel, centimeterAsPixel, computeAverageCharWidth, dialogUnitXAsPixel, dialogUnitXAsPixel, dialogUnitYAsPixel, dialogUnitYAsPixel, getDefaultScreenResolution, getScreenResolution, inchAsPixel, inchAsPixel, millimeterAsPixel, millimeterAsPixel, pointAsPixel, pointAsPixel
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

getInstance

public static DefaultUnitConverter getInstance()
Lazily instantiates and returns the sole instance.

Returns:
the lazily instantiated sole instance

getAverageCharacterWidthTestString

public String getAverageCharacterWidthTestString()
Returns the string used to compute the average character width. By default it is initialized to "X".

Returns:
the test string used to compute the average character width

setAverageCharacterWidthTestString

public void setAverageCharacterWidthTestString(String newTestString)
Sets a string that will be used to compute the average character width. By default it is initialized to "X". You can provide other test strings, for example:

Parameters:
newTestString - the test string to be used
Throws:
IllegalArgumentException - if the test string is empty
NullPointerException - if the test string is null

getDefaultDialogFont

public Font getDefaultDialogFont()
Lazily creates and returns the dialog font used to compute the dialog base units.

Returns:
the font used to compute the dialog base units

setDefaultDialogFont

public void setDefaultDialogFont(Font newFont)
Sets a dialog font that will be used to compute the dialog base units.

Parameters:
newFont - the default dialog font to be set

getDialogBaseUnitsX

protected double getDialogBaseUnitsX(Component component)
Returns the cached or computed horizontal dialog base units.

Specified by:
getDialogBaseUnitsX in class AbstractUnitConverter
Parameters:
component - a Component that provides the font and graphics
Returns:
the horizontal dialog base units

getDialogBaseUnitsY

protected double getDialogBaseUnitsY(Component component)
Returns the cached or computed vertical dialog base units for the given component.

Specified by:
getDialogBaseUnitsY in class AbstractUnitConverter
Parameters:
component - a Component that provides the font and graphics
Returns:
the vertical dialog base units

addPropertyChangeListener

public final void addPropertyChangeListener(PropertyChangeListener listener)
Adds a PropertyChangeListener to the listener list. The listener is registered for all bound properties of this class.

If listener is null, no exception is thrown and no action is performed.

Parameters:
listener - the PropertyChangeListener to be added
See Also:
removePropertyChangeListener(PropertyChangeListener), removePropertyChangeListener(String, PropertyChangeListener), addPropertyChangeListener(String, PropertyChangeListener)

removePropertyChangeListener

public final void removePropertyChangeListener(PropertyChangeListener listener)
Removes a PropertyChangeListener from the listener list. This method should be used to remove PropertyChangeListeners that were registered for all bound properties of this class.

If listener is null, no exception is thrown and no action is performed.

Parameters:
listener - the PropertyChangeListener to be removed
See Also:
addPropertyChangeListener(PropertyChangeListener), addPropertyChangeListener(String, PropertyChangeListener), removePropertyChangeListener(String, PropertyChangeListener)

addPropertyChangeListener

public final void addPropertyChangeListener(String propertyName,
                                            PropertyChangeListener listener)
Adds a PropertyChangeListener to the listener list for a specific property. The specified property may be user-defined.

Note that if this Model is inheriting a bound property, then no event will be fired in response to a change in the inherited property.

If listener is null, no exception is thrown and no action is performed.

Parameters:
propertyName - one of the property names listed above
listener - the PropertyChangeListener to be added
See Also:
removePropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener), addPropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener)

removePropertyChangeListener

public final void removePropertyChangeListener(String propertyName,
                                               PropertyChangeListener listener)
Removes a PropertyChangeListener from the listener list for a specific property. This method should be used to remove PropertyChangeListeners that were registered for a specific bound property.

If listener is null, no exception is thrown and no action is performed.

Parameters:
propertyName - a valid property name
listener - the PropertyChangeListener to be removed
See Also:
addPropertyChangeListener(java.lang.String, java.beans.PropertyChangeListener), removePropertyChangeListener(java.beans.PropertyChangeListener)


Copyright © 2002-2004 JGoodies Karsten Lentzsch. All Rights Reserved.