Package org.jCharts.chartText
Class TextTagGroup
java.lang.Object
org.jCharts.chartText.TextTagGroup
- All Implemented Interfaces:
Serializable
,HTMLTestable
- Direct Known Subclasses:
NumericTagGroup
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate ChartFont
private FontRenderContext
private float
private ArrayList
private float
private float
-
Constructor Summary
ConstructorsConstructorDescriptionTextTagGroup
(ChartFont chartFont, FontRenderContext fontRenderContext) Constructor -
Method Summary
Modifier and TypeMethodDescriptionvoid
float
getTextTag
(int index) float
float
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++; } /******************************************************************************************void
render
(int index, Graphics2D g2d, float x, float y) Renders the text, at the position - renders from the top (instead of baseline)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.int
size()
Returns the number of labelsvoid
toHTML
(HTMLGenerator htmlGenerator) Renders all the text in this group.
-
Field Details
-
widestLabel
private float widestLabel -
tallestLabel
private float tallestLabel -
totalLabelWidths
private float totalLabelWidths -
textTags
-
chartFont
-
fontRenderContext
-
-
Constructor Details
-
TextTagGroup
Constructor- Parameters:
chartFont
-fontRenderContext
-
-
-
Method Details
-
addLabel
- 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
- Parameters:
index
-- Returns:
- TextTag
-
render
Renders the text, at the position - renders from the top (instead of baseline)- Parameters:
index
-g2d
-x
-y
-
-
toHTML
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:
toHTML
in interfaceHTMLTestable
- Parameters:
htmlGenerator
-
-