comparison dwt/dnd/FileTransfer.d @ 104:61fdbc24abf2

Ported dwt.dnd.FileTransfer
author Jacob Carlborg <doob@me.com>
date Wed, 31 Dec 2008 14:23:11 +0100
parents e655f9f35342
children 6a1ed74f02e8
comparison
equal deleted inserted replaced
103:e655f9f35342 104:61fdbc24abf2
19 import dwt.internal.cocoa.NSArray; 19 import dwt.internal.cocoa.NSArray;
20 import dwt.internal.cocoa.NSMutableArray; 20 import dwt.internal.cocoa.NSMutableArray;
21 import dwt.internal.cocoa.NSString; 21 import dwt.internal.cocoa.NSString;
22 import dwt.internal.cocoa.OS; 22 import dwt.internal.cocoa.OS;
23 23
24 import dwt.dnd.ByteArrayTransfer;
25 import dwt.dnd.DND;
24 import dwt.dnd.TransferData; 26 import dwt.dnd.TransferData;
27 import dwt.internal.objc.cocoa.Cocoa;
25 28
26 /** 29 /**
27 * The class <code>FileTransfer</code> provides a platform specific mechanism 30 * The class <code>FileTransfer</code> provides a platform specific mechanism
28 * for converting a list of files represented as a java <code>String[]</code> to a 31 * for converting a list of files represented as a java <code>String[]</code> to a
29 * platform specific representation of the data and vice versa. 32 * platform specific representation of the data and vice versa.
80 */ 83 */
81 public void javaToNative(Object object, TransferData transferData) { 84 public void javaToNative(Object object, TransferData transferData) {
82 if (!checkFile(object) || !isSupportedType(transferData)) { 85 if (!checkFile(object) || !isSupportedType(transferData)) {
83 DND.error(DND.ERROR_INVALID_DATA); 86 DND.error(DND.ERROR_INVALID_DATA);
84 } 87 }
85 String[] files = (String[])object; 88 String[] files = (cast(ArrayWrapperString2)object).array;
86 int length = files.length; 89 NSUInteger length = files.length;
87 NSMutableArray array = NSMutableArray.arrayWithCapacity(length); 90 NSMutableArray array = NSMutableArray.arrayWithCapacity(length);
88 for (int i = 0; i < length; i++) { 91 for (NSUInteger i = 0; i < length; i++) {
89 String fileName = files[i]; 92 String fileName = files[i];
90 NSString string = NSString.stringWith(fileName); 93 NSString string = NSString.stringWith(fileName);
91 array.addObject(string); 94 array.addObject(string);
92 } 95 }
93 transferData.data = array; 96 transferData.data = array;
103 * 106 *
104 * @see Transfer#javaToNative 107 * @see Transfer#javaToNative
105 */ 108 */
106 public Object nativeToJava(TransferData transferData) { 109 public Object nativeToJava(TransferData transferData) {
107 if (!isSupportedType(transferData) || transferData.data is null) return null; 110 if (!isSupportedType(transferData) || transferData.data is null) return null;
108 NSArray array = (NSArray) transferData.data; 111 NSArray array = cast(NSArray) transferData.data;
109 if (array.count() is 0) return null; 112 if (array.count() is 0) return null;
110 int count = (int)/*64*/array.count(); 113 int count = cast(int)/*64*/array.count();
111 String[] fileNames = new String[count]; 114 String[] fileNames = new String[count];
112 for (int i=0; i<count; i++) { 115 for (int i=0; i<count; i++) {
113 NSString string = new NSString(array.objectAtIndex(i)); 116 NSString string = new NSString(array.objectAtIndex(i));
114 fileNames[i] = string.getString(); 117 fileNames[i] = string.getString();
115 } 118 }
116 return fileNames; 119 return fileNames;
117 } 120 }
118 121
119 protected int[] getTypeIds(){ 122 protected int[] getTypeIds(){
120 return new int[] {ID}; 123 return [ID];
121 } 124 }
122 125
123 protected String[] getTypeNames(){ 126 protected String[] getTypeNames(){
124 return new String[] {ID_NAME}; 127 return [ID_NAME];
125 } 128 }
126 129
127 bool checkFile(Object object) { 130 bool checkFile(Object object) {
128 if (object is null || !(object instanceof String[]) || ((String[])object).length is 0) return false; 131 if (object is null || !(cast(ArrayWrapperString2)object) || (cast(ArrayWrapperString2)object).length is 0) return false;
129 String[] strings = (String[])object; 132 String[] strings = cast(ArrayWrapperString2)object;
130 for (int i = 0; i < strings.length; i++) { 133 for (int i = 0; i < strings.length; i++) {
131 if (strings[i] is null || strings[i].length() is 0) return false; 134 if (strings[i] is null || strings[i].length() is 0) return false;
132 } 135 }
133 return true; 136 return true;
134 } 137 }