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 }