/*
* Copyright (c) 2014 tabletoptool.com team.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the GNU Public License v3.0
* which accompanies this distribution, and is available at
* http://www.gnu.org/licenses/gpl.html
*
* Contributors:
* rptools.com team - initial implementation
* tabletoptool.com team - further development
*/
package com.t3.tool;
import java.awt.datatransfer.DataFlavor;
import java.awt.dnd.DnDConstants;
import java.awt.dnd.DropTarget;
import java.awt.dnd.DropTargetDragEvent;
import java.awt.dnd.DropTargetDropEvent;
import java.awt.dnd.DropTargetEvent;
import java.awt.dnd.DropTargetListener;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import com.t3.transferable.ImageTransferableHandler;
/**
* This class will show a frame that accepts system drag-and-drop events
* it is a discovery tool useful to determine which flavors a drop from a specific application
* supports (such as a browser)
*/
public class DropTargetInfo extends JFrame implements DropTargetListener{
JLabel label = new JLabel("Drop here");
public DropTargetInfo() {
super ("Drag and drop into this window");
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocation(300,200);
setSize(200, 200);
new DropTarget(this, this);
add(label);
}
public static void main(String[] args) {
DropTargetInfo dti = new DropTargetInfo();
dti.setVisible(true);
}
////
// DROP TARGET LISTENER
@Override
public void dragEnter(DropTargetDragEvent dtde) {
}
@Override
public void dragExit(DropTargetEvent dte) {
}
@Override
public void dragOver(DropTargetDragEvent dtde) {
}
@Override
public void drop(DropTargetDropEvent dtde) {
dtde.acceptDrop(DnDConstants.ACTION_COPY_OR_MOVE);
Object handlerObj = null;
try {
handlerObj = new ImageTransferableHandler().getTransferObject(dtde.getTransferable());
System.out.println ("DropAction:" + dtde.getDropAction());
System.out.println ("Source:" + dtde.getSource());
System.out.println ("DropTargetContext:" + dtde.getDropTargetContext());
System.out.println ("Data Flavors:");
for (DataFlavor flavor : dtde.getCurrentDataFlavorsAsList()) {
try {
System.out.println ("\t" + flavor.getMimeType());
} catch (Exception e) {
System.out.println ("\t\tfailed");
}
}
System.out.println ("--------------------");
label.setIcon(new ImageIcon(new ImageTransferableHandler().getTransferObject(dtde.getTransferable())));
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void dropActionChanged(DropTargetDragEvent dtde) {
}
}