/*
* codjo.net
*
* Common Apache License 2.0
*/
package net.codjo.gui;
import java.awt.datatransfer.DataFlavor;
import java.awt.datatransfer.Transferable;
import java.awt.datatransfer.UnsupportedFlavorException;
import java.awt.dnd.DnDConstants;
import java.awt.dnd.DropTargetDragEvent;
import java.awt.dnd.DropTargetDropEvent;
import java.awt.dnd.DropTargetEvent;
import java.awt.dnd.DropTargetListener;
import javax.swing.JTextArea;
/**
* Description of the Class
*
*
*/
public class TextAreaTargetDnd implements DropTargetListener {
JTextArea text;
/**
* Constructor for the TextAreaTargetDnd object
*
* @param textComponent Description of Parameter
*/
public TextAreaTargetDnd(JTextArea textComponent) {
this.text = textComponent;
}
/**
* Description of the Method
*
* @param event Description of Parameter
*/
public void dragEnter(DropTargetDragEvent event) {
event.acceptDrag(DnDConstants.ACTION_COPY_OR_MOVE);
}
/**
* Description of the Method
*
* @param event Description of Parameter
*/
public void dragOver(DropTargetDragEvent event) {}
/**
* Description of the Method
*
* @param dtde Description of Parameter
*/
public void dropActionChanged(DropTargetDragEvent dtde) {}
/**
* Description of the Method
*
* @param dte Description of Parameter
*/
public void dragExit(DropTargetEvent dte) {}
/**
* Description of the Method
*
* @param event Description of Parameter
*/
public void drop(DropTargetDropEvent event) {
try {
Transferable transferable = event.getTransferable();
// we accept only Strings
if (transferable.isDataFlavorSupported(DataFlavor.stringFlavor)) {
event.acceptDrop(DnDConstants.ACTION_COPY_OR_MOVE);
String s = (String)transferable.getTransferData(DataFlavor.stringFlavor);
text.insert(s, text.getText().length());
event.getDropTargetContext().dropComplete(true);
}
else {
event.rejectDrop();
}
}
catch (java.io.IOException exception) {
exception.printStackTrace();
System.err.println("Exception" + exception.getMessage());
event.rejectDrop();
}
catch (UnsupportedFlavorException ufException) {
ufException.printStackTrace();
System.err.println("Exception" + ufException.getMessage());
event.rejectDrop();
}
}
}