/***************************************************
*
* cismet GmbH, Saarbruecken, Germany
*
* ... and it just works.
*
****************************************************/
/*
* AttributeNodeTransferable.java
*
* Created on 15. September 2004, 11:03
*/
package Sirius.navigator.ui.dnd;
import Sirius.navigator.ui.attributes.*;
import org.apache.log4j.Logger;
import java.awt.datatransfer.*;
/**
* DOCUMENT ME!
*
* @author pascal
* @version $Revision$, $Date$
*/
public class AttributeNodeTransferable implements MetaTransferable {
//~ Static fields/initializers ---------------------------------------------
static DataFlavor[] dataFlavors = null;
//~ Instance fields --------------------------------------------------------
private ObjectAttributeNode objectAttributeNode;
/** Holds value of property transferAction. */
private int transferAction;
//~ Constructors -----------------------------------------------------------
/**
* Creates a new instance of AttributeNodeTransferable.
*
* @param objectAttributeNode DOCUMENT ME!
*/
public AttributeNodeTransferable(final ObjectAttributeNode objectAttributeNode) {
this.objectAttributeNode = objectAttributeNode;
}
//~ Methods ----------------------------------------------------------------
@Override
public Object getTransferData(final DataFlavor flavor) throws UnsupportedFlavorException, java.io.IOException {
if (getTransferDataFlavors().length > 0) {
if (getTransferDataFlavors()[0].equals(flavor)) {
return this.objectAttributeNode;
} else {
throw new UnsupportedFlavorException(flavor);
}
}
return null;
}
@Override
public DataFlavor[] getTransferDataFlavors() {
// lazily construct flavors
if (dataFlavors == null) {
dataFlavors = new DataFlavor[1];
try {
// ObjectAttributeNode
final String mimeType = DataFlavor.javaJVMLocalObjectMimeType + ";class="
+ ObjectAttributeNode.class.getName(); // NOI18N
final DataFlavor dataFlavor = new DataFlavor(mimeType);
dataFlavor.setHumanPresentableName("a ObjectAttributeNode"); // NOI18N
dataFlavors[0] = dataFlavor;
} catch (ClassNotFoundException cnfe) {
Logger.getLogger(AttributeNodeTransferable.class)
.error("getTransferDataFlavors() could not create DnD data flavours", cnfe); // NOI18N
dataFlavors = new DataFlavor[0];
}
}
return dataFlavors;
}
@Override
public boolean isDataFlavorSupported(final DataFlavor flavor) {
if ((getTransferDataFlavors().length > 0) && dataFlavors[0].equals(flavor)) {
return true;
}
return false;
}
/**
* Getter for property transferAction.
*
* @return Value of property transferAction.
*/
@Override
public int getTransferAction() {
return this.transferAction;
}
/**
* Setter for property transferAction.
*
* @param transferAction New value of property transferAction.
*/
@Override
public void setTransferAction(final int transferAction) {
this.transferAction = transferAction;
}
}