# HG changeset patch # User Jacob Carlborg # Date 1230730850 -3600 # Node ID 6a1ed74f02e8d89ae0d35eb1ed59592146d24894 # Parent 61fdbc24abf24f59900e6c738e440b881c86c93b Ported dwt.dnd.HTMLTransfer diff -r 61fdbc24abf2 -r 6a1ed74f02e8 dwt/dnd/FileTransfer.d --- a/dwt/dnd/FileTransfer.d Wed Dec 31 14:23:11 2008 +0100 +++ b/dwt/dnd/FileTransfer.d Wed Dec 31 14:40:50 2008 +0100 @@ -49,12 +49,13 @@ public class FileTransfer : ByteArrayTransfer { static FileTransfer _instance; - static const String ID_NAME = OS.NSFilenamesPboardType.getString(); + static const String ID_NAME; static const int ID; static this () { _instance = new FileTransfer(); + ID_NAME = OS.NSFilenamesPboardType.getString(); ID = registerType(ID_NAME); } diff -r 61fdbc24abf2 -r 6a1ed74f02e8 dwt/dnd/HTMLTransfer.d --- a/dwt/dnd/HTMLTransfer.d Wed Dec 31 14:23:11 2008 +0100 +++ b/dwt/dnd/HTMLTransfer.d Wed Dec 31 14:40:50 2008 +0100 @@ -7,6 +7,9 @@ * * Contributors: * IBM Corporation - initial API and implementation + * + * Port to the D programming language: + * Jacob Carlborg *******************************************************************************/ module dwt.dnd.HTMLTransfer; @@ -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 HTMLTransfer provides a platform specific mechanism * for converting text in HTML format represented as a java String @@ -29,13 +36,20 @@ * * @see Transfer */ -public class HTMLTransfer extends ByteArrayTransfer { +public class HTMLTransfer : ByteArrayTransfer { - static HTMLTransfer _instance = new HTMLTransfer(); - static final String HTML = OS.NSHTMLPboardType.getString(); - static final int HTMLID = registerType(HTML); + static HTMLTransfer _instance; + static const String HTML; + static const int HTMLID; + + static this () + { + _instance = new HTMLTransfer(); + HTML = OS.NSHTMLPboardType.getString(); + HTMLID = registerType(HTML); + } -HTMLTransfer() {} +this() {} /** * Returns the singleton instance of the HTMLTransfer class. @@ -60,7 +74,7 @@ if (!checkHTML(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; - return string.getString(); + NSString string = cast(NSString) transferData.data; + return new ArrayWrapperString(string.getString()); } protected int[] getTypeIds() { - return new int[] {HTMLID}; + return [HTMLID]; } protected String[] getTypeNames() { - return new String[] {HTML}; + return [HTML]; } bool checkHTML(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) {