Java Code Examples for org.jfree.chart.text.TextUtilities#createTextBlock()

The following examples show how to use org.jfree.chart.text.TextUtilities#createTextBlock() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: Plot.java    From astor with GNU General Public License v2.0 6 votes vote down vote up
/**
 * Draws a message to state that there is no data to plot.
 *
 * @param g2  the graphics device.
 * @param area  the area within which the plot should be drawn.
 */
protected void drawNoDataMessage(Graphics2D g2, Rectangle2D area) {
    Shape savedClip = g2.getClip();
    g2.clip(area);
    String message = this.noDataMessage;
    if (message != null) {
        g2.setFont(this.noDataMessageFont);
        g2.setPaint(this.noDataMessagePaint);
        TextBlock block = TextUtilities.createTextBlock(
                this.noDataMessage, this.noDataMessageFont,
                this.noDataMessagePaint, 0.9f * (float) area.getWidth(),
                new G2TextMeasurer(g2));
        block.draw(g2, (float) area.getCenterX(),
                (float) area.getCenterY(), TextBlockAnchor.CENTER);
    }
    g2.setClip(savedClip);
}
 
Example 2
Source File: Plot.java    From astor with GNU General Public License v2.0 6 votes vote down vote up
/**
 * Draws a message to state that there is no data to plot.
 *
 * @param g2  the graphics device.
 * @param area  the area within which the plot should be drawn.
 */
protected void drawNoDataMessage(Graphics2D g2, Rectangle2D area) {
    Shape savedClip = g2.getClip();
    g2.clip(area);
    String message = this.noDataMessage;
    if (message != null) {
        g2.setFont(this.noDataMessageFont);
        g2.setPaint(this.noDataMessagePaint);
        TextBlock block = TextUtilities.createTextBlock(
                this.noDataMessage, this.noDataMessageFont, 
                this.noDataMessagePaint, 0.9f * (float) area.getWidth(), 
                new G2TextMeasurer(g2));
        block.draw(g2, (float) area.getCenterX(), (float) area.getCenterY(), 
                TextBlockAnchor.CENTER);
    }
    g2.setClip(savedClip);
}
 
Example 3
Source File: Chart_15_PiePlot_s.java    From coming with MIT License 5 votes vote down vote up
/**
 * Draws the left labels.
 * 
 * @param leftKeys  a collection of keys and angles (to the middle of the
 *         section, in degrees) for the sections on the left side of the 
 *         plot.
 * @param g2  the graphics device.
 * @param plotArea  the plot area.
 * @param linkArea  the link area.
 * @param maxLabelWidth  the maximum label width.
 * @param state  the state.
 */
protected void drawLeftLabels(KeyedValues leftKeys, Graphics2D g2, 
                              Rectangle2D plotArea, Rectangle2D linkArea, 
                              float maxLabelWidth, PiePlotState state) {
    
    this.labelDistributor.clear();
    double lGap = plotArea.getWidth() * this.labelGap;
    double verticalLinkRadius = state.getLinkArea().getHeight() / 2.0;
    for (int i = 0; i < leftKeys.getItemCount(); i++) {   
        String label = this.labelGenerator.generateSectionLabel(
                this.dataset, leftKeys.getKey(i));
        if (label != null) {
            TextBlock block = TextUtilities.createTextBlock(label, 
                    this.labelFont, this.labelPaint, maxLabelWidth, 
                    new G2TextMeasurer(g2));
            TextBox labelBox = new TextBox(block);
            labelBox.setBackgroundPaint(this.labelBackgroundPaint);
            labelBox.setOutlinePaint(this.labelOutlinePaint);
            labelBox.setOutlineStroke(this.labelOutlineStroke);
            labelBox.setShadowPaint(this.labelShadowPaint);
            labelBox.setInteriorGap(this.labelPadding);
            double theta = Math.toRadians(
                    leftKeys.getValue(i).doubleValue());
            double baseY = state.getPieCenterY() - Math.sin(theta) 
                           * verticalLinkRadius;
            double hh = labelBox.getHeight(g2);

            this.labelDistributor.addPieLabelRecord(new PieLabelRecord(
                    leftKeys.getKey(i), theta, baseY, labelBox, hh,
                    lGap / 2.0 + lGap / 2.0 * -Math.cos(theta), 0.9 
                    + getExplodePercent(leftKeys.getKey(i))));
        }
    }
    this.labelDistributor.distributeLabels(plotArea.getMinY(), 
            plotArea.getHeight());
    for (int i = 0; i < this.labelDistributor.getItemCount(); i++) {
        drawLeftLabel(g2, state, 
                this.labelDistributor.getPieLabelRecord(i));
    }
}
 
Example 4
Source File: Chart_15_PiePlot_t.java    From coming with MIT License 5 votes vote down vote up
/**
 * Draws the left labels.
 * 
 * @param leftKeys  a collection of keys and angles (to the middle of the
 *         section, in degrees) for the sections on the left side of the 
 *         plot.
 * @param g2  the graphics device.
 * @param plotArea  the plot area.
 * @param linkArea  the link area.
 * @param maxLabelWidth  the maximum label width.
 * @param state  the state.
 */
protected void drawLeftLabels(KeyedValues leftKeys, Graphics2D g2, 
                              Rectangle2D plotArea, Rectangle2D linkArea, 
                              float maxLabelWidth, PiePlotState state) {
    
    this.labelDistributor.clear();
    double lGap = plotArea.getWidth() * this.labelGap;
    double verticalLinkRadius = state.getLinkArea().getHeight() / 2.0;
    for (int i = 0; i < leftKeys.getItemCount(); i++) {   
        String label = this.labelGenerator.generateSectionLabel(
                this.dataset, leftKeys.getKey(i));
        if (label != null) {
            TextBlock block = TextUtilities.createTextBlock(label, 
                    this.labelFont, this.labelPaint, maxLabelWidth, 
                    new G2TextMeasurer(g2));
            TextBox labelBox = new TextBox(block);
            labelBox.setBackgroundPaint(this.labelBackgroundPaint);
            labelBox.setOutlinePaint(this.labelOutlinePaint);
            labelBox.setOutlineStroke(this.labelOutlineStroke);
            labelBox.setShadowPaint(this.labelShadowPaint);
            labelBox.setInteriorGap(this.labelPadding);
            double theta = Math.toRadians(
                    leftKeys.getValue(i).doubleValue());
            double baseY = state.getPieCenterY() - Math.sin(theta) 
                           * verticalLinkRadius;
            double hh = labelBox.getHeight(g2);

            this.labelDistributor.addPieLabelRecord(new PieLabelRecord(
                    leftKeys.getKey(i), theta, baseY, labelBox, hh,
                    lGap / 2.0 + lGap / 2.0 * -Math.cos(theta), 0.9 
                    + getExplodePercent(leftKeys.getKey(i))));
        }
    }
    this.labelDistributor.distributeLabels(plotArea.getMinY(), 
            plotArea.getHeight());
    for (int i = 0; i < this.labelDistributor.getItemCount(); i++) {
        drawLeftLabel(g2, state, 
                this.labelDistributor.getPieLabelRecord(i));
    }
}
 
Example 5
Source File: LabelBlock.java    From astor with GNU General Public License v2.0 5 votes vote down vote up
/**
 * Creates a new label block.
 *
 * @param text  the text for the label (<code>null</code> not permitted).
 * @param font  the font (<code>null</code> not permitted).
 * @param paint the paint (<code>null</code> not permitted).
 */
public LabelBlock(String text, Font font, Paint paint) {
    this.text = text;
    this.paint = paint;
    this.label = TextUtilities.createTextBlock(text, font, this.paint);
    this.font = font;
    this.toolTipText = null;
    this.urlText = null;
    this.contentAlignmentPoint = TextBlockAnchor.CENTER;
    this.textAnchor = RectangleAnchor.CENTER;
}
 
Example 6
Source File: LabelBlock.java    From astor with GNU General Public License v2.0 5 votes vote down vote up
/**
 * Sets the font and regenerates the label.
 *
 * @param font  the font (<code>null</code> not permitted).
 *
 * @see #getFont()
 */
public void setFont(Font font) {
    if (font == null) {
        throw new IllegalArgumentException("Null 'font' argument.");
    }
    this.font = font;
    this.label = TextUtilities.createTextBlock(this.text, font, this.paint);
}
 
Example 7
Source File: LabelBlock.java    From astor with GNU General Public License v2.0 5 votes vote down vote up
/**
 * Sets the paint and regenerates the label.
 *
 * @param paint  the paint (<code>null</code> not permitted).
 *
 * @see #getPaint()
 */
public void setPaint(Paint paint) {
    if (paint == null) {
        throw new IllegalArgumentException("Null 'paint' argument.");
    }
    this.paint = paint;
    this.label = TextUtilities.createTextBlock(this.text, this.font,
            this.paint);
}
 
Example 8
Source File: LabelBlock.java    From astor with GNU General Public License v2.0 5 votes vote down vote up
/**
 * Creates a new label block.
 *
 * @param text  the text for the label (<code>null</code> not permitted).
 * @param font  the font (<code>null</code> not permitted).
 * @param paint the paint (<code>null</code> not permitted).
 */
public LabelBlock(String text, Font font, Paint paint) {        
    this.text = text;
    this.paint = paint; 
    this.label = TextUtilities.createTextBlock(text, font, this.paint); 
    this.font = font;
    this.toolTipText = null;
    this.urlText = null;
}
 
Example 9
Source File: LabelBlock.java    From astor with GNU General Public License v2.0 5 votes vote down vote up
/**
 * Sets the font and regenerates the label.
 *
 * @param font  the font (<code>null</code> not permitted).
 * 
 * @see #getFont()
 */
public void setFont(Font font) {
    if (font == null) {
        throw new IllegalArgumentException("Null 'font' argument.");
    }
    this.font = font;
    this.label = TextUtilities.createTextBlock(this.text, font, this.paint);
}
 
Example 10
Source File: LabelBlock.java    From astor with GNU General Public License v2.0 5 votes vote down vote up
/**
 * Sets the paint and regenerates the label.
 *
 * @param paint  the paint (<code>null</code> not permitted).
 * 
 * @see #getPaint()
 */
public void setPaint(Paint paint) {
    if (paint == null) {
        throw new IllegalArgumentException("Null 'paint' argument.");
    }
    this.paint = paint;
    this.label = TextUtilities.createTextBlock(this.text, this.font, 
            this.paint);
}
 
Example 11
Source File: Chart_15_PiePlot_s.java    From coming with MIT License 4 votes vote down vote up
/**
 * Draws the right labels.
 * 
 * @param keys  the keys.
 * @param g2  the graphics device.
 * @param plotArea  the plot area.
 * @param linkArea  the link area.
 * @param maxLabelWidth  the maximum label width.
 * @param state  the state.
 */
protected void drawRightLabels(KeyedValues keys, Graphics2D g2, 
                               Rectangle2D plotArea, Rectangle2D linkArea, 
                               float maxLabelWidth, PiePlotState state) {

    // draw the right labels...
    this.labelDistributor.clear();
    double lGap = plotArea.getWidth() * this.labelGap;
    double verticalLinkRadius = state.getLinkArea().getHeight() / 2.0;

    for (int i = 0; i < keys.getItemCount(); i++) {
        String label = this.labelGenerator.generateSectionLabel(
                this.dataset, keys.getKey(i));

        if (label != null) {
            TextBlock block = TextUtilities.createTextBlock(label, 
                    this.labelFont, this.labelPaint, maxLabelWidth, 
                    new G2TextMeasurer(g2));
            TextBox labelBox = new TextBox(block);
            labelBox.setBackgroundPaint(this.labelBackgroundPaint);
            labelBox.setOutlinePaint(this.labelOutlinePaint);
            labelBox.setOutlineStroke(this.labelOutlineStroke);
            labelBox.setShadowPaint(this.labelShadowPaint);
            labelBox.setInteriorGap(this.labelPadding);
            double theta = Math.toRadians(keys.getValue(i).doubleValue());
            double baseY = state.getPieCenterY() 
                          - Math.sin(theta) * verticalLinkRadius;
            double hh = labelBox.getHeight(g2);
            this.labelDistributor.addPieLabelRecord(new PieLabelRecord(
                    keys.getKey(i), theta, baseY, labelBox, hh,
                    lGap / 2.0 + lGap / 2.0 * Math.cos(theta), 
                    0.9 + getExplodePercent(keys.getKey(i))));
        }
    }
    this.labelDistributor.distributeLabels(plotArea.getMinY(), 
            plotArea.getHeight());
    for (int i = 0; i < this.labelDistributor.getItemCount(); i++) {
        drawRightLabel(g2, state, 
                this.labelDistributor.getPieLabelRecord(i));
    }

}
 
Example 12
Source File: Chart_15_PiePlot_t.java    From coming with MIT License 4 votes vote down vote up
/**
 * Draws the right labels.
 * 
 * @param keys  the keys.
 * @param g2  the graphics device.
 * @param plotArea  the plot area.
 * @param linkArea  the link area.
 * @param maxLabelWidth  the maximum label width.
 * @param state  the state.
 */
protected void drawRightLabels(KeyedValues keys, Graphics2D g2, 
                               Rectangle2D plotArea, Rectangle2D linkArea, 
                               float maxLabelWidth, PiePlotState state) {

    // draw the right labels...
    this.labelDistributor.clear();
    double lGap = plotArea.getWidth() * this.labelGap;
    double verticalLinkRadius = state.getLinkArea().getHeight() / 2.0;

    for (int i = 0; i < keys.getItemCount(); i++) {
        String label = this.labelGenerator.generateSectionLabel(
                this.dataset, keys.getKey(i));

        if (label != null) {
            TextBlock block = TextUtilities.createTextBlock(label, 
                    this.labelFont, this.labelPaint, maxLabelWidth, 
                    new G2TextMeasurer(g2));
            TextBox labelBox = new TextBox(block);
            labelBox.setBackgroundPaint(this.labelBackgroundPaint);
            labelBox.setOutlinePaint(this.labelOutlinePaint);
            labelBox.setOutlineStroke(this.labelOutlineStroke);
            labelBox.setShadowPaint(this.labelShadowPaint);
            labelBox.setInteriorGap(this.labelPadding);
            double theta = Math.toRadians(keys.getValue(i).doubleValue());
            double baseY = state.getPieCenterY() 
                          - Math.sin(theta) * verticalLinkRadius;
            double hh = labelBox.getHeight(g2);
            this.labelDistributor.addPieLabelRecord(new PieLabelRecord(
                    keys.getKey(i), theta, baseY, labelBox, hh,
                    lGap / 2.0 + lGap / 2.0 * Math.cos(theta), 
                    0.9 + getExplodePercent(keys.getKey(i))));
        }
    }
    this.labelDistributor.distributeLabels(plotArea.getMinY(), 
            plotArea.getHeight());
    for (int i = 0; i < this.labelDistributor.getItemCount(); i++) {
        drawRightLabel(g2, state, 
                this.labelDistributor.getPieLabelRecord(i));
    }

}
 
Example 13
Source File: CategoryAxis.java    From astor with GNU General Public License v2.0 3 votes vote down vote up
/**
 * Creates a label.
 *
 * @param category  the category.
 * @param width  the available width.
 * @param edge  the edge on which the axis appears.
 * @param g2  the graphics device.
 *
 * @return A label.
 */
protected TextBlock createLabel(Comparable category, float width,
                                RectangleEdge edge, Graphics2D g2) {
    TextBlock label = TextUtilities.createTextBlock(category.toString(),
            getTickLabelFont(category), getTickLabelPaint(category), width,
            this.maximumCategoryLabelLines, new G2TextMeasurer(g2));
    return label;
}
 
Example 14
Source File: CategoryAxis.java    From astor with GNU General Public License v2.0 3 votes vote down vote up
/**
 * Creates a label.
 *
 * @param category  the category.
 * @param width  the available width. 
 * @param edge  the edge on which the axis appears.
 * @param g2  the graphics device.
 *
 * @return A label.
 */
protected TextBlock createLabel(Comparable category, float width, 
                                RectangleEdge edge, Graphics2D g2) {
    TextBlock label = TextUtilities.createTextBlock(category.toString(), 
            getTickLabelFont(category), getTickLabelPaint(category), width,
            this.maximumCategoryLabelLines, new G2TextMeasurer(g2));  
    return label; 
}