5751N/Aimport java.awt.datatransfer.Transferable;
5751N/Aimport java.awt.dnd.*;
5751N/Aimport java.awt.*;
5751N/Aimport java.awt.datatransfer.DataFlavor;
5751N/Aimport java.awt.datatransfer.UnsupportedFlavorException;
5751N/Aimport java.io.IOException;
5751N/Aimport java.util.Timer;
5751N/Aimport java.util.TimerTask;
5751N/A
5751N/Apublic class TargetPanel extends Panel implements DropTargetListener {
5751N/A
5751N/A
5751N/A //private final CustomDropTargetListener dropTargetListener = new CustomDropTargetListener();
5751N/A
5751N/A private Frame frame;
5751N/A DataFlavor dataFlavor;
5751N/A
5751N/A public TargetPanel(Frame frame, DataFlavor dataFlavor) {
5751N/A this.dataFlavor = dataFlavor;
5751N/A this.frame = frame;
5751N/A setBackground(Color.DARK_GRAY);
5751N/A setPreferredSize(new Dimension(200, 200));
5751N/A setDropTarget(new DropTarget(this, this));
5751N/A }
5751N/A
5751N/A public void dragEnter(DropTargetDragEvent dtde) {
5751N/A if (dtde.isDataFlavorSupported(dataFlavor)) {
5751N/A dtde.acceptDrag(DnDConstants.ACTION_COPY_OR_MOVE);
5751N/A }
5751N/A }
5751N/A
5751N/A public void dragOver(DropTargetDragEvent dtde) {
5751N/A if (dtde.isDataFlavorSupported(dataFlavor)) {
5751N/A dtde.acceptDrag(DnDConstants.ACTION_COPY_OR_MOVE);
5751N/A }
5751N/A }
5751N/A
5751N/A public void dropActionChanged(DropTargetDragEvent dtde) {
5751N/A if (dtde.isDataFlavorSupported(dataFlavor)) {
5751N/A dtde.acceptDrag(DnDConstants.ACTION_COPY_OR_MOVE);
5751N/A }
5751N/A }
5751N/A
5751N/A public void dragExit(DropTargetEvent dte) {
5751N/A
5751N/A }
5751N/A
5751N/A public void drop(DropTargetDropEvent dtde) {
5751N/A dtde.acceptDrop(DnDConstants.ACTION_COPY_OR_MOVE);
5751N/A if (dtde.isDataFlavorSupported(dataFlavor)) {
5751N/A String result = null;
5751N/A try {
5751N/A Transferable t = dtde.getTransferable();
5751N/A byte[] data = (byte[]) dtde.getTransferable().getTransferData(dataFlavor);
5751N/A result = new String(data, "UTF-16");
5751N/A repaint();
5751N/A } catch (UnsupportedFlavorException e) {
5751N/A e.printStackTrace();
5751N/A } catch (IOException e) {
5751N/A e.printStackTrace();
5751N/A }
5751N/A dtde.dropComplete(true);
5751N/A
5751N/A
5751N/A if (result != null && result.contains(MyTransferable.TEST_DATA)) {
5751N/A System.err.println(InterprocessMessages.EXECUTION_IS_SUCCESSFULL);
5751N/A Timer t = new Timer();
5751N/A t.schedule(new TimerTask() {
5751N/A @Override
5751N/A public void run() {
5751N/A System.exit(0);
5751N/A }
5751N/A }, 2000);
5751N/A return;
5751N/A
5751N/A }
5751N/A }
5751N/A dtde.rejectDrop();
5751N/A System.err.println(InterprocessMessages.DATA_IS_CORRUPTED);
5751N/A System.exit(InterprocessMessages.DATA_IS_CORRUPTED);
5751N/A }
5751N/A
5751N/A}