package name.abuchen.portfolio.ui.views.taxonomy; import java.util.List; import org.eclipse.swt.dnd.ByteArrayTransfer; import org.eclipse.swt.dnd.TransferData; public class TaxonomyNodeTransfer extends ByteArrayTransfer { private static final String TYPE_NAME = "local-taxonomy-node-transfer-format" //$NON-NLS-1$ + (new Long(System.currentTimeMillis())).toString(); private static final int TYPEID = registerType(TYPE_NAME); private static final TaxonomyNodeTransfer INSTANCE = new TaxonomyNodeTransfer(); private List<TaxonomyNode> nodes; protected TaxonomyNodeTransfer() {} public static TaxonomyNodeTransfer getTransfer() { return INSTANCE; } public List<TaxonomyNode> getTaxonomyNodes() { return nodes; } public void setTaxonomyNodes(List<TaxonomyNode> nodes) { this.nodes = nodes; } @Override protected int[] getTypeIds() { return new int[] { TYPEID }; } @Override protected String[] getTypeNames() { return new String[] { TYPE_NAME }; } @Override public void javaToNative(Object object, TransferData transferData) { byte[] check = TYPE_NAME.getBytes(); super.javaToNative(check, transferData); } @Override protected Object nativeToJava(TransferData transferData) { Object result = super.nativeToJava(transferData); if (result instanceof byte[] && TYPE_NAME.equals(new String((byte[]) result))) return nodes; return null; } }