com.mxgraph.canvas.mxImageCanvas Maven / Gradle / Ivy
/**
* $Id: mxImageCanvas.java,v 1.14 2010-12-03 10:08:46 gaudenz Exp $
* Copyright (c) 2007-2010, Gaudenz Alder, David Benson
*/
package com.mxgraph.canvas;
import java.awt.Color;
import java.awt.Graphics2D;
import java.awt.Point;
import java.awt.image.BufferedImage;
import com.mxgraph.util.mxUtils;
import com.mxgraph.view.mxCellState;
/**
* An implementation of a canvas that uses Graphics2D for painting. To use an
* image canvas for an existing graphics canvas and create an image the
* following code is used:
*
* BufferedImage image = mxCellRenderer.createBufferedImage(graph, cells, 1, Color.white, true, null, canvas);
*/
public class mxImageCanvas implements mxICanvas
{
/**
*
*/
protected mxGraphics2DCanvas canvas;
/**
*
*/
protected Graphics2D previousGraphics;
/**
*
*/
protected BufferedImage image;
/**
*
*/
public mxImageCanvas(mxGraphics2DCanvas canvas, int width, int height,
Color background, boolean antiAlias)
{
this.canvas = canvas;
previousGraphics = canvas.getGraphics();
image = mxUtils.createBufferedImage(width, height, background);
if (image != null)
{
Graphics2D g = image.createGraphics();
mxUtils.setAntiAlias(g, antiAlias, true);
canvas.setGraphics(g);
}
}
/**
*
*/
public mxGraphics2DCanvas getGraphicsCanvas()
{
return canvas;
}
/**
*
*/
public BufferedImage getImage()
{
return image;
}
/**
*
*/
public Object drawCell(mxCellState state)
{
return canvas.drawCell(state);
}
/**
*
*/
public Object drawLabel(String label, mxCellState state, boolean html)
{
return canvas.drawLabel(label, state, html);
}
/**
*
*/
public double getScale()
{
return canvas.getScale();
}
/**
*
*/
public Point getTranslate()
{
return canvas.getTranslate();
}
/**
*
*/
public void setScale(double scale)
{
canvas.setScale(scale);
}
/**
*
*/
public void setTranslate(int dx, int dy)
{
canvas.setTranslate(dx, dy);
}
/**
*
*/
public BufferedImage destroy()
{
BufferedImage tmp = image;
if (canvas.getGraphics() != null)
{
canvas.getGraphics().dispose();
}
canvas.setGraphics(previousGraphics);
previousGraphics = null;
canvas = null;
image = null;
return tmp;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy