103 104 if (self != nil) { 105 fChangeCount = [[NSPasteboard generalPasteboard] changeCount]; 106 } 107 108 return self; 109 } 110 111 - (void) javaDeclareTypes:(NSArray *)inTypes withOwner:(jobject)inClipboard jniEnv:(JNIEnv *)inEnv { 112 113 //NSLog(@"CClipboard javaDeclareTypes %@ withOwner", inTypes); 114 115 @synchronized(self) { 116 if (inClipboard != NULL) { 117 if (fClipboardOwner != NULL) { 118 JNFDeleteGlobalRef(inEnv, fClipboardOwner); 119 } 120 fClipboardOwner = JNFNewGlobalRef(inEnv, inClipboard); 121 } 122 } 123 [ThreadUtilities performOnMainThread:@selector(_nativeDeclareTypes:) onObject:self withObject:inTypes waitUntilDone:YES awtMode:YES]; 124 } 125 126 - (void) _nativeDeclareTypes:(NSArray *)inTypes { 127 AWT_ASSERT_APPKIT_THREAD; 128 129 //NSLog(@"CClipboard _nativeDeclareTypes %@ withOwner", inTypes); 130 131 fChangeCount = [[NSPasteboard generalPasteboard] declareTypes:inTypes owner:self]; 132 } 133 134 135 - (NSArray *) javaGetTypes { 136 137 NSMutableArray *args = [NSMutableArray arrayWithCapacity:1]; 138 [ThreadUtilities performOnMainThread:@selector(_nativeGetTypes:) onObject:self withObject:args waitUntilDone:YES awtMode:YES]; 139 140 //NSLog(@"CClipboard getTypes returns %@", [args lastObject]); 141 return [args lastObject]; 142 } 143 144 - (void) _nativeGetTypes:(NSMutableArray *)args { 145 AWT_ASSERT_APPKIT_THREAD; 146 147 [args addObject:[[NSPasteboard generalPasteboard] types]]; 148 149 //NSLog(@"CClipboard getTypes returns %@", [args lastObject]); 150 } 151 152 - (void) javaSetData:(NSData *)inData forType:(NSString *) inFormat { 153 154 CClipboardUpdate *newUpdate = [[CClipboardUpdate alloc] initWithData:inData withFormat:inFormat]; 155 [ThreadUtilities performOnMainThread:@selector(_nativeSetData:) onObject:self withObject:newUpdate waitUntilDone:YES awtMode:YES]; 156 [newUpdate release]; 157 158 //NSLog(@"CClipboard javaSetData forType %@", inFormat); 159 } 160 161 - (void) _nativeSetData:(CClipboardUpdate *)newUpdate { 162 AWT_ASSERT_APPKIT_THREAD; 163 164 [[NSPasteboard generalPasteboard] setData:[newUpdate data] forType:[newUpdate format]]; 165 166 //NSLog(@"CClipboard _nativeSetData setData %@", [newUpdate data]); 167 //NSLog(@"CClipboard _nativeSetData forType %@", [newUpdate format]); 168 } 169 170 - (NSData *) javaGetDataForType:(NSString *) inFormat { 171 172 NSMutableArray *args = [NSMutableArray arrayWithObject:inFormat]; 173 [ThreadUtilities performOnMainThread:@selector(_nativeGetDataForType:) onObject:self withObject:args waitUntilDone:YES awtMode:YES]; 174 175 //NSLog(@"CClipboard javaGetDataForType %@ returns an NSData", inFormat); 176 return [args lastObject]; 177 } 178 179 - (void) _nativeGetDataForType:(NSMutableArray *) args { 180 AWT_ASSERT_APPKIT_THREAD; 181 182 NSData *returnValue = [[NSPasteboard generalPasteboard] dataForType:[args objectAtIndex:0]]; 183 184 if (returnValue) [args replaceObjectAtIndex:0 withObject:returnValue]; 185 else [args removeLastObject]; 186 187 //NSLog(@"CClipboard _nativeGetDataForType"); 188 } 189 190 - (void) checkPasteboard:(id)application { 191 AWT_ASSERT_APPKIT_THREAD; 192 193 //NSLog(@"CClipboard checkPasteboard oldCount %d newCount %d newTypes %@", fChangeCount, [[NSPasteboard generalPasteboard] changeCount], [[NSPasteboard generalPasteboard] types]); | 103 104 if (self != nil) { 105 fChangeCount = [[NSPasteboard generalPasteboard] changeCount]; 106 } 107 108 return self; 109 } 110 111 - (void) javaDeclareTypes:(NSArray *)inTypes withOwner:(jobject)inClipboard jniEnv:(JNIEnv *)inEnv { 112 113 //NSLog(@"CClipboard javaDeclareTypes %@ withOwner", inTypes); 114 115 @synchronized(self) { 116 if (inClipboard != NULL) { 117 if (fClipboardOwner != NULL) { 118 JNFDeleteGlobalRef(inEnv, fClipboardOwner); 119 } 120 fClipboardOwner = JNFNewGlobalRef(inEnv, inClipboard); 121 } 122 } 123 [ThreadUtilities performOnMainThread:@selector(_nativeDeclareTypes:) on:self withObject:inTypes waitUntilDone:YES]; 124 } 125 126 - (void) _nativeDeclareTypes:(NSArray *)inTypes { 127 AWT_ASSERT_APPKIT_THREAD; 128 129 //NSLog(@"CClipboard _nativeDeclareTypes %@ withOwner", inTypes); 130 131 fChangeCount = [[NSPasteboard generalPasteboard] declareTypes:inTypes owner:self]; 132 } 133 134 135 - (NSArray *) javaGetTypes { 136 137 NSMutableArray *args = [NSMutableArray arrayWithCapacity:1]; 138 [ThreadUtilities performOnMainThread:@selector(_nativeGetTypes:) on:self withObject:args waitUntilDone:YES]; 139 140 //NSLog(@"CClipboard getTypes returns %@", [args lastObject]); 141 return [args lastObject]; 142 } 143 144 - (void) _nativeGetTypes:(NSMutableArray *)args { 145 AWT_ASSERT_APPKIT_THREAD; 146 147 [args addObject:[[NSPasteboard generalPasteboard] types]]; 148 149 //NSLog(@"CClipboard getTypes returns %@", [args lastObject]); 150 } 151 152 - (void) javaSetData:(NSData *)inData forType:(NSString *) inFormat { 153 154 CClipboardUpdate *newUpdate = [[CClipboardUpdate alloc] initWithData:inData withFormat:inFormat]; 155 [ThreadUtilities performOnMainThread:@selector(_nativeSetData:) on:self withObject:newUpdate waitUntilDone:YES]; 156 [newUpdate release]; 157 158 //NSLog(@"CClipboard javaSetData forType %@", inFormat); 159 } 160 161 - (void) _nativeSetData:(CClipboardUpdate *)newUpdate { 162 AWT_ASSERT_APPKIT_THREAD; 163 164 [[NSPasteboard generalPasteboard] setData:[newUpdate data] forType:[newUpdate format]]; 165 166 //NSLog(@"CClipboard _nativeSetData setData %@", [newUpdate data]); 167 //NSLog(@"CClipboard _nativeSetData forType %@", [newUpdate format]); 168 } 169 170 - (NSData *) javaGetDataForType:(NSString *) inFormat { 171 172 NSMutableArray *args = [NSMutableArray arrayWithObject:inFormat]; 173 [ThreadUtilities performOnMainThread:@selector(_nativeGetDataForType:) on:self withObject:args waitUntilDone:YES]; 174 175 //NSLog(@"CClipboard javaGetDataForType %@ returns an NSData", inFormat); 176 return [args lastObject]; 177 } 178 179 - (void) _nativeGetDataForType:(NSMutableArray *) args { 180 AWT_ASSERT_APPKIT_THREAD; 181 182 NSData *returnValue = [[NSPasteboard generalPasteboard] dataForType:[args objectAtIndex:0]]; 183 184 if (returnValue) [args replaceObjectAtIndex:0 withObject:returnValue]; 185 else [args removeLastObject]; 186 187 //NSLog(@"CClipboard _nativeGetDataForType"); 188 } 189 190 - (void) checkPasteboard:(id)application { 191 AWT_ASSERT_APPKIT_THREAD; 192 193 //NSLog(@"CClipboard checkPasteboard oldCount %d newCount %d newTypes %@", fChangeCount, [[NSPasteboard generalPasteboard] changeCount], [[NSPasteboard generalPasteboard] types]); |