org.jfree.chart.plot

Class PieLabelDistributor


public class PieLabelDistributor
extends java.lang.Object

This class distributes the section labels for one side of a pie chart so that they do not overlap.

Constructor Summary

PieLabelDistributor(int labelCount)
Creates a new distributor.

Method Summary

void
addPieLabelRecord(PieLabelRecord record)
Adds a label record.
protected void
adjustDownwards(double minY, double height)
Any labels that are overlapping are moved down in an attempt to eliminate the overlaps.
protected void
adjustInwards()
Adjusts the y-coordinate for the labels in towards the center in an attempt to fix overlapping.
protected void
adjustUpwards(double minY, double height)
Any labels that are overlapping are moved up in an attempt to eliminate the overlaps.
void
distributeLabels(double minY, double height)
Distributes the labels.
int
getItemCount()
Returns the number of items in the list.
PieLabelRecord
getPieLabelRecord(int index)
Returns a label record from the list.
void
sort()
Sorts the label records into ascending order by y-value.
protected void
spreadEvenly(double minY, double height)
Labels are spaced evenly in the available space in an attempt to eliminate the overlaps.
String
toString()
Returns a string containing a description of the object for debugging purposes.

Constructor Details

PieLabelDistributor

public PieLabelDistributor(int labelCount)
Creates a new distributor.
Parameters:
labelCount - the number of labels.

Method Details

addPieLabelRecord

public void addPieLabelRecord(PieLabelRecord record)
Adds a label record.
Parameters:
record - the label record.

adjustDownwards

protected void adjustDownwards(double minY,
                               double height)
Any labels that are overlapping are moved down in an attempt to eliminate the overlaps.
Parameters:
minY - the minimum y value (in Java2D coordinate space).
height - the height available for all labels.

adjustInwards

protected void adjustInwards()
Adjusts the y-coordinate for the labels in towards the center in an attempt to fix overlapping.

adjustUpwards

protected void adjustUpwards(double minY,
                             double height)
Any labels that are overlapping are moved up in an attempt to eliminate the overlaps.
Parameters:
minY - the minimum y value (in Java2D coordinate space).
height - the height available for all labels.

distributeLabels

public void distributeLabels(double minY,
                             double height)
Distributes the labels.
Parameters:
minY - the minimum y-coordinate in Java2D-space.
height - the height.

getItemCount

public int getItemCount()
Returns the number of items in the list.
Returns:
The item count.

getPieLabelRecord

public PieLabelRecord getPieLabelRecord(int index)
Returns a label record from the list.
Parameters:
index - the index.
Returns:
The label record.

sort

public void sort()
Sorts the label records into ascending order by y-value.

spreadEvenly

protected void spreadEvenly(double minY,
                            double height)
Labels are spaced evenly in the available space in an attempt to eliminate the overlaps.
Parameters:
minY - the minimum y value (in Java2D coordinate space).
height - the height available for all labels.

toString

public String toString()
Returns a string containing a description of the object for debugging purposes.
Returns:
A string.