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 ChartFontprivate FontRenderContextprivate floatprivate ArrayListprivate floatprivate float -
Constructor Summary
ConstructorsConstructorDescriptionTextTagGroup(ChartFont chartFont, FontRenderContext fontRenderContext) Constructor -
Method Summary
Modifier and TypeMethodDescriptionvoidfloatgetTextTag(int index) floatfloatCalculates 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, 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 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:
toHTMLin interfaceHTMLTestable- Parameters:
htmlGenerator-
-