org.pentaho.reporting.engine.classic.core.util
Class ComponentDrawable

java.lang.Object
  extended by org.pentaho.reporting.engine.classic.core.util.ComponentDrawable

public class ComponentDrawable
extends Object

A Drawable that renders a AWT-component. This only works if the AWT is not in headless mode.

Author:
Thomas Morgner

Constructor Summary
ComponentDrawable()
          Default Constructor.
ComponentDrawable(JFrame peerSupply)
          Creates a new ComponentDrawable with the given Frame as peer-supply.
 
Method Summary
 void draw(Graphics2D g2, Rectangle2D area)
          Draws the component.
 Component getComponent()
          Returns the component that should be drawn.
 Dimension getPreferredSize()
          Returns the preferred size of the drawable.
 Dimension getSize()
          Returns the declared size of the drawable.
 boolean isAllowOwnPeer()
          Returns, whether components are allowed to provide their own AWT-Window.
 boolean isPaintSynchronized()
          Returns, whether component operations will happen on the Event-Dispatcher threads.
 boolean isPreserveAspectRatio()
          Returns true, if this drawable will preserve an aspect ratio during the drawing.
 void setAllowOwnPeer(boolean allowOwnPeer)
          Defines, whether components are allowed to provide their own AWT-Window.
 void setComponent(Component component)
          Defines the component that should be drawn.
 void setPaintSynchronized(boolean paintSynchronized)
          Defines, whether component operations will happen on the Event-Dispatcher threads.
 void setPreserveAspectRatio(boolean preserveAspectRatio)
          Defines whether the layouter should preserve the aspect ratio of the component's preferred size.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ComponentDrawable

public ComponentDrawable()
Default Constructor.


ComponentDrawable

public ComponentDrawable(JFrame peerSupply)
Creates a new ComponentDrawable with the given Frame as peer-supply.

Parameters:
peerSupply - the frame that should be used as peer-source.
Method Detail

isAllowOwnPeer

public boolean isAllowOwnPeer()
Returns, whether components are allowed to provide their own AWT-Window.

Returns:
true, if foreign peers are allowed, false otherwise.

setAllowOwnPeer

public void setAllowOwnPeer(boolean allowOwnPeer)
Defines, whether components are allowed to provide their own AWT-Window.

Parameters:
allowOwnPeer - true, if components can provide their own peers, false otherwise.

isPaintSynchronized

public boolean isPaintSynchronized()
Returns, whether component operations will happen on the Event-Dispatcher threads. As the AWT is not synchronized, weird things can happen if AWT functionality is executed on user threads.

Returns:
true, if all operations will be done on the AWT-EventDispatcher thread, false if they should be done in the local thread.

setPaintSynchronized

public void setPaintSynchronized(boolean paintSynchronized)
Defines, whether component operations will happen on the Event-Dispatcher threads. As the AWT is not synchronized, weird things can happen if AWT functionality is executed on user threads.

Parameters:
paintSynchronized - true, if all operations will be done on the AWT-EventDispatcher thread, false if they should be done in the local thread.

getComponent

public Component getComponent()
Returns the component that should be drawn.

Returns:
the component.

setComponent

public void setComponent(Component component)
Defines the component that should be drawn.

Parameters:
component - the component.

getPreferredSize

public Dimension getPreferredSize()
Returns the preferred size of the drawable. If the drawable is aspect ratio aware, these bounds should be used to compute the preferred aspect ratio for this drawable.

This calls Component.getPreferredSize() on the given component.

Returns:
the preferred size.

getSize

public Dimension getSize()
Returns the declared size of the drawable. If the drawable is aspect ratio aware, these bounds should be used to compute the declared aspect ratio for this drawable.

This calls Component.getSize() on the given component.

Returns:
the preferred size.

setPreserveAspectRatio

public void setPreserveAspectRatio(boolean preserveAspectRatio)
Defines whether the layouter should preserve the aspect ratio of the component's preferred size.

Parameters:
preserveAspectRatio - true, if the aspect ratio should be preserved, false otherwise.

isPreserveAspectRatio

public boolean isPreserveAspectRatio()
Returns true, if this drawable will preserve an aspect ratio during the drawing.

Returns:
true, if an aspect ratio is preserved, false otherwise.

draw

public void draw(Graphics2D g2,
                 Rectangle2D area)
Draws the component.

Parameters:
g2 - the graphics device.
area - the area inside which the object should be drawn.