package com.revolsys.awt;
import java.awt.Graphics2D;
import java.awt.geom.AffineTransform;
import com.revolsys.io.BaseCloseable;
public class CloseableAffineTransform extends AffineTransform implements BaseCloseable {
private static final long serialVersionUID = 1L;
private final AffineTransform originalTransform;
private final Graphics2D graphics;
public CloseableAffineTransform(final Graphics2D graphics) {
this(graphics, graphics.getTransform());
}
public CloseableAffineTransform(final Graphics2D graphics, final AffineTransform newTransform) {
super(newTransform);
this.graphics = graphics;
this.originalTransform = graphics.getTransform();
graphics.setTransform(this);
}
@Override
public void close() {
this.graphics.setTransform(this.originalTransform);
}
public AffineTransform getOriginalTransform() {
return this.originalTransform;
}
}