!752

import java.awt.datatransfer.*;
import java.awt.dnd.*;

p-awt {
  final new ImageSurface is;
  showFrame(jscroll(is));
  
  new DropTarget(is, new DropTargetAdapter {
    public void drop(DropTargetDropEvent e) {
      print("DropTarget: drop received");
      handleFileDrop(e);
    }
    
	  void handleFileDrop(DropTargetDropEvent evt) {
  		pcall {
  		  Transferable tr = evt.getTransferable();
  		  DataFlavor[] flavors = tr.getTransferDataFlavors();
  		  for (DataFlavor flavor : flavors) {
    			print("flavor: " + flavor);
    			if (flavor.isFlavorJavaFileListType()) {
    			  evt.acceptDrop(evt.getDropAction());
    			  L<File> list = (L) tr.getTransferData(flavor);
    			  if (list.size() != 0) {
    				  File file = list.get(0);
    				  is.setImage(loadBufferedImage(file));
    			  }
    			  evt.dropComplete(true);
    			  return;
    			}
    		}
		  }
		  //print("Unknown data flavors (" + flavors.length + ")");
		  evt.rejectDrop();
	  }
  });
}