/** * Performs the layout with no constraint, so the content size is determined by the bounds of the * shape and/or line drawn to represent the series. * * @param g2 the graphics device. * @return The content size. */ protected ArrangeResult arrangeNN(Graphics2D g2, ArrangeParams params) { Rectangle2D contentSize = new Rectangle2D.Double(); if (this.line != null) { contentSize.setRect(this.line.getBounds2D()); } if (this.shape != null) { contentSize = contentSize.createUnion(this.shape.getBounds2D()); } ArrangeResult result = params.getRecyclableResult(); if (result != null) { result.setSize(contentSize.getWidth(), contentSize.getHeight()); } else { result = new ArrangeResult(contentSize.getWidth(), contentSize.getHeight(), null); } return result; }
protected ArrangeResult arrangeFF( Graphics2D g2, double fixedWidth, double fixedHeight, ArrangeParams params) { Rectangle2D contentSize = new Rectangle2D.Double(); if (this.line != null) { contentSize.setRect(this.line.getBounds2D()); } if (this.shape != null) { contentSize = contentSize.createUnion(this.shape.getBounds2D()); } // TODO: compare the contentSize to the required fixed size // and possibly log the problems ArrangeResult result = params.getRecyclableResult(); if (result != null) { result.setSize(fixedWidth, fixedHeight); } else { result = new ArrangeResult(fixedWidth, fixedHeight, null); } return result; }