Mercurial > projects > dwt-mac
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 } |