1 package org.codehaus.xfire.attachments;
2
3 import java.awt.Image;
4 import java.awt.Toolkit;
5 import java.awt.datatransfer.DataFlavor;
6 import java.awt.datatransfer.UnsupportedFlavorException;
7 import java.io.ByteArrayOutputStream;
8 import java.io.IOException;
9 import java.io.InputStream;
10 import java.io.OutputStream;
11
12 import javax.activation.DataContentHandler;
13 import javax.activation.DataSource;
14
15 /***
16 * @author <a href="mailto:dan@envoisolutiosn.com">Dan Diephouse</a>
17 */
18 public class ImageDataContentHandler
19 implements DataContentHandler
20 {
21 public Object getContent(DataSource ds)
22 throws IOException
23 {
24 ByteArrayOutputStream bos = new ByteArrayOutputStream();
25
26 copy(ds.getInputStream(), bos, 8096);
27
28 Image image = Toolkit.getDefaultToolkit().createImage(bos.toByteArray());
29
30 return image;
31 }
32
33 public void copy(final InputStream input,
34 final OutputStream output,
35 final int bufferSize)
36 throws IOException
37 {
38 final byte[] buffer = new byte[bufferSize];
39
40 int n = 0;
41 while (-1 != (n = input.read(buffer)))
42 {
43 output.write(buffer, 0, n);
44 }
45 }
46
47 public Object getTransferData(DataFlavor arg0, DataSource arg1)
48 throws UnsupportedFlavorException, IOException
49 {
50 return null;
51 }
52
53 public DataFlavor[] getTransferDataFlavors()
54 {
55 return null;
56 }
57
58 public void writeTo(Object obj, String contentTyp, OutputStream out)
59 throws IOException
60 {
61 Image image = (Image) obj;
62 }
63
64 }