# HG changeset patch # User Jacob Carlborg # Date 1230731280 -3600 # Node ID 6b8fcfda8b578e15b06c60d2d6c41709a3fc1001 # Parent ed7dd292bfb3c3829d8d4619aae2522e1b57e3f6 Ported dwt.dnd.RTFTransfer diff -r ed7dd292bfb3 -r 6b8fcfda8b57 dwt/dnd/RTFTransfer.d --- a/dwt/dnd/RTFTransfer.d Wed Dec 31 14:43:40 2008 +0100 +++ b/dwt/dnd/RTFTransfer.d Wed Dec 31 14:48:00 2008 +0100 @@ -7,6 +7,9 @@ * * Contributors: * IBM Corporation - initial API and implementation + * + * Port to the D programming language: + * Jacob Carlborg *******************************************************************************/ module dwt.dnd.RTFTransfer; @@ -15,6 +18,10 @@ import dwt.internal.cocoa.NSString; import dwt.internal.cocoa.OS; +import dwt.dnd.ByteArrayTransfer; +import dwt.dnd.DND; +import dwt.dnd.TransferData; + /** * The class RTFTransfer provides a platform specific mechanism * for converting text in RTF format represented as a java String @@ -29,13 +36,20 @@ * * @see Transfer */ -public class RTFTransfer extends ByteArrayTransfer { +public class RTFTransfer : ByteArrayTransfer { - static RTFTransfer _instance = new RTFTransfer(); - static final String RTF = OS.NSRTFPboardType.getString(); - static final int RTFID = registerType(RTF); + static RTFTransfer _instance; + static const String RTF; + static const int RTFID; + + static this () + { + _instance = new RTFTransfer(); + RTF = OS.NSRTFPboardType.getString(); + RTFID = registerType(RTF); + } -RTFTransfer() {} +this() {} /** * Returns the singleton instance of the RTFTransfer class. @@ -60,7 +74,7 @@ if (!checkRTF(object) || !isSupportedType(transferData)) { DND.error(DND.ERROR_INVALID_DATA); } - transferData.data = NSString.stringWith((String) object); + transferData.data = NSString.stringWith((cast(ArrayWrapperString) object).array); } /** @@ -75,20 +89,20 @@ */ public Object nativeToJava(TransferData transferData){ if (!isSupportedType(transferData) || transferData.data is null) return null; - NSString string = (NSString) transferData.data; + NSString string = cast(NSString) transferData.data; return string.getString(); } protected int[] getTypeIds() { - return new int[] {RTFID}; + return [RTFID]; } protected String[] getTypeNames() { - return new String[] {RTF}; + return [RTF]; } bool checkRTF(Object object) { - return (object !is null && object instanceof String && ((String)object).length() > 0); + return (object !is null && cast(ArrayWrapperString) object && (cast(ArrayWrapperString) object).array.length() > 0); } protected bool validate(Object object) {