Search in sources :

Example 46 with Size2D

use of org.jfree.ui.Size2D in project SIMVA-SoS by SESoS.

the class GridArrangement method arrangeFF.

/**
 * Arranges the container with a fixed overall width and height.
 *
 * @param container  the container (<code>null</code> not permitted).
 * @param g2  the graphics device.
 * @param constraint  the constraint (<code>null</code> not permitted).
 *
 * @return The size following the arrangement.
 */
protected Size2D arrangeFF(BlockContainer container, Graphics2D g2, RectangleConstraint constraint) {
    double width = constraint.getWidth() / this.columns;
    double height = constraint.getHeight() / this.rows;
    List blocks = container.getBlocks();
    for (int c = 0; c < this.columns; c++) {
        for (int r = 0; r < this.rows; r++) {
            int index = r * this.columns + c;
            if (index >= blocks.size()) {
                break;
            }
            Block b = (Block) blocks.get(index);
            if (b != null) {
                b.setBounds(new Rectangle2D.Double(c * width, r * height, width, height));
            }
        }
    }
    return new Size2D(this.columns * width, this.rows * height);
}
Also used : Size2D(org.jfree.ui.Size2D) Rectangle2D(java.awt.geom.Rectangle2D) List(java.util.List)

Example 47 with Size2D

use of org.jfree.ui.Size2D in project SIMVA-SoS by SESoS.

the class GridArrangement method arrangeNR.

/**
 * Arrange with a fixed height and no width constraint.
 *
 * @param container  the container.
 * @param constraint  the constraint.
 * @param g2  the graphics device.
 *
 * @return The size of the arrangement.
 */
protected Size2D arrangeNR(BlockContainer container, Graphics2D g2, RectangleConstraint constraint) {
    RectangleConstraint c1 = constraint.toUnconstrainedHeight();
    Size2D size1 = arrange(container, g2, c1);
    if (constraint.getHeightRange().contains(size1.getHeight())) {
        return size1;
    } else {
        double h = constraint.getHeightRange().constrain(size1.getHeight());
        RectangleConstraint c2 = constraint.toFixedHeight(h);
        return arrange(container, g2, c2);
    }
}
Also used : Size2D(org.jfree.ui.Size2D)

Example 48 with Size2D

use of org.jfree.ui.Size2D in project SIMVA-SoS by SESoS.

the class GridArrangement method arrangeNN.

/**
 * Arranges the container with no constraint on the width or height.
 *
 * @param container  the container (<code>null</code> not permitted).
 * @param g2  the graphics device.
 *
 * @return The size.
 */
protected Size2D arrangeNN(BlockContainer container, Graphics2D g2) {
    double maxW = 0.0;
    double maxH = 0.0;
    List blocks = container.getBlocks();
    Iterator iterator = blocks.iterator();
    while (iterator.hasNext()) {
        Block b = (Block) iterator.next();
        if (b != null) {
            Size2D s = b.arrange(g2, RectangleConstraint.NONE);
            maxW = Math.max(maxW, s.width);
            maxH = Math.max(maxH, s.height);
        }
    }
    double width = this.columns * maxW;
    double height = this.rows * maxH;
    RectangleConstraint c = new RectangleConstraint(width, height);
    return arrangeFF(container, g2, c);
}
Also used : Size2D(org.jfree.ui.Size2D) Iterator(java.util.Iterator) List(java.util.List)

Example 49 with Size2D

use of org.jfree.ui.Size2D in project SIMVA-SoS by SESoS.

the class GridArrangement method arrangeRF.

/**
 * Arrange with a fixed height and a width within a given range.
 *
 * @param container  the container.
 * @param constraint  the constraint.
 * @param g2  the graphics device.
 *
 * @return The size of the arrangement.
 */
protected Size2D arrangeRF(BlockContainer container, Graphics2D g2, RectangleConstraint constraint) {
    RectangleConstraint c1 = constraint.toUnconstrainedWidth();
    Size2D size1 = arrange(container, g2, c1);
    if (constraint.getWidthRange().contains(size1.getWidth())) {
        return size1;
    } else {
        double w = constraint.getWidthRange().constrain(size1.getWidth());
        RectangleConstraint c2 = constraint.toFixedWidth(w);
        return arrange(container, g2, c2);
    }
}
Also used : Size2D(org.jfree.ui.Size2D)

Example 50 with Size2D

use of org.jfree.ui.Size2D in project SIMVA-SoS by SESoS.

the class GridArrangement method arrangeRR.

/**
 * Arrange with ranges for both the width and height constraints.
 *
 * @param container  the container.
 * @param constraint  the constraint.
 * @param g2  the graphics device.
 *
 * @return The size of the arrangement.
 */
protected Size2D arrangeRR(BlockContainer container, Graphics2D g2, RectangleConstraint constraint) {
    Size2D size1 = arrange(container, g2, RectangleConstraint.NONE);
    if (constraint.getWidthRange().contains(size1.getWidth())) {
        if (constraint.getHeightRange().contains(size1.getHeight())) {
            return size1;
        } else {
            // width is OK, but height must be constrained
            double h = constraint.getHeightRange().constrain(size1.getHeight());
            RectangleConstraint cc = new RectangleConstraint(size1.getWidth(), h);
            return arrangeFF(container, g2, cc);
        }
    } else {
        if (constraint.getHeightRange().contains(size1.getHeight())) {
            // height is OK, but width must be constrained
            double w = constraint.getWidthRange().constrain(size1.getWidth());
            RectangleConstraint cc = new RectangleConstraint(w, size1.getHeight());
            return arrangeFF(container, g2, cc);
        } else {
            double w = constraint.getWidthRange().constrain(size1.getWidth());
            double h = constraint.getHeightRange().constrain(size1.getHeight());
            RectangleConstraint cc = new RectangleConstraint(w, h);
            return arrangeFF(container, g2, cc);
        }
    }
}
Also used : Size2D(org.jfree.ui.Size2D)

Aggregations

Size2D (org.jfree.ui.Size2D)62 Test (org.junit.Test)19 Rectangle2D (java.awt.geom.Rectangle2D)18 Range (org.jfree.data.Range)14 List (java.util.List)10 RectangleConstraint (org.jfree.chart.block.RectangleConstraint)8 RectangleEdge (org.jfree.ui.RectangleEdge)5 Graphics2D (java.awt.Graphics2D)4 BufferedImage (java.awt.image.BufferedImage)4 ArrayList (java.util.ArrayList)4 LengthConstraintType (org.jfree.chart.block.LengthConstraintType)4 RectangleInsets (org.jfree.ui.RectangleInsets)4 FontMetrics (java.awt.FontMetrics)3 Shape (java.awt.Shape)3 Point2D (java.awt.geom.Point2D)2 BlockParams (org.jfree.chart.block.BlockParams)2 EntityBlockResult (org.jfree.chart.block.EntityBlockResult)2 G2TextMeasurer (org.jfree.text.G2TextMeasurer)2 Arc2D (java.awt.geom.Arc2D)1 Iterator (java.util.Iterator)1