Mercurial > projects > dwt-mac
changeset 105:6a1ed74f02e8
Ported dwt.dnd.HTMLTransfer
author | Jacob Carlborg <doob@me.com> |
---|---|
date | Wed, 31 Dec 2008 14:40:50 +0100 |
parents | 61fdbc24abf2 |
children | ed7dd292bfb3 |
files | dwt/dnd/FileTransfer.d dwt/dnd/HTMLTransfer.d |
diffstat | 2 files changed, 27 insertions(+), 12 deletions(-) [+] |
line wrap: on
line diff
--- 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); }
--- 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 <doob@me.com> *******************************************************************************/ 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 <code>HTMLTransfer</code> provides a platform specific mechanism * for converting text in HTML format represented as a java <code>String</code> @@ -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) {