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) {