org.pbjar.jxlayer.plaf.ext.transform
Class DefaultTransformModel

java.lang.Object
  extended by org.pbjar.jxlayer.plaf.ext.transform.DefaultTransformModel
All Implemented Interfaces:
TransformModel

public class DefaultTransformModel
extends Object
implements TransformModel

This is an implementation of TransformModel with methods to explicitly set transformation values.

Author:
Piet Blok

Constructor Summary
DefaultTransformModel()
           
 
Method Summary
 void addChangeListener(ChangeListener listener)
          Add a ChangeListener that will be notified when the internal state of this model changes.
protected  void fireChangeEvent(Object oldValue, Object newValue)
          If {!
 AffineTransform getPreferredTransform(Dimension size, org.jdesktop.jxlayer.JXLayer<?> layer)
          Get a preferred AffineTransform.
 int getQuadrantRotation()
          Get the quadrant rotation value.
 double getRotation()
          Get the rotation value in radians as set by setRotation(double).
 double getScale()
          Get the scale.
 double getShearX()
          Get the shearX value as set by setShearX(double); The default value is 0.
 double getShearY()
          Get the shearY value as set by setShearY(double); The default value is 0.
 AffineTransform getTransform(org.jdesktop.jxlayer.JXLayer<?> layer)
          Return the currently active AffineTransform.
 boolean isMirror()
          Get the mirror property.
 boolean isPreserveAspectRatio()
          Get the preserve aspect ratio value.
 boolean isScaleToPreferredSize()
          Get the scale to preferred size value.
 void removeChangeListener(ChangeListener listener)
          Remove a ChangeListener.
 void setMirror(boolean newValue)
          Set the mirror property.
 void setPreserveAspectRatio(boolean newValue)
          Set preserve aspect ratio.
 void setQuadrantRotation(int newValue)
          Set the rotation in quadrants.
 void setRotation(double newValue)
          Set the rotation in radians.
 void setScale(double newValue)
          Set a scale.
 void setScaleToPreferredSize(boolean newValue)
          Set scaleToPreferredSize.
 void setShearX(double newValue)
          Set the shearX value.
 void setShearY(double newValue)
          Set the shearY value.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DefaultTransformModel

public DefaultTransformModel()
Method Detail

addChangeListener

public void addChangeListener(ChangeListener listener)
Description copied from interface: TransformModel
Add a ChangeListener that will be notified when the internal state of this model changes.

Specified by:
addChangeListener in interface TransformModel
Parameters:
listener - a ChangeListener
See Also:
TransformModel.removeChangeListener(ChangeListener)

getScale

public double getScale()
Get the scale.

Returns:
the scale
See Also:
setScale(double)

getPreferredTransform

public AffineTransform getPreferredTransform(Dimension size,
                                             org.jdesktop.jxlayer.JXLayer<?> layer)
Description copied from interface: TransformModel
Get a preferred AffineTransform. This method will typically be invoked by programs that calculate a preferred size.

The size argument will be used to compute anchor values for some types of transformations. If the size argument is null a value of (0,0) is used for the anchor.

Specified by:
getPreferredTransform in interface TransformModel
Parameters:
size - a Dimension instance to be used for an anchor or null
layer - the JXLayer.
Returns:
a AffineTransform instance or null

getQuadrantRotation

public int getQuadrantRotation()
Get the quadrant rotation value. The default value is 0.

Returns:
the quadrant rotation value
See Also:
setQuadrantRotation(int)

getRotation

public double getRotation()
Get the rotation value in radians as set by setRotation(double). The default value is 0.

Returns:
the rotation value.
See Also:
setRotation(double)

getShearX

public double getShearX()
Get the shearX value as set by setShearX(double); The default value is 0.

Returns:
the shear x value
See Also:
setShearX(double)

getShearY

public double getShearY()
Get the shearY value as set by setShearY(double); The default value is 0.

Returns:
the shear y value
See Also:
setShearY(double)

getTransform

public AffineTransform getTransform(org.jdesktop.jxlayer.JXLayer<?> layer)
Return the currently active AffineTransform. Recalculate if needed.

Specified by:
getTransform in interface TransformModel
Parameters:
layer - the JXLayer
Returns:
the currently active AffineTransform

isMirror

public boolean isMirror()
Get the mirror property.

The default value is false.

Returns:
true if the transformation will mirror the view.
See Also:
setMirror(boolean)

isPreserveAspectRatio

public boolean isPreserveAspectRatio()
Get the preserve aspect ratio value.

The default value is true.

Returns:
true if preserving aspect ratio, false otherwise
See Also:
setPreserveAspectRatio(boolean)

isScaleToPreferredSize

public boolean isScaleToPreferredSize()
Get the scale to preferred size value.

The default value is false.

When true, the view is scaled according to the preferred scale, regardless of the size of the JXLayer.

When false, the view is scaled to occupy as much as possible of the size of the JXLayer.

Returns:
true if scale to preferred size, false otherwise
See Also:
setScaleToPreferredSize(boolean)

removeChangeListener

public void removeChangeListener(ChangeListener listener)
Description copied from interface: TransformModel
Remove a ChangeListener.

Specified by:
removeChangeListener in interface TransformModel
Parameters:
listener - a ChangeListener
See Also:
TransformModel.addChangeListener(ChangeListener)

setMirror

public void setMirror(boolean newValue)
Set the mirror property.

The default value is false

Parameters:
newValue - the new value
See Also:
isMirror()

setScale

public void setScale(double newValue)
              throws IllegalArgumentException
Set a scale.

The scale is primarily used to calculate a preferred size. Unless ScaleToPreferredSize is set to true (see setScaleToPreferredSize(boolean) and isScaleToPreferredSize()), actual scaling itself is calculated such that the view occupies as much space as possible on the JXLayer.

The default value is 1.

Parameters:
newValue - the preferred scale
Throws:
IllegalArgumentException - when the argument value is 0
See Also:
getScale()

setPreserveAspectRatio

public void setPreserveAspectRatio(boolean newValue)
Set preserve aspect ratio.

The default value is true.

Parameters:
newValue - the new value
See Also:
isPreserveAspectRatio()

setQuadrantRotation

public void setQuadrantRotation(int newValue)
Set the rotation in quadrants. The default value is 0.

Parameters:
newValue - the number of quadrants
See Also:
getQuadrantRotation()

setRotation

public void setRotation(double newValue)
Set the rotation in radians. The default value is 0.

Parameters:
newValue - the rotation in radians
See Also:
getRotation()

setScaleToPreferredSize

public void setScaleToPreferredSize(boolean newValue)
Set scaleToPreferredSize.

The default value is false.

When true, the view is scaled according to the preferred scale, regardless of the size of the JXLayer.

When false, the view is scaled to occupy as much as possible of the size of the JXLayer.

Parameters:
newValue - the new value
See Also:
isScaleToPreferredSize()

setShearX

public void setShearX(double newValue)
Set the shearX value. The default value is 0.

Parameters:
newValue - the shear x
See Also:
getShearX()

setShearY

public void setShearY(double newValue)
Set the shearY value. The default value is 0.

Parameters:
newValue - the shear y
See Also:
getShearY()

fireChangeEvent

protected void fireChangeEvent(Object oldValue,
                               Object newValue)
If {!oldValue.equals(newValue)}, a ChangeEvent will be fired.

Parameters:
oldValue - an old value
newValue - a new value