00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 package org.objectweb.cjdbc.console.gui.dnd.listeners;
00026
00027 import java.awt.Component;
00028 import java.awt.datatransfer.DataFlavor;
00029 import java.awt.datatransfer.Transferable;
00030 import java.awt.dnd.DnDConstants;
00031 import java.awt.dnd.DropTarget;
00032 import java.awt.dnd.DropTargetDropEvent;
00033
00034 import javax.swing.JButton;
00035 import javax.swing.JPanel;
00036
00037 import org.objectweb.cjdbc.console.gui.CjdbcGui;
00038
00039
00040
00041
00042
00043
00044
00045 public class BackendTransferListener extends AbstractGuiDropListener
00046 {
00047
00048
00049
00050
00051
00052
00053 public BackendTransferListener(CjdbcGui gui)
00054 {
00055 super(gui);
00056 }
00057
00058
00059
00060
00061 public void drop(DropTargetDropEvent dtde)
00062 {
00063 dtde.acceptDrop(DnDConstants.ACTION_COPY_OR_MOVE);
00064 DropTarget target = dtde.getDropTargetContext().getDropTarget();
00065 Transferable transfer = dtde.getTransferable();
00066
00067
00068 Component comp = target.getComponent();
00069 try
00070 {
00071 Object data = transfer.getTransferData(DataFlavor.stringFlavor);
00072 if (comp instanceof JButton)
00073 gui.publicActionExecuteBackendDrop((JButton) comp, data.toString());
00074 else if (comp instanceof JPanel)
00075 gui.publicActionExecuteBackendDrop((JPanel) comp, data.toString());
00076
00077 }
00078 catch (Exception e)
00079 {
00080 gui.appendDebugText("Failed to execute Drag and drop for target:"
00081 + comp.getName(),e);
00082 }
00083 finally
00084 {
00085 dtde.getDropTargetContext().removeNotify();
00086 dtde.dropComplete(true);
00087 gui.publicActionRefreshCursorShape();
00088 }
00089 dtde.getDropTargetContext().removeNotify();
00090
00091 dtde.dropComplete(true);
00092
00093 }
00094 }