/***************************************************
*
* cismet GmbH, Saarbruecken, Germany
*
* ... and it just works.
*
****************************************************/
package de.cismet.cismap.commons.gui.layerwidget.test;
import java.awt.datatransfer.*;
import javax.swing.tree.TreePath;
/**
* This represents a TreePath (a node in a JTree) that can be transferred between a drag source and a drop target.
*
* @version $Revision$, $Date$
*/
class CTransferableTreePath implements Transferable {
//~ Static fields/initializers ---------------------------------------------
// The type of DnD object being dragged...
public static final DataFlavor TREEPATH_FLAVOR = new DataFlavor(DataFlavor.javaJVMLocalObjectMimeType, "TreePath"); // NOI18N
//~ Instance fields --------------------------------------------------------
private TreePath _path;
private DataFlavor[] _flavors = { TREEPATH_FLAVOR };
//~ Constructors -----------------------------------------------------------
/**
* Constructs a transferrable tree path object for the specified path.
*
* @param path DOCUMENT ME!
*/
public CTransferableTreePath(final TreePath path) {
_path = path;
}
//~ Methods ----------------------------------------------------------------
// Transferable interface methods...
@Override
public DataFlavor[] getTransferDataFlavors() {
return _flavors;
}
@Override
public boolean isDataFlavorSupported(final DataFlavor flavor) {
return java.util.Arrays.asList(_flavors).contains(flavor);
}
@Override
public synchronized Object getTransferData(final DataFlavor flavor) throws UnsupportedFlavorException {
if (flavor.isMimeTypeEqual(TREEPATH_FLAVOR.getMimeType())) { // DataFlavor.javaJVMLocalObjectMimeType))
return _path;
} else {
throw new UnsupportedFlavorException(flavor);
}
}
}