changeset 107:6b8fcfda8b57

Ported dwt.dnd.RTFTransfer
author Jacob Carlborg <doob@me.com>
date Wed, 31 Dec 2008 14:48:00 +0100
parents ed7dd292bfb3
children b0e5cad3d928
files dwt/dnd/RTFTransfer.d
diffstat 1 files changed, 24 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/dwt/dnd/RTFTransfer.d	Wed Dec 31 14:43:40 2008 +0100
+++ b/dwt/dnd/RTFTransfer.d	Wed Dec 31 14:48:00 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.RTFTransfer;
 
@@ -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>RTFTransfer</code> provides a platform specific mechanism 
  * for converting text in RTF format represented as a java <code>String</code> 
@@ -29,13 +36,20 @@
  *
  * @see Transfer
  */
-public class RTFTransfer extends ByteArrayTransfer {
+public class RTFTransfer : ByteArrayTransfer {
 
-    static RTFTransfer _instance = new RTFTransfer();
-    static final String RTF = OS.NSRTFPboardType.getString();
-    static final int RTFID = registerType(RTF);
+    static RTFTransfer _instance;
+    static const String RTF;
+    static const int RTFID;
+    
+    static this ()
+    {
+        _instance = new RTFTransfer();
+        RTF = OS.NSRTFPboardType.getString();
+        RTFID = registerType(RTF);
+    }
 
-RTFTransfer() {}
+this() {}
 
 /**
  * Returns the singleton instance of the RTFTransfer class.
@@ -60,7 +74,7 @@
     if (!checkRTF(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[] {RTFID};
+    return [RTFID];
 }
 
 protected String[] getTypeNames() {
-    return new String[] {RTF};
+    return [RTF];
 }
 
 bool checkRTF(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) {