📄 abstractcategoryitemrenderer.java
字号:
if (this.baseItemLabelGenerator != null) {
result = result && this.baseItemLabelGenerator.equals(r.getBaseItemLabelGenerator());
}
else {
result = result && (r.getBaseItemLabelGenerator() == null);
}
if (this.itemURLGenerator != null) {
result = result && this.itemURLGenerator.equals(r.itemURLGenerator);
}
else {
result = result && (r.itemURLGenerator == null);
}
}
return result;
}
/**
* Returns the drawing supplier from the plot.
*
* @return The drawing supplier (possibly <code>null</code>).
*/
public DrawingSupplier getDrawingSupplier() {
DrawingSupplier result = null;
CategoryPlot cp = getPlot();
if (cp != null) {
result = cp.getDrawingSupplier();
}
return result;
}
/**
* Draws an item label.
*
* @param g2 the graphics device.
* @param orientation the orientation.
* @param dataset the dataset.
* @param row the row.
* @param column the column.
* @param x the x value.
* @param y the y value.
* @param flipAnchors flip anchors for negative values?
*/
protected void drawItemLabel(Graphics2D g2, PlotOrientation orientation,
CategoryDataset dataset, int row, int column,
double x, double y, boolean flipAnchors) {
CategoryItemLabelGenerator generator = getItemLabelGenerator(row, column);
if (generator != null) {
Font labelFont = getItemLabelFont(row, column);
g2.setFont(labelFont);
Paint paint = getItemLabelPaint(row, column);
g2.setPaint(paint);
String label = generator.generateItemLabel(dataset, row, column);
// get the label anchor..
ItemLabelAnchor labelAnchor = getItemLabelAnchor(row, column);
TextAnchor textAnchor = getItemLabelTextAnchor(row, column);
TextAnchor rotationAnchor = getItemLabelRotationAnchor(row, column);
if (flipAnchors) {
labelAnchor = ItemLabelAnchor.getVerticalOpposite(labelAnchor);
textAnchor = TextAnchor.getVerticalOpposite(textAnchor);
rotationAnchor = TextAnchor.getVerticalOpposite(rotationAnchor);
}
double angle = getItemLabelAngle(row, column).doubleValue();
// work out the label anchor point...
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;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -