Search in sources :

Example 36 with Size2D

use of org.jfree.chart.util.Size2D in project graphcode2vec by graphcode2vec.

the class BorderArrangement method arrangeFN.

/**
 * Arranges the container width a fixed width and no constraint on the
 * height.
 *
 * @param container  the container.
 * @param g2  the graphics device.
 * @param width  the fixed width.
 *
 * @return The container size after arranging the contents.
 */
protected Size2D arrangeFN(BlockContainer container, Graphics2D g2, double width) {
    double[] w = new double[5];
    double[] h = new double[5];
    RectangleConstraint c1 = new RectangleConstraint(width, null, LengthConstraintType.FIXED, 0.0, null, LengthConstraintType.NONE);
    if (this.topBlock != null) {
        Size2D size = this.topBlock.arrange(g2, c1);
        w[0] = size.width;
        h[0] = size.height;
    }
    if (this.bottomBlock != null) {
        Size2D size = this.bottomBlock.arrange(g2, c1);
        w[1] = size.width;
        h[1] = size.height;
    }
    RectangleConstraint c2 = new RectangleConstraint(0.0, new Range(0.0, width), LengthConstraintType.RANGE, 0.0, null, LengthConstraintType.NONE);
    if (this.leftBlock != null) {
        Size2D size = this.leftBlock.arrange(g2, c2);
        w[2] = size.width;
        h[2] = size.height;
    }
    if (this.rightBlock != null) {
        double maxW = Math.max(width - w[2], 0.0);
        RectangleConstraint c3 = new RectangleConstraint(0.0, new Range(Math.min(w[2], maxW), maxW), LengthConstraintType.RANGE, 0.0, null, LengthConstraintType.NONE);
        Size2D size = this.rightBlock.arrange(g2, c3);
        w[3] = size.width;
        h[3] = size.height;
    }
    h[2] = Math.max(h[2], h[3]);
    h[3] = h[2];
    if (this.centerBlock != null) {
        RectangleConstraint c4 = new RectangleConstraint(width - w[2] - w[3], null, LengthConstraintType.FIXED, 0.0, null, LengthConstraintType.NONE);
        Size2D size = this.centerBlock.arrange(g2, c4);
        w[4] = size.width;
        h[4] = size.height;
    }
    double height = h[0] + h[1] + Math.max(h[2], Math.max(h[3], h[4]));
    return arrange(container, g2, new RectangleConstraint(width, height));
}
Also used : Size2D(org.jfree.chart.util.Size2D) Range(org.jfree.data.Range)

Example 37 with Size2D

use of org.jfree.chart.util.Size2D in project graphcode2vec by graphcode2vec.

the class BorderArrangement method arrangeNN.

/**
 * Performs an arrangement without constraints.
 *
 * @param container  the container.
 * @param g2  the graphics device.
 *
 * @return The container size after the arrangement.
 */
protected Size2D arrangeNN(BlockContainer container, Graphics2D g2) {
    double[] w = new double[5];
    double[] h = new double[5];
    if (this.topBlock != null) {
        Size2D size = this.topBlock.arrange(g2, RectangleConstraint.NONE);
        w[0] = size.width;
        h[0] = size.height;
    }
    if (this.bottomBlock != null) {
        Size2D size = this.bottomBlock.arrange(g2, RectangleConstraint.NONE);
        w[1] = size.width;
        h[1] = size.height;
    }
    if (this.leftBlock != null) {
        Size2D size = this.leftBlock.arrange(g2, RectangleConstraint.NONE);
        w[2] = size.width;
        h[2] = size.height;
    }
    if (this.rightBlock != null) {
        Size2D size = this.rightBlock.arrange(g2, RectangleConstraint.NONE);
        w[3] = size.width;
        h[3] = size.height;
    }
    h[2] = Math.max(h[2], h[3]);
    h[3] = h[2];
    if (this.centerBlock != null) {
        Size2D size = this.centerBlock.arrange(g2, RectangleConstraint.NONE);
        w[4] = size.width;
        h[4] = size.height;
    }
    double width = Math.max(w[0], Math.max(w[1], w[2] + w[4] + w[3]));
    double centerHeight = Math.max(h[2], Math.max(h[3], h[4]));
    double height = h[0] + h[1] + centerHeight;
    if (this.topBlock != null) {
        this.topBlock.setBounds(new Rectangle2D.Double(0.0, 0.0, width, h[0]));
    }
    if (this.bottomBlock != null) {
        this.bottomBlock.setBounds(new Rectangle2D.Double(0.0, height - h[1], width, h[1]));
    }
    if (this.leftBlock != null) {
        this.leftBlock.setBounds(new Rectangle2D.Double(0.0, h[0], w[2], centerHeight));
    }
    if (this.rightBlock != null) {
        this.rightBlock.setBounds(new Rectangle2D.Double(width - w[3], h[0], w[3], centerHeight));
    }
    if (this.centerBlock != null) {
        this.centerBlock.setBounds(new Rectangle2D.Double(w[2], h[0], width - w[2] - w[3], centerHeight));
    }
    return new Size2D(width, height);
}
Also used : Size2D(org.jfree.chart.util.Size2D) Rectangle2D(java.awt.geom.Rectangle2D)

Example 38 with Size2D

use of org.jfree.chart.util.Size2D in project graphcode2vec by graphcode2vec.

the class BorderArrangement method arrangeFF.

/**
 * Arranges the items within a container.
 *
 * @param container  the container.
 * @param constraint  the constraint.
 * @param g2  the graphics device.
 *
 * @return The container size after the arrangement.
 */
protected Size2D arrangeFF(BlockContainer container, Graphics2D g2, RectangleConstraint constraint) {
    double[] w = new double[5];
    double[] h = new double[5];
    w[0] = constraint.getWidth();
    if (this.topBlock != null) {
        RectangleConstraint c1 = new RectangleConstraint(w[0], null, LengthConstraintType.FIXED, 0.0, new Range(0.0, constraint.getHeight()), LengthConstraintType.RANGE);
        Size2D size = this.topBlock.arrange(g2, c1);
        h[0] = size.height;
    }
    w[1] = w[0];
    if (this.bottomBlock != null) {
        RectangleConstraint c2 = new RectangleConstraint(w[0], null, LengthConstraintType.FIXED, 0.0, new Range(0.0, constraint.getHeight() - h[0]), LengthConstraintType.RANGE);
        Size2D size = this.bottomBlock.arrange(g2, c2);
        h[1] = size.height;
    }
    h[2] = constraint.getHeight() - h[1] - h[0];
    if (this.leftBlock != null) {
        RectangleConstraint c3 = new RectangleConstraint(0.0, new Range(0.0, constraint.getWidth()), LengthConstraintType.RANGE, h[2], null, LengthConstraintType.FIXED);
        Size2D size = this.leftBlock.arrange(g2, c3);
        w[2] = size.width;
    }
    h[3] = h[2];
    if (this.rightBlock != null) {
        RectangleConstraint c4 = new RectangleConstraint(0.0, new Range(0.0, Math.max(constraint.getWidth() - w[2], 0.0)), LengthConstraintType.RANGE, h[2], null, LengthConstraintType.FIXED);
        Size2D size = this.rightBlock.arrange(g2, c4);
        w[3] = size.width;
    }
    h[4] = h[2];
    w[4] = constraint.getWidth() - w[3] - w[2];
    RectangleConstraint c5 = new RectangleConstraint(w[4], h[4]);
    if (this.centerBlock != null) {
        this.centerBlock.arrange(g2, c5);
    }
    if (this.topBlock != null) {
        this.topBlock.setBounds(new Rectangle2D.Double(0.0, 0.0, w[0], h[0]));
    }
    if (this.bottomBlock != null) {
        this.bottomBlock.setBounds(new Rectangle2D.Double(0.0, h[0] + h[2], w[1], h[1]));
    }
    if (this.leftBlock != null) {
        this.leftBlock.setBounds(new Rectangle2D.Double(0.0, h[0], w[2], h[2]));
    }
    if (this.rightBlock != null) {
        this.rightBlock.setBounds(new Rectangle2D.Double(w[2] + w[4], h[0], w[3], h[3]));
    }
    if (this.centerBlock != null) {
        this.centerBlock.setBounds(new Rectangle2D.Double(w[2], h[0], w[4], h[4]));
    }
    return new Size2D(constraint.getWidth(), constraint.getHeight());
}
Also used : Size2D(org.jfree.chart.util.Size2D) Rectangle2D(java.awt.geom.Rectangle2D) Range(org.jfree.data.Range)

Example 39 with Size2D

use of org.jfree.chart.util.Size2D in project graphcode2vec by graphcode2vec.

the class CenterArrangement method arrangeNN.

/**
 * Arranges the blocks without any constraints.  This puts all blocks
 * into a single row.
 *
 * @param container  the container.
 * @param g2  the graphics device.
 *
 * @return The size after the arrangement.
 */
protected Size2D arrangeNN(BlockContainer container, Graphics2D g2) {
    List blocks = container.getBlocks();
    Block b = (Block) blocks.get(0);
    Size2D s = b.arrange(g2, RectangleConstraint.NONE);
    b.setBounds(new Rectangle2D.Double(0.0, 0.0, s.width, s.height));
    return new Size2D(s.width, s.height);
}
Also used : Size2D(org.jfree.chart.util.Size2D) Rectangle2D(java.awt.geom.Rectangle2D) List(java.util.List)

Example 40 with Size2D

use of org.jfree.chart.util.Size2D in project graphcode2vec by graphcode2vec.

the class ColumnArrangement method arrangeNF.

/**
 * Calculates and sets the bounds of all the items in the specified
 * container, subject to the given constraint.  The <code>Graphics2D</code>
 * can be used by some items (particularly items containing text) to
 * calculate sizing parameters.
 *
 * @param container  the container whose items are being arranged.
 * @param constraint  the size constraint.
 * @param g2  the graphics device.
 *
 * @return The container size after the arrangement.
 */
protected Size2D arrangeNF(BlockContainer container, Graphics2D g2, RectangleConstraint constraint) {
    List blocks = container.getBlocks();
    double height = constraint.getHeight();
    if (height <= 0.0) {
        height = Double.POSITIVE_INFINITY;
    }
    double x = 0.0;
    double y = 0.0;
    double maxWidth = 0.0;
    List itemsInColumn = new ArrayList();
    for (int i = 0; i < blocks.size(); i++) {
        Block block = (Block) blocks.get(i);
        Size2D size = block.arrange(g2, RectangleConstraint.NONE);
        if (y + size.height <= height) {
            itemsInColumn.add(block);
            block.setBounds(new Rectangle2D.Double(x, y, size.width, size.height));
            y = y + size.height + this.verticalGap;
            maxWidth = Math.max(maxWidth, size.width);
        } else {
            if (itemsInColumn.isEmpty()) {
                // place in this column (truncated) anyway
                block.setBounds(new Rectangle2D.Double(x, y, size.width, Math.min(size.height, height - y)));
                y = 0.0;
                x = x + size.width + this.horizontalGap;
            } else {
                // start new column
                itemsInColumn.clear();
                x = x + maxWidth + this.horizontalGap;
                y = 0.0;
                maxWidth = size.width;
                block.setBounds(new Rectangle2D.Double(x, y, size.width, Math.min(size.height, height)));
                y = size.height + this.verticalGap;
                itemsInColumn.add(block);
            }
        }
    }
    return new Size2D(x + maxWidth, constraint.getHeight());
}
Also used : Size2D(org.jfree.chart.util.Size2D) ArrayList(java.util.ArrayList) Rectangle2D(java.awt.geom.Rectangle2D) List(java.util.List) ArrayList(java.util.ArrayList)

Aggregations

Size2D (org.jfree.chart.util.Size2D)49 Rectangle2D (java.awt.geom.Rectangle2D)21 List (java.util.List)10 RectangleConstraint (org.jfree.chart.block.RectangleConstraint)8 Iterator (java.util.Iterator)5 RectangleEdge (org.jfree.chart.util.RectangleEdge)5 Range (org.jfree.data.Range)5 FontMetrics (java.awt.FontMetrics)4 Shape (java.awt.Shape)4 ArrayList (java.util.ArrayList)4 LengthConstraintType (org.jfree.chart.block.LengthConstraintType)4 RectangleInsets (org.jfree.chart.util.RectangleInsets)4 Point2D (java.awt.geom.Point2D)2 BlockParams (org.jfree.chart.block.BlockParams)2 EntityBlockResult (org.jfree.chart.block.EntityBlockResult)2 G2TextMeasurer (org.jfree.chart.text.G2TextMeasurer)2 Arc2D (java.awt.geom.Arc2D)1 AxisLocation (org.jfree.chart.axis.AxisLocation)1 AxisSpace (org.jfree.chart.axis.AxisSpace)1 BlockContainer (org.jfree.chart.block.BlockContainer)1