package name.abuchen.portfolio.ui.dnd; import name.abuchen.portfolio.model.Security; import org.eclipse.swt.dnd.ByteArrayTransfer; import org.eclipse.swt.dnd.TransferData; public class SecurityTransfer extends ByteArrayTransfer { private static final String TYPE_NAME = "local-security-transfer-format" + (new Long(System.currentTimeMillis())).toString(); //$NON-NLS-1$; private static final int TYPEID = registerType(TYPE_NAME); private static final SecurityTransfer INSTANCE = new SecurityTransfer(); private Security security; protected SecurityTransfer() {} public static SecurityTransfer getTransfer() { return INSTANCE; } public Security getSecurity() { return security; } public void setSecurity(Security security) { this.security = security; } @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 security; return null; } }