20 package net.sf.gridarta.gui.misc;
22 import java.awt.Color;
23 import java.awt.Component;
24 import java.awt.Dimension;
25 import java.awt.Graphics;
26 import java.awt.Image;
27 import java.awt.image.BufferedImage;
28 import java.awt.image.RenderedImage;
30 import java.io.IOException;
31 import javax.imageio.ImageIO;
32 import javax.swing.JComponent;
33 import javax.swing.JFileChooser;
34 import javax.swing.JFrame;
35 import javax.swing.JScrollPane;
36 import javax.swing.WindowConstants;
38 import net.
sf.japi.swing.action.ActionBuilder;
39 import net.
sf.japi.swing.action.ActionBuilderFactory;
40 import net.
sf.japi.swing.action.ActionMethod;
41 import org.jetbrains.annotations.NotNull;
62 private static final ActionBuilder
ACTION_BUILDER = ActionBuilderFactory.getInstance().getActionBuilder(
"net.sf.gridarta");
115 setBackground(
new Color(255, 255, 255, 0));
116 frame =
new JFrame(
"Map Previewer");
124 final Component scroll =
new JScrollPane(
this);
125 scroll.setFocusable(
true);
127 frame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
129 frame.setVisible(
true);
138 public void zoom0() throws OutOfMemoryError {
148 public void zoom12() throws OutOfMemoryError {
158 public void zoom25() throws OutOfMemoryError {
168 public void zoom50() throws OutOfMemoryError {
178 public void zoom100() throws OutOfMemoryError {
188 public void zoom150() throws OutOfMemoryError {
198 public void zoom200() throws OutOfMemoryError {
208 public void zoom250() throws OutOfMemoryError {
218 public void zoom300() throws OutOfMemoryError {
228 public void zoom400() throws OutOfMemoryError {
239 public void zoomSave() throws IOException, OutOfMemoryError {
240 final JFileChooser chooser =
new JFileChooser();
242 if (chooser.showSaveDialog(
frame) == JFileChooser.APPROVE_OPTION) {
243 final File file = chooser.getSelectedFile();
244 if (!file.exists() ||
ACTION_BUILDER.showQuestionDialog(
this,
"overwriteOtherFile", file)) {
245 final RenderedImage img;
246 if (
image instanceof RenderedImage) {
247 img = (RenderedImage)
image;
249 final BufferedImage img2 =
new BufferedImage(
image.getWidth(
this),
image.getHeight(
this), BufferedImage.TYPE_INT_ARGB);
250 final Graphics g = img2.getGraphics();
258 ImageIO.write(img,
"png", file);
328 private void setScale(
final double scale)
throws OutOfMemoryError {
359 private void rescale() throws OutOfMemoryError {
362 }
catch (
final OutOfMemoryError e) {
379 super.paintComponent(g);
380 g.drawImage(
image, 0, 0,
this);