org.jfree.chart.block.BlockFrame Java Examples

The following examples show how to use org.jfree.chart.block.BlockFrame. 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: LegendTitle.java    From astor with GNU General Public License v2.0 6 votes vote down vote up
/**
 * Draws the block within the specified area.
 * 
 * @param g2  the graphics device.
 * @param area  the area.
 * @param params  ignored (<code>null</code> permitted).
 * 
 * @return An {@link org.jfree.chart.block.EntityBlockResult} or 
 *         <code>null</code>.
 */
public Object draw(Graphics2D g2, Rectangle2D area, Object params) {
    Rectangle2D target = (Rectangle2D) area.clone();
    target = trimMargin(target);
    if (this.backgroundPaint != null) {
        g2.setPaint(this.backgroundPaint);
        g2.fill(target);
    }
    BlockFrame border = getFrame();
    border.draw(g2, target);
    border.getInsets().trim(target);
    BlockContainer container = this.wrapper;
    if (container == null) {
        container = this.items; 
    }
    target = trimPadding(target);
    return container.draw(g2, target, params);   
}
 
Example #2
Source File: LineBorderProvider.java    From jasperreports with GNU Lesser General Public License v3.0 5 votes vote down vote up
@Override
public BlockFrame getBlockFrame()
{
	RectangleInsets borderInsets = insets == null ? new RectangleInsets(1.0, 1.0, 1.0, 1.0) : insets;
	Stroke borderStroke = lineStroke == null ? new BasicStroke(1.0f) : lineStroke;
	Paint borderPaint = paint == null ? null : paint.getPaint();
	if (borderPaint == null) 
	{
		borderPaint = Color.BLACK;
	}
	
	return new LineBorder(borderPaint, borderStroke, borderInsets);
}
 
Example #3
Source File: GenericChartTheme.java    From jasperreports with GNU Lesser General Public License v3.0 4 votes vote down vote up
protected void setChartLegend(JFreeChart jfreeChart, Integer baseFontSize)
{

	//The legend visibility is already taken into account in the jfreeChart object's constructor
	
	LegendTitle legend = jfreeChart.getLegend();
	if (legend != null)
	{
		Font themeLegendFont = getFont((JRFont)getDefaultValue(defaultChartPropertiesMap, ChartThemesConstants.LEGEND_FONT), getChart().getLegendFont(), baseFontSize);
		legend.setItemFont(themeLegendFont);

		Color legendForecolor = getChart().getOwnLegendColor() != null ? 
				getChart().getOwnLegendColor() :
				(getDefaultValue(defaultChartPropertiesMap, ChartThemesConstants.LEGEND_FORECOLOR) != null ? 
						(Color)getDefaultValue(defaultChartPropertiesMap, ChartThemesConstants.LEGEND_FORECOLOR) :
						getChart().getLegendColor());
		if (legendForecolor != null)
			legend.setItemPaint(legendForecolor);

		Color legendBackcolor = getChart().getOwnLegendBackgroundColor() != null ? 
				getChart().getOwnLegendBackgroundColor() :
				(getDefaultValue(defaultChartPropertiesMap, ChartThemesConstants.LEGEND_BACKCOLOR) != null ? 
						(Color)getDefaultValue(defaultChartPropertiesMap, ChartThemesConstants.LEGEND_BACKCOLOR) :
						getChart().getLegendBackgroundColor());
		if (legendBackcolor != null)
			legend.setBackgroundPaint(legendBackcolor);
		
		BlockFrame frame = (BlockFrame)getDefaultValue(defaultChartPropertiesMap, ChartThemesConstants.LEGEND_FRAME);
		if (frame != null)
			legend.setFrame(frame);
		
		HorizontalAlignment defaultLegendHAlignment = (HorizontalAlignment)getDefaultValue(defaultChartPropertiesMap, ChartThemesConstants.LEGEND_HORIZONTAL_ALIGNMENT);
		if (defaultLegendHAlignment != null)
			legend.setHorizontalAlignment(defaultLegendHAlignment);
		
		VerticalAlignment defaultLegendVAlignment = (VerticalAlignment)getDefaultValue(defaultChartPropertiesMap, ChartThemesConstants.LEGEND_VERTICAL_ALIGNMENT);
		if (defaultLegendVAlignment != null)
			legend.setVerticalAlignment(defaultLegendVAlignment);
		
		RectangleInsets defaultLegendPadding = (RectangleInsets)getDefaultValue(defaultChartPropertiesMap, ChartThemesConstants.LEGEND_PADDING);
		RectangleInsets legendPadding = legend.getPadding() != null ? legend.getPadding() : defaultLegendPadding;
		if (legendPadding != null)
			legend.setPadding(legendPadding);

		RectangleEdge defaultLegendPosition = (RectangleEdge)getDefaultValue(defaultChartPropertiesMap, ChartThemesConstants.LEGEND_POSITION);
		if (getEdge(getChart().getLegendPositionValue(), defaultLegendPosition) != null)
			legend.setPosition(getEdge(getChart().getLegendPositionValue(), defaultLegendPosition));
		
	}
}
 
Example #4
Source File: BlockFrameWrapper.java    From jasperreports with GNU Lesser General Public License v3.0 4 votes vote down vote up
public BlockFrameWrapper(BlockFrame blockFrame)
{
	this.blockFrame = blockFrame;
}
 
Example #5
Source File: BlockFrameWrapper.java    From jasperreports with GNU Lesser General Public License v3.0 4 votes vote down vote up
@Override
public BlockFrame getBlockFrame()
{
	return blockFrame;
}
 
Example #6
Source File: BlockFrameWrapper.java    From jasperreports with GNU Lesser General Public License v3.0 4 votes vote down vote up
public void setBlockFrame(BlockFrame blockFrame)
{
	this.blockFrame = blockFrame;
}
 
Example #7
Source File: LegendSettings.java    From jasperreports with GNU Lesser General Public License v3.0 4 votes vote down vote up
/**
 * @return the blockFrame
 */
public BlockFrame getBlockFrame() {
	return frame == null ? null : frame.getBlockFrame();
}
 
Example #8
Source File: LegendSettings.java    From jasperreports with GNU Lesser General Public License v3.0 4 votes vote down vote up
/**
 * @param blockFrame the blockFrame to set
 * @deprecated replaced by {@link #setFrame(BlockFrameProvider)}
 */
@Deprecated
public void setBlockFrame(BlockFrame blockFrame) {
	BlockFrameWrapper frameProvider = new BlockFrameWrapper(blockFrame);
	setFrame(frameProvider);
}
 
Example #9
Source File: SimpleChartTheme.java    From jasperreports with GNU Lesser General Public License v3.0 4 votes vote down vote up
protected void setChartLegend(JFreeChart jfreeChart)
{
	//The legend visibility is already taken into account in the jfreeChart object's constructor
	LegendTitle legend = jfreeChart.getLegend();
	if (legend != null)
	{
		LegendSettings legendSettings = getLegendSettings();
		JRBaseFont font = new JRBaseFont();
		FontUtil.copyNonNullOwnProperties(legendSettings.getFont(), font);
		FontUtil.copyNonNullOwnProperties(getChart().getLegendFont(), font);
		font = new JRBaseFont(getChart(), font);
		legend.setItemFont(getFontUtil().getAwtFont(font, getLocale()));

		Paint forePaint = getChart().getOwnLegendColor();
		if (forePaint == null && legendSettings.getForegroundPaint() != null)
		{
			forePaint = legendSettings.getForegroundPaint().getPaint();
		}
		if (forePaint == null)
		{
			forePaint = getChart().getLegendColor();
		}
		if (forePaint != null)
			legend.setItemPaint(forePaint);

		Paint backPaint = getChart().getOwnLegendBackgroundColor();
		if (backPaint == null && legendSettings.getBackgroundPaint() != null)
		{
			backPaint = legendSettings.getBackgroundPaint().getPaint();
		}
		if (backPaint == null)
		{
			backPaint = getChart().getLegendBackgroundColor();
		}
		if (backPaint != null)
			legend.setBackgroundPaint(backPaint);

		BlockFrame blockFrame = legendSettings.getBlockFrame();
		if (blockFrame != null)
			legend.setFrame(blockFrame);
		
		HorizontalAlignment hAlign = legendSettings.getHorizontalAlignment();
		if (hAlign != null)
			legend.setHorizontalAlignment(hAlign);
		
		VerticalAlignment vAlign = legendSettings.getVerticalAlignment();
		if (vAlign != null)
			legend.setVerticalAlignment(vAlign);
		
		RectangleInsets padding = legendSettings.getPadding();
		if (padding != null)
			legend.setPadding(padding);

		legend.setPosition(
			getEdge(
				getChart().getLegendPositionValue(), 
				getEdge(
					legendSettings.getPositionValue() , 
					RectangleEdge.BOTTOM
					)
				)
			);
	}
}
 
Example #10
Source File: JamelChartPanel.java    From jamel with GNU General Public License v3.0 4 votes vote down vote up
/**
 * Writes the current chart to the specified file in PDF format. This
 * will only work when the OrsonPDF library is found on the classpath.
 * Reflection is used to ensure there is no compile-time dependency on
 * OrsonPDF (which is non-free software).
 * 
 * @param file
 *            the output file ({@code null} not permitted).
 * @param params
 *            formating parameters.
 */
public void export(final File file, final Parameters params) {
	ArgChecks.nullNotPermitted(file, "file");
	final int w;
	final int h;
	if (params != null) {
		w = Integer.parseInt(params.getAttribute("width"));
		h = Integer.parseInt(params.getAttribute("height"));
	} else {
		w = this.getWidth();
		h = this.getHeight();
	}

	// Chart formating

	final TextTitle chartTitle = this.getChart().getTitle();
	this.getChart().setTitle((String) null);
	final BlockFrame legendFrame = this.getChart().getLegend().getFrame();
	this.getChart().getLegend().setFrame(BlockBorder.NONE);

	try {

		// Export to pdf

		final Class<?> pdfDocClass = Class.forName("com.orsonpdf.PDFDocument4Jamel");
		final Object pdfDoc = pdfDocClass.newInstance();
		final Method m = pdfDocClass.getMethod("createPage", Rectangle2D.class);
		final Rectangle2D rect = new Rectangle(w, h);
		final Object page = m.invoke(pdfDoc, rect);
		final Method m2 = page.getClass().getMethod("getGraphics2D");
		final Graphics2D g2 = (Graphics2D) m2.invoke(page);
		g2.setRenderingHint(JFreeChart.KEY_SUPPRESS_SHADOW_GENERATION, true);
		final Rectangle2D drawArea = new Rectangle2D.Double(0, 0, w, h);
		this.getChart().draw(g2, drawArea);
		final Method m3 = pdfDocClass.getMethod("setAuthor", String.class);
		m3.invoke(pdfDoc, "Pascal Seppecher");
		final Method m4 = pdfDocClass.getMethod("setCreator", String.class);
		m4.invoke(pdfDoc, "Jamel v" + Jamel.getVersion());
		final Method m5 = pdfDocClass.getMethod("setTitle", String.class);
		m5.invoke(pdfDoc, chartTitle.getText());
		final Method m6 = pdfDocClass.getMethod("writeToFile", File.class);
		m6.invoke(pdfDoc, file);

	} catch (ClassNotFoundException | InstantiationException | IllegalAccessException | IllegalArgumentException
			| InvocationTargetException | NoSuchMethodException | SecurityException ex) {
		throw new RuntimeException(ex);
	}

	// Chart unformating

	this.getChart().setTitle(chartTitle);
	this.getChart().getLegend().setFrame(legendFrame);

}
 
Example #11
Source File: BlockFrameProvider.java    From jasperreports with GNU Lesser General Public License v3.0 votes vote down vote up
BlockFrame getBlockFrame();