changeset 110:2fb76eb49f04

Ported dwt.dnd.TextTransfer
author Jacob Carlborg <doob@me.com>
date Wed, 31 Dec 2008 15:00:47 +0100
parents 23a31de4a3ab
children cbefbb00a6c9
files dwt/dnd/TextTransfer.d
diffstat 1 files changed, 24 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- 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 <doob@me.com>
  *******************************************************************************/
 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 <code>TextTransfer</code> 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);