/*
* Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
* ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*/
package javafx.embed.swt;
import java.nio.
ByteBuffer;
import javafx.beans.
NamedArg;
import org.
eclipse.
swt.
dnd.
ByteArrayTransfer;
import org.
eclipse.
swt.
dnd.
DND;
import org.
eclipse.
swt.
dnd.
TransferData;
/**
* @since JavaFX 2.2
*
* @treatAsPrivate implementation detail
* @deprecated This is an internal API that is not intended for use and will be removed in the next version
*/
@
Deprecated
public class
CustomTransfer extends
ByteArrayTransfer {
private
String name,
mime;
public
CustomTransfer (@
NamedArg("name")
String name, @
NamedArg("mime")
String mime) {
this.
name =
name;
this.
mime =
mime;
}
public
String getName () {
return
name;
}
public
String getMime () {
return
mime;
}
public void javaToNative (
Object object,
TransferData transferData) {
if (!
checkCustom(
object) || !
isSupportedType(
transferData)) {
DND.
error(
DND.
ERROR_INVALID_DATA);
}
byte []
bytes = null;
if (
object instanceof
ByteBuffer) {
bytes = ((
ByteBuffer)
object).
array();
} else {
if (
object instanceof byte [])
bytes = (byte [])
object;
}
if (
bytes == null)
DND.
error(
DND.
ERROR_INVALID_DATA);
super.
javaToNative(
bytes,
transferData);
}
public
Object nativeToJava(
TransferData transferData){
if (
isSupportedType(
transferData)) {
return super.
nativeToJava(
transferData);
}
return null;
}
protected
String[]
getTypeNames(){
return new
String [] {
name};
}
protected int[]
getTypeIds(){
return new int [] {
registerType(
name)};
}
boolean
checkByteArray(
Object object) {
return (
object != null &&
object instanceof byte[] && ((byte[])
object).length > 0);
}
boolean
checkByteBuffer(
Object object) {
return (
object != null &&
object instanceof
ByteBuffer && ((
ByteBuffer)
object).
limit() > 0);
}
boolean
checkCustom(
Object object) {
return
checkByteArray(
object) ||
checkByteBuffer(
object);
}
protected boolean
validate(
Object object) {
return
checkCustom(
object);
}
}