OSDN Git Service

update for Java SE 6.
[stigmata/stigmata.git] / src / main / java / jp / sourceforge / stigmata / ui / swing / mds / MdsImageStore.java
1 package jp.sourceforge.stigmata.ui.swing.mds;
2
3 /*
4  * $Id$
5  */
6
7 import java.awt.Color;
8 import java.awt.Dimension;
9 import java.awt.Graphics2D;
10 import java.awt.image.BufferedImage;
11 import java.io.IOException;
12 import java.io.OutputStream;
13
14 import javax.imageio.ImageIO;
15 import javax.swing.JOptionPane;
16 import javax.swing.SwingUtilities;
17
18 import jp.sourceforge.stigmata.ui.swing.UnsupportedFormatException;
19 import jp.sourceforge.stigmata.utils.BinaryDataWritable;
20 import jp.sourceforge.talisman.mds.ui.swing.MdsPane;
21
22 /**
23  * @author Haruaki TAMADA
24  * @version $Revision$ $Date$
25  */
26 public class MDSImageExporter implements BinaryDataWritable{
27     private MdsPane viewer;
28
29     public MDSImageExporter(MdsPane viewer){
30         this.viewer = viewer;
31     }
32
33     public void writeBinaryData(OutputStream out, String format)
34             throws IOException, UnsupportedFormatException{
35         Dimension size = viewer.getSize();
36         BufferedImage image = new BufferedImage(size.width, size.height, BufferedImage.TYPE_INT_ARGB);
37         Graphics2D g = image.createGraphics();
38         g.setColor(Color.WHITE);
39         g.fillRect(0, 0, size.width, size.height);
40         viewer.update(g);
41
42         try{
43             ImageIO.write(image, format, out);
44             out.flush();
45         } catch(IOException e){
46             JOptionPane.showMessageDialog(
47                 SwingUtilities.getRoot(viewer), e.getMessage(),
48                 viewer.getMessages().get("error.dialog.title"),
49                 JOptionPane.WARNING_MESSAGE
50             );
51         }
52     }
53
54 }