Package org.jCharts.chartText
Class TextTagGroup
- java.lang.Object
-
- org.jCharts.chartText.TextTagGroup
-
- All Implemented Interfaces:
java.io.Serializable,HTMLTestable
- Direct Known Subclasses:
NumericTagGroup
public class TextTagGroup extends java.lang.Object implements HTMLTestable, java.io.Serializable
- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description private ChartFontchartFontprivate java.awt.font.FontRenderContextfontRenderContextprivate floattallestLabelprivate java.util.ArrayListtextTagsprivate floattotalLabelWidthsprivate floatwidestLabel
-
Constructor Summary
Constructors Constructor Description TextTagGroup(ChartFont chartFont, java.awt.font.FontRenderContext fontRenderContext)Constructor
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddLabel(java.lang.String label)floatgetTallestLabel()TextTaggetTextTag(int index)floatgetTotalLabelWidths()floatgetWidestLabel()Calculates the width and height needed by the passed String when rendered // * @param iDataSeries / * @param font // * @param fontRenderContext public void processLabels( IDataSeries iDataSeries) { //LOOP for( int i = 0; i < iDataSeries.getNumberOfXAxisLabels(); i++ ) { this.axisLabelProcessor.processLabel( iDataSeries.getXAxisLabel( i ), axisLabelFont, fontRenderContext ); } TextLayout textLayout = new TextLayout( label, font, fontRenderContext ); //---WIDTH this.labelWidths[ counter ] = textLayout.getAdvance(); this.widestLabel = Math.max( this.labelWidths[ counter ], this.widestLabel ); this.totalLabelWidths += this.labelWidths[ counter ]; //---HEIGHT this.labelHeights[ counter ] = textLayout.getAscent() + textLayout.getDescent(); this.tallestLabel = Math.max( this.labelHeights[ counter ], this.tallestLabel ); //---need this to offset font rendering, as rendering is at the baseline not bottom or top, this.fontDescent = textLayout.getDescent(); this.counter++; } /******************************************************************************************voidrender(int index, java.awt.Graphics2D g2d, float x, float y)Renders the text, at the position - renders from the top (instead of baseline)voidreverse()Horizontal plots render the data from top down so rendering alogorithm needs to get the labels in reverse order to make things easier.intsize()Returns the number of labelsvoidtoHTML(HTMLGenerator htmlGenerator)Renders all the text in this group.
-
-
-
Field Detail
-
widestLabel
private float widestLabel
-
tallestLabel
private float tallestLabel
-
totalLabelWidths
private float totalLabelWidths
-
textTags
private java.util.ArrayList textTags
-
chartFont
private ChartFont chartFont
-
fontRenderContext
private java.awt.font.FontRenderContext fontRenderContext
-
-
Constructor Detail
-
TextTagGroup
public TextTagGroup(ChartFont chartFont, java.awt.font.FontRenderContext fontRenderContext)
Constructor- Parameters:
chartFont-fontRenderContext-
-
-
Method Detail
-
addLabel
public void addLabel(java.lang.String label)
- Parameters:
label-
-
size
public int size()
Returns the number of labels- Returns:
- int
-
reverse
public void reverse()
Horizontal plots render the data from top down so rendering alogorithm needs to get the labels in reverse order to make things easier.
-
getWidestLabel
public float getWidestLabel()
Calculates the width and height needed by the passed String when rendered // * @param iDataSeries / * @param font // * @param fontRenderContext public void processLabels( IDataSeries iDataSeries) { //LOOP for( int i = 0; i < iDataSeries.getNumberOfXAxisLabels(); i++ ) { this.axisLabelProcessor.processLabel( iDataSeries.getXAxisLabel( i ), axisLabelFont, fontRenderContext ); } TextLayout textLayout = new TextLayout( label, font, fontRenderContext ); //---WIDTH this.labelWidths[ counter ] = textLayout.getAdvance(); this.widestLabel = Math.max( this.labelWidths[ counter ], this.widestLabel ); this.totalLabelWidths += this.labelWidths[ counter ]; //---HEIGHT this.labelHeights[ counter ] = textLayout.getAscent() + textLayout.getDescent(); this.tallestLabel = Math.max( this.labelHeights[ counter ], this.tallestLabel ); //---need this to offset font rendering, as rendering is at the baseline not bottom or top, this.fontDescent = textLayout.getDescent(); this.counter++; } /******************************************************************************************
-
getTallestLabel
public float getTallestLabel()
-
getTotalLabelWidths
public float getTotalLabelWidths()
-
getTextTag
public TextTag getTextTag(int index)
- Parameters:
index-- Returns:
- TextTag
-
render
public void render(int index, java.awt.Graphics2D g2d, float x, float y)Renders the text, at the position - renders from the top (instead of baseline)- Parameters:
index-g2d-x-y-
-
toHTML
public void toHTML(HTMLGenerator htmlGenerator)
Renders all the text in this group. public void renderTag( int index, Graphics2D g2d ) { TextTag tag; //Paint p = this.fontColor; g2d.setPaint( this. ); //g2d.setFont( (this.derivedFont == null) ? baseFont : derivedFont ); for( int i = 0; i < group.size(); i++ ) { tag = ( TextTag ) group.get( i ); tag.render( g2d, p ); // Text tag sets the Paint every time if not null // So, we might save a small bit of time by changing // this to null after first time. p = null; } } /********************************************************************************************* Enables the testing routines to display the contents of this Object.- Specified by:
toHTMLin interfaceHTMLTestable- Parameters:
htmlGenerator-
-
-