📄 abstractcategoryitemrenderer.java
字号:
Point2D anchorPoint = calculateLabelAnchorPoint(labelAnchor, x, y, orientation);
RefineryUtilities.drawRotatedString(label, g2,
(float) anchorPoint.getX(),
(float) anchorPoint.getY(),
textAnchor, rotationAnchor, angle);
}
}
/**
* Calculates the item label anchor point.
*
* @param anchor the anchor.
* @param x the x coordinate.
* @param y the y coordinate.
* @param orientation the plot orientation.
*
* @return The anchor point.
*/
private Point2D calculateLabelAnchorPoint(ItemLabelAnchor anchor,
double x, double y, PlotOrientation orientation) {
Point2D result = null;
if (orientation == PlotOrientation.HORIZONTAL) {
result = getHorizontalLabelAnchorPoint(anchor, y, x);
}
else if (orientation == PlotOrientation.VERTICAL) {
result = getVerticalLabelAnchorPoint(anchor, x, y);
}
return result;
}
/**
* Returns the horizontal label anchor point.
*
* @param anchor the anchor.
* @param x the x value.
* @param y the y value.
*
* @return The anchor point.
*/
private Point2D getHorizontalLabelAnchorPoint(ItemLabelAnchor anchor, double x, double y) {
Point2D result = null;
if (anchor == ItemLabelAnchor.CENTER) {
result = new Point2D.Double(x, y);
}
else if (anchor == ItemLabelAnchor.INSIDE1) {
result = new Point2D.Double(x, y);
}
else if (anchor == ItemLabelAnchor.INSIDE2) {
result = new Point2D.Double(x, y);
}
else if (anchor == ItemLabelAnchor.INSIDE3) {
result = new Point2D.Double(x, y + this.itemLabelAnchorOffset);
}
else if (anchor == ItemLabelAnchor.INSIDE4) {
result = new Point2D.Double(x, y);
}
else if (anchor == ItemLabelAnchor.INSIDE5) {
result = new Point2D.Double(x, y);
}
else if (anchor == ItemLabelAnchor.INSIDE6) {
result = new Point2D.Double(x - this.itemLabelAnchorOffset, y);
}
else if (anchor == ItemLabelAnchor.INSIDE7) {
result = new Point2D.Double(x, y);
}
else if (anchor == ItemLabelAnchor.INSIDE8) {
result = new Point2D.Double(x, y);
}
else if (anchor == ItemLabelAnchor.INSIDE9) {
result = new Point2D.Double(x, y - this.itemLabelAnchorOffset);
}
else if (anchor == ItemLabelAnchor.INSIDE10) {
result = new Point2D.Double(x, y);
}
else if (anchor == ItemLabelAnchor.INSIDE11) {
result = new Point2D.Double(x, y);
}
else if (anchor == ItemLabelAnchor.INSIDE12) {
result = new Point2D.Double(x + this.itemLabelAnchorOffset, y);
}
else if (anchor == ItemLabelAnchor.OUTSIDE1) {
result = new Point2D.Double(x, y);
}
else if (anchor == ItemLabelAnchor.OUTSIDE2) {
result = new Point2D.Double(x, y);
}
else if (anchor == ItemLabelAnchor.OUTSIDE3) {
result = new Point2D.Double(x, y + 2.0 * this.itemLabelAnchorOffset);
}
else if (anchor == ItemLabelAnchor.OUTSIDE4) {
result = new Point2D.Double(x, y);
}
else if (anchor == ItemLabelAnchor.OUTSIDE5) {
result = new Point2D.Double(x, y);
}
else if (anchor == ItemLabelAnchor.OUTSIDE6) {
result = new Point2D.Double(x - 2.0 * this.itemLabelAnchorOffset, y);
}
else if (anchor == ItemLabelAnchor.OUTSIDE7) {
result = new Point2D.Double(x, y);
}
else if (anchor == ItemLabelAnchor.OUTSIDE8) {
result = new Point2D.Double(x, y);
}
else if (anchor == ItemLabelAnchor.OUTSIDE9) {
result = new Point2D.Double(x, y - 2.0 * this.itemLabelAnchorOffset);
}
else if (anchor == ItemLabelAnchor.OUTSIDE10) {
result = new Point2D.Double(x, y);
}
else if (anchor == ItemLabelAnchor.OUTSIDE11) {
result = new Point2D.Double(x, y);
}
else if (anchor == ItemLabelAnchor.OUTSIDE12) {
result = new Point2D.Double(x + 2.0 * this.itemLabelAnchorOffset, y);
}
return result;
}
/**
* Gets the label anchor point.
*
* @param anchor the label anchor.
* @param x the data x coordinate.
* @param y the data y coordinate.
*
* @return The anchor point.
*/
private Point2D getVerticalLabelAnchorPoint(ItemLabelAnchor anchor, double x, double y) {
Point2D result = null;
if (anchor == ItemLabelAnchor.CENTER) {
result = new Point2D.Double(x, y);
}
else if (anchor == ItemLabelAnchor.INSIDE1) {
result = new Point2D.Double(x, y);
}
else if (anchor == ItemLabelAnchor.INSIDE2) {
result = new Point2D.Double(x, y);
}
else if (anchor == ItemLabelAnchor.INSIDE3) {
result = new Point2D.Double(x + this.itemLabelAnchorOffset, y);
}
else if (anchor == ItemLabelAnchor.INSIDE4) {
result = new Point2D.Double(x, y);
}
else if (anchor == ItemLabelAnchor.INSIDE5) {
result = new Point2D.Double(x, y);
}
else if (anchor == ItemLabelAnchor.INSIDE6) {
result = new Point2D.Double(x, y + this.itemLabelAnchorOffset);
}
else if (anchor == ItemLabelAnchor.INSIDE7) {
result = new Point2D.Double(x, y);
}
else if (anchor == ItemLabelAnchor.INSIDE8) {
result = new Point2D.Double(x, y);
}
else if (anchor == ItemLabelAnchor.INSIDE9) {
result = new Point2D.Double(x - this.itemLabelAnchorOffset, y);
}
else if (anchor == ItemLabelAnchor.INSIDE10) {
result = new Point2D.Double(x, y);
}
else if (anchor == ItemLabelAnchor.INSIDE11) {
result = new Point2D.Double(x, y);
}
else if (anchor == ItemLabelAnchor.INSIDE12) {
result = new Point2D.Double(x, y - this.itemLabelAnchorOffset);
}
else if (anchor == ItemLabelAnchor.OUTSIDE1) {
result = new Point2D.Double(x, y);
}
else if (anchor == ItemLabelAnchor.OUTSIDE2) {
result = new Point2D.Double(x, y);
}
else if (anchor == ItemLabelAnchor.OUTSIDE3) {
result = new Point2D.Double(x + 2.0 * this.itemLabelAnchorOffset, y);
}
else if (anchor == ItemLabelAnchor.OUTSIDE4) {
result = new Point2D.Double(x, y);
}
else if (anchor == ItemLabelAnchor.OUTSIDE5) {
result = new Point2D.Double(x, y);
}
else if (anchor == ItemLabelAnchor.OUTSIDE6) {
result = new Point2D.Double(x, y + 2.0 * this.itemLabelAnchorOffset);
}
else if (anchor == ItemLabelAnchor.OUTSIDE7) {
result = new Point2D.Double(x, y);
}
else if (anchor == ItemLabelAnchor.OUTSIDE8) {
result = new Point2D.Double(x, y);
}
else if (anchor == ItemLabelAnchor.OUTSIDE9) {
result = new Point2D.Double(x - 2.0 * this.itemLabelAnchorOffset, y);
}
else if (anchor == ItemLabelAnchor.OUTSIDE10) {
result = new Point2D.Double(x, y);
}
else if (anchor == ItemLabelAnchor.OUTSIDE11) {
result = new Point2D.Double(x, y);
}
else if (anchor == ItemLabelAnchor.OUTSIDE12) {
result = new Point2D.Double(x, y - 2.0 * this.itemLabelAnchorOffset);
}
return result;
}
/**
* Returns an independent copy of the renderer.
* <p>
* The <code>plot</code> reference is shallow copied.
*
* @return A clone.
*
* @throws CloneNotSupportedException should not happen.
*/
public Object clone() throws CloneNotSupportedException {
AbstractCategoryItemRenderer clone = (AbstractCategoryItemRenderer) super.clone();
if (this.itemLabelGenerator != null) {
clone.itemLabelGenerator = (CategoryItemLabelGenerator) this.itemLabelGenerator.clone();
}
if (this.itemLabelGeneratorList != null) {
clone.itemLabelGeneratorList = (ObjectList) this.itemLabelGeneratorList.clone();
}
if (this.baseItemLabelGenerator != null) {
clone.baseItemLabelGenerator
= (CategoryItemLabelGenerator) this.baseItemLabelGenerator.clone();
}
if (this.itemURLGenerator != null) {
clone.itemURLGenerator = (CategoryURLGenerator) this.itemURLGenerator.clone();
}
if (this.itemURLGeneratorList != null) {
clone.itemURLGeneratorList = (ObjectList) this.itemURLGeneratorList.clone();
}
if (this.baseItemURLGenerator != null) {
clone.baseItemURLGenerator
= (CategoryURLGenerator) this.baseItemURLGenerator.clone();
}
return clone;
}
/**
* Returns a domain axis for a plot.
*
* @param plot the plot.
* @param index the axis index (<code>null</code> for the primary axis).
*
* @return A domain axis.
*/
protected CategoryAxis getDomainAxis(CategoryPlot plot, Integer index) {
CategoryAxis result = null;
if (index == null) {
result = plot.getDomainAxis();
}
else {
result = plot.getSecondaryDomainAxis(index.intValue());
if (result == null) {
result = plot.getDomainAxis();
}
}
return result;
}
/**
* Returns a range axis for a plot.
*
* @param plot the plot.
* @param index the axis index (<code>null</code> for the primary axis).
*
* @return A range axis.
*/
protected ValueAxis getRangeAxis(CategoryPlot plot, Integer index) {
ValueAxis result = null;
if (index == null) {
result = plot.getRangeAxis();
}
else {
result = plot.getSecondaryRangeAxis(index.intValue());
if (result == null) {
result = plot.getRangeAxis();
}
}
return result;
}
/**
* Returns a dataset for a plot.
*
* @param plot the plot.
* @param index the dataset index (<code>null</code> for the primary dataset).
*
* @return A dataset.
*/
protected CategoryDataset getDataset(CategoryPlot plot, Integer index) {
CategoryDataset result = null;
if (index == null) {
result = plot.getDataset();
}
else {
result = plot.getSecondaryDataset(index.intValue());
}
return result;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -