/**
*
*/
package org.hyperdata.scute.graph;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import javax.swing.JPanel;
/**
* The Class ZoomPanel.
*
* @author danja
*/
public class ZoomPanel extends JPanel {
/**
*
*/
private static final long serialVersionUID = 1L;
private double zoom = 1.0;
private double percentage;
private Image image;
/**
* Instantiates a new zoom panel.
*
* @param image the image
* @param zoomPercentage the zoom percentage
*/
public ZoomPanel(Image image, double zoomPercentage) {
this.image = image;
percentage = zoomPercentage / 100;
}
/* (non-Javadoc)
* @see javax.swing.JComponent#paintComponent(java.awt.Graphics)
*/
@Override
public void paintComponent(Graphics grp) {
Graphics2D g2D = (Graphics2D) grp;
g2D.scale(zoom, zoom);
g2D.drawImage(image, 0, 0, this);
}
/**
* Sets the zoom percentage.
*
* @param zoomPercentage the new zoom percentage
*/
public void setZoomPercentage(int zoomPercentage) {
percentage = ((double) zoomPercentage) / 100;
}
/**
* Original size.
*/
public void originalSize() {
zoom = 1;
}
/**
* Zoom in.
*/
public void zoomIn() {
zoom += percentage;
}
/**
* Zoom out.
*/
public void zoomOut() {
zoom -= percentage;
if (zoom < percentage) {
if (percentage > 1.0) {
zoom = 1.0;
} else {
zoomIn();
}
}
}
}