# HG changeset patch # User Jacob Carlborg # Date 1230732047 -3600 # Node ID 2fb76eb49f047bb30c8673e664c43dbaa5012ba7 # Parent 23a31de4a3ab0893d3a8dcabeb761db0946dad95 Ported dwt.dnd.TextTransfer diff -r 23a31de4a3ab -r 2fb76eb49f04 dwt/dnd/TextTransfer.d --- a/dwt/dnd/TextTransfer.d Wed Dec 31 14:57:48 2008 +0100 +++ b/dwt/dnd/TextTransfer.d Wed Dec 31 15:00:47 2008 +0100 @@ -7,6 +7,9 @@ * * Contributors: * IBM Corporation - initial API and implementation + * + * Port to the D programming language: + * Jacob Carlborg *******************************************************************************/ module dwt.dnd.TextTransfer; @@ -14,6 +17,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 TextTransfer provides a platform specific mechanism @@ -29,14 +36,21 @@ * * @see Transfer */ -public class TextTransfer extends ByteArrayTransfer { +public class TextTransfer : ByteArrayTransfer { - static TextTransfer _instance = new TextTransfer(); + static TextTransfer _instance; + + static const String ID_NAME; + static const int ID; - static final String ID_NAME = OS.NSStringPboardType.getString(); - static final int ID = registerType(ID_NAME); + static this () + { + _instance = new TextTransfer(); + ID_NAME = OS.NSStringPboardType.getString(); + ID = registerType(ID_NAME); + } -TextTransfer() {} +this() {} /** * Returns the singleton instance of the TextTransfer class. @@ -61,7 +75,7 @@ if (!checkText(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[] {ID}; + return [ID]; } protected String[] getTypeNames() { - return new String[] {ID_NAME}; + return [ID_NAME]; } bool checkText(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) { return checkText(object);