Package org.jfree.chart.block
Class AbstractBlock
- java.lang.Object
-
- org.jfree.chart.block.AbstractBlock
-
- All Implemented Interfaces:
java.io.Serializable,java.lang.Cloneable
- Direct Known Subclasses:
BlockContainer,ColorBlock,EmptyBlock,LabelBlock,LegendGraphic,Title
public class AbstractBlock extends java.lang.Object implements java.lang.Cloneable, java.io.SerializableA convenience class for creating new classes that implement theBlockinterface.- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description private java.awt.geom.Rectangle2DboundsThe current bounds for the block (position of the block in Java2D space).private BlockFrameframeThe frame (or border) for the block.private doubleheightThe natural height of the block (may be overridden if there are constraints in sizing).private java.lang.StringidThe id for the block.private RectangleInsetsmarginThe margin around the outside of the block.private RectangleInsetspaddingThe padding between the block content and the border.private static longserialVersionUIDFor serialization.private doublewidthThe natural width of the block (may be overridden if there are constraints in sizing).
-
Constructor Summary
Constructors Modifier Constructor Description protectedAbstractBlock()Creates a new block.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Size2Darrange(java.awt.Graphics2D g2)Arranges the contents of the block, with no constraints, and returns the block size.Size2Darrange(java.awt.Graphics2D g2, RectangleConstraint constraint)Arranges the contents of the block, within the given constraints, and returns the block size.protected doublecalculateTotalHeight(double contentHeight)Adds the margin, border and padding to the specified content height.protected doublecalculateTotalWidth(double contentWidth)Adds the margin, border and padding to the specified content width.booleancanEqual(java.lang.Object other)Ensures symmetry between super/subclass implementations of equals.java.lang.Objectclone()Returns a clone of this block.protected voiddrawBorder(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D area)Draws the border around the perimeter of the specified area.booleanequals(java.lang.Object obj)Tests this block for equality with an arbitrary object.java.awt.geom.Rectangle2DgetBounds()Returns the current bounds of the block.doublegetContentXOffset()Returns the x-offset for the content within the block.doublegetContentYOffset()Returns the y-offset for the content within the block.BlockFramegetFrame()Returns the current frame (border).doublegetHeight()Returns the natural height of the block, if this is known in advance.java.lang.StringgetID()Returns the id.RectangleInsetsgetMargin()Returns the margin.RectangleInsetsgetPadding()Returns the padding.doublegetWidth()Returns the natural width of the block, if this is known in advance.inthashCode()private voidreadObject(java.io.ObjectInputStream stream)Provides serialization support.voidsetBorder(double top, double left, double bottom, double right)Sets a black border with the specified line widths.voidsetBounds(java.awt.geom.Rectangle2D bounds)Sets the bounds of the block.voidsetFrame(BlockFrame frame)Sets the frame (or border).voidsetHeight(double height)Sets the natural width of the block, if this is known in advance.voidsetID(java.lang.String id)Sets the id for the block.voidsetMargin(double top, double left, double bottom, double right)Sets the margin.voidsetMargin(RectangleInsets margin)Sets the margin (useRectangleInsets.ZERO_INSETSfor no padding).voidsetPadding(double top, double left, double bottom, double right)Sets the padding.voidsetPadding(RectangleInsets padding)Sets the padding (useRectangleInsets.ZERO_INSETSfor no padding).voidsetWidth(double width)Sets the natural width of the block, if this is known in advance.protected RectangleConstrainttoContentConstraint(RectangleConstraint c)Returns a constraint for the content of this block that will result in the bounds of the block matching the specified constraint.protected java.awt.geom.Rectangle2DtrimBorder(java.awt.geom.Rectangle2D area)Reduces the specified area by the amount of space consumed by the border.protected java.awt.geom.Rectangle2DtrimMargin(java.awt.geom.Rectangle2D area)Reduces the specified area by the amount of space consumed by the margin.protected java.awt.geom.Rectangle2DtrimPadding(java.awt.geom.Rectangle2D area)Reduces the specified area by the amount of space consumed by the padding.protected doubletrimToContentHeight(double fixedHeight)Calculate the height available for content after subtracting the margin, border and padding space from the specified fixed height.private RangetrimToContentHeight(Range r)protected doubletrimToContentWidth(double fixedWidth)Calculate the width available for content after subtracting the margin, border and padding space from the specified fixed width.private RangetrimToContentWidth(Range r)private voidwriteObject(java.io.ObjectOutputStream stream)Provides serialization support.
-
-
-
Field Detail
-
serialVersionUID
private static final long serialVersionUID
For serialization.- See Also:
- Constant Field Values
-
id
private java.lang.String id
The id for the block.
-
margin
private RectangleInsets margin
The margin around the outside of the block.
-
frame
private BlockFrame frame
The frame (or border) for the block.
-
padding
private RectangleInsets padding
The padding between the block content and the border.
-
width
private double width
The natural width of the block (may be overridden if there are constraints in sizing).
-
height
private double height
The natural height of the block (may be overridden if there are constraints in sizing).
-
bounds
private transient java.awt.geom.Rectangle2D bounds
The current bounds for the block (position of the block in Java2D space).
-
-
Method Detail
-
getID
public java.lang.String getID()
Returns the id.- Returns:
- The id (possibly
null). - See Also:
setID(String)
-
setID
public void setID(java.lang.String id)
Sets the id for the block.- Parameters:
id- the id (nullpermitted).- See Also:
getID()
-
getWidth
public double getWidth()
Returns the natural width of the block, if this is known in advance. The actual width of the block may be overridden if layout constraints make this necessary.- Returns:
- The width.
- See Also:
setWidth(double)
-
setWidth
public void setWidth(double width)
Sets the natural width of the block, if this is known in advance.- Parameters:
width- the width (in Java2D units)- See Also:
getWidth()
-
getHeight
public double getHeight()
Returns the natural height of the block, if this is known in advance. The actual height of the block may be overridden if layout constraints make this necessary.- Returns:
- The height.
- See Also:
setHeight(double)
-
setHeight
public void setHeight(double height)
Sets the natural width of the block, if this is known in advance.- Parameters:
height- the width (in Java2D units)- See Also:
getHeight()
-
getMargin
public RectangleInsets getMargin()
Returns the margin.- Returns:
- The margin (never
null). - See Also:
getMargin()
-
setMargin
public void setMargin(RectangleInsets margin)
Sets the margin (useRectangleInsets.ZERO_INSETSfor no padding).- Parameters:
margin- the margin (nullnot permitted).- See Also:
getMargin()
-
setMargin
public void setMargin(double top, double left, double bottom, double right)Sets the margin.- Parameters:
top- the top margin.left- the left margin.bottom- the bottom margin.right- the right margin.- See Also:
getMargin()
-
setBorder
public void setBorder(double top, double left, double bottom, double right)Sets a black border with the specified line widths.- Parameters:
top- the top border line width.left- the left border line width.bottom- the bottom border line width.right- the right border line width.
-
getFrame
public BlockFrame getFrame()
Returns the current frame (border).- Returns:
- The frame.
- See Also:
setFrame(BlockFrame)
-
setFrame
public void setFrame(BlockFrame frame)
Sets the frame (or border).- Parameters:
frame- the frame (nullnot permitted).- See Also:
getFrame()
-
getPadding
public RectangleInsets getPadding()
Returns the padding.- Returns:
- The padding (never
null). - See Also:
setPadding(RectangleInsets)
-
setPadding
public void setPadding(RectangleInsets padding)
Sets the padding (useRectangleInsets.ZERO_INSETSfor no padding).- Parameters:
padding- the padding (nullnot permitted).- See Also:
getPadding()
-
setPadding
public void setPadding(double top, double left, double bottom, double right)Sets the padding.- Parameters:
top- the top padding.left- the left padding.bottom- the bottom padding.right- the right padding.
-
getContentXOffset
public double getContentXOffset()
Returns the x-offset for the content within the block.- Returns:
- The x-offset.
- See Also:
getContentYOffset()
-
getContentYOffset
public double getContentYOffset()
Returns the y-offset for the content within the block.- Returns:
- The y-offset.
- See Also:
getContentXOffset()
-
arrange
public Size2D arrange(java.awt.Graphics2D g2)
Arranges the contents of the block, with no constraints, and returns the block size.- Parameters:
g2- the graphics device.- Returns:
- The block size (in Java2D units, never
null).
-
arrange
public Size2D arrange(java.awt.Graphics2D g2, RectangleConstraint constraint)
Arranges the contents of the block, within the given constraints, and returns the block size.- Parameters:
g2- the graphics device.constraint- the constraint (nullnot permitted).- Returns:
- The block size (in Java2D units, never
null).
-
getBounds
public java.awt.geom.Rectangle2D getBounds()
Returns the current bounds of the block.- Returns:
- The bounds.
- See Also:
setBounds(Rectangle2D)
-
setBounds
public void setBounds(java.awt.geom.Rectangle2D bounds)
Sets the bounds of the block.- Parameters:
bounds- the bounds (nullnot permitted).- See Also:
getBounds()
-
trimToContentWidth
protected double trimToContentWidth(double fixedWidth)
Calculate the width available for content after subtracting the margin, border and padding space from the specified fixed width.- Parameters:
fixedWidth- the fixed width.- Returns:
- The available space.
- See Also:
trimToContentHeight(double)
-
trimToContentHeight
protected double trimToContentHeight(double fixedHeight)
Calculate the height available for content after subtracting the margin, border and padding space from the specified fixed height.- Parameters:
fixedHeight- the fixed height.- Returns:
- The available space.
- See Also:
trimToContentWidth(double)
-
toContentConstraint
protected RectangleConstraint toContentConstraint(RectangleConstraint c)
Returns a constraint for the content of this block that will result in the bounds of the block matching the specified constraint.- Parameters:
c- the outer constraint (nullnot permitted).- Returns:
- The content constraint.
-
calculateTotalWidth
protected double calculateTotalWidth(double contentWidth)
Adds the margin, border and padding to the specified content width.- Parameters:
contentWidth- the content width.- Returns:
- The adjusted width.
-
calculateTotalHeight
protected double calculateTotalHeight(double contentHeight)
Adds the margin, border and padding to the specified content height.- Parameters:
contentHeight- the content height.- Returns:
- The adjusted height.
-
trimMargin
protected java.awt.geom.Rectangle2D trimMargin(java.awt.geom.Rectangle2D area)
Reduces the specified area by the amount of space consumed by the margin.- Parameters:
area- the area (nullnot permitted).- Returns:
- The trimmed area.
-
trimBorder
protected java.awt.geom.Rectangle2D trimBorder(java.awt.geom.Rectangle2D area)
Reduces the specified area by the amount of space consumed by the border.- Parameters:
area- the area (nullnot permitted).- Returns:
- The trimmed area.
-
trimPadding
protected java.awt.geom.Rectangle2D trimPadding(java.awt.geom.Rectangle2D area)
Reduces the specified area by the amount of space consumed by the padding.- Parameters:
area- the area (nullnot permitted).- Returns:
- The trimmed area.
-
drawBorder
protected void drawBorder(java.awt.Graphics2D g2, java.awt.geom.Rectangle2D area)Draws the border around the perimeter of the specified area.- Parameters:
g2- the graphics device.area- the area.
-
equals
public boolean equals(java.lang.Object obj)
Tests this block for equality with an arbitrary object.- Overrides:
equalsin classjava.lang.Object- Parameters:
obj- the object (nullpermitted).- Returns:
- A boolean.
-
canEqual
public boolean canEqual(java.lang.Object other)
Ensures symmetry between super/subclass implementations of equals. For more detail, see http://jqno.nl/equalsverifier/manual/inheritance.- Parameters:
other- Object- Returns:
- true ONLY if the parameter is THIS class type
-
hashCode
public int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
clone
public java.lang.Object clone() throws java.lang.CloneNotSupportedExceptionReturns a clone of this block.- Overrides:
clonein classjava.lang.Object- Returns:
- A clone.
- Throws:
java.lang.CloneNotSupportedException- if there is a problem creating the clone.
-
writeObject
private void writeObject(java.io.ObjectOutputStream stream) throws java.io.IOExceptionProvides serialization support.- Parameters:
stream- the output stream.- Throws:
java.io.IOException- if there is an I/O error.
-
readObject
private void readObject(java.io.ObjectInputStream stream) throws java.io.IOException, java.lang.ClassNotFoundExceptionProvides serialization support.- Parameters:
stream- the input stream.- Throws:
java.io.IOException- if there is an I/O error.java.lang.ClassNotFoundException- if there is a classpath problem.
-
-