Revision 7cef5633

b/pithos-apple-common
1
Subproject commit 2f816d2a00400b8a2ccd2447872769fb72cc1a89
1
Subproject commit 32017ec6b322f0d29b987d2494e6bc655c67a73a
b/pithos-macos/PithosObjectNode.h
48 48
    
49 49
    ASIPithosObjectRequest *applyMetadataObjectRequest;
50 50
    ASIPithosObjectRequest *refreshMetadataObjectRequest;
51
    ASIPithosObjectRequest *getObjectVersionsRequest;
51 52
    
52 53
    BOOL isPublic;
54
    NSArray *versions;
53 55
}
54 56

  
55 57
- (id)initWithPithos:(ASIPithos *)aPithos 
......
60 62
@property (nonatomic, retain) ASIPithosContainer *pithosContainer;
61 63
@property (nonatomic, retain) ASIPithosObject *pithosObject;
62 64
@property (nonatomic, assign) BOOL isPublic;
65
@property (nonatomic, retain) NSArray *versions;
63 66

  
64 67
- (void)applyInfo;
65 68
- (void)refreshInfo;
66 69
- (void)setLimitedPithosObject:(ASIPithosObject *)aPithosObject;
67 70

  
68
- (NSArray *)getVersions;
69

  
70 71
@end
b/pithos-macos/PithosObjectNode.m
47 47

  
48 48
@implementation PithosObjectNode
49 49
@synthesize pithos, pithosContainer, pithosObject;
50
@synthesize isPublic;
50
@synthesize isPublic, versions;
51 51

  
52 52
#pragma mark -
53 53
#pragma mark Object Lifecycle
......
72 72
    [pithosObject release];
73 73
    [pithosContainer release];
74 74
    [pithos release];
75
    [versions release];
75 76
    [super dealloc];
76 77
}
77 78

  
......
179 180
            [refreshMetadataObjectRequest release];
180 181
            refreshMetadataObjectRequest = nil;
181 182
        }
183
    } else if ([request isEqualTo:getObjectVersionsRequest]) {
184
        [[pithosNodeInfoController window] makeFirstResponder:nil];
185
        self.versions = [getObjectVersionsRequest versions];
186
        @synchronized(self) {
187
            [getObjectVersionsRequest release];
188
            getObjectVersionsRequest = nil;
189
        }
182 190
    }
183 191
    [pool drain];
184 192
}
......
199 207
                [refreshMetadataObjectRequest release];
200 208
                refreshMetadataObjectRequest = newRequest;
201 209
            }
210
        } else if ([request isEqualTo:getObjectVersionsRequest]) {
211
            @synchronized(self) {
212
                [getObjectVersionsRequest release];
213
                getObjectVersionsRequest = newRequest;
214
            }
202 215
        }
203 216
        [[PithosUtilities prepareRequest:newRequest priority:[[newRequest.userInfo objectForKey:@"priority"] integerValue]] startAsynchronous];
204 217
    } else {
......
218 231
                [refreshMetadataObjectRequest release];
219 232
                refreshMetadataObjectRequest = nil;
220 233
            }
234
        } else if ([request isEqualTo:getObjectVersionsRequest]) {
235
            dispatch_async(dispatch_get_main_queue(), ^{
236
                [PithosUtilities httpRequestErrorAlertWithRequest:getObjectVersionsRequest];
237
            });
238
            @synchronized(self) {
239
                [getObjectVersionsRequest release];
240
                getObjectVersionsRequest = nil;
241
            }
221 242
        }
222 243
    }
223 244
    [pool drain];
......
288 309
            refreshMetadataObjectRequest.downloadCache = [ASIDownloadCache sharedCache];
289 310
            [[PithosUtilities prepareRequest:refreshMetadataObjectRequest priority:NSOperationQueuePriorityHigh] startAsynchronous];
290 311
        }
312
        if (getObjectVersionsRequest == nil) {
313
            getObjectVersionsRequest = [[ASIPithosObjectRequest objectVersionsRequestWithPithos:pithos 
314
                                                                                  containerName:pithosContainer.name 
315
                                                                                     objectName:pithosObject.name] retain];
316
            if (sharingAccount)
317
                [getObjectVersionsRequest setRequestUserFromDefaultTo:sharingAccount withPithos:pithos];
318
            getObjectVersionsRequest.delegate = self;
319
            getObjectVersionsRequest.didFinishSelector = @selector(performRequestFinishedDelegateInBackground:);
320
            getObjectVersionsRequest.didFailSelector = @selector(performRequestFailedDelegateInBackground:);
321
            getObjectVersionsRequest.userInfo = [NSMutableDictionary dictionaryWithObjectsAndKeys:
322
                                                     [NSNumber numberWithInteger:NSOperationQueuePriorityHigh], @"priority", 
323
                                                     [NSNumber numberWithUnsignedInteger:10], @"retries", 
324
                                                     NSStringFromSelector(@selector(objectRequestFinished:)), @"didFinishSelector", 
325
                                                     NSStringFromSelector(@selector(objectRequestFailed:)), @"didFailSelector", 
326
                                                     nil];
327
            getObjectVersionsRequest.downloadCache = [ASIDownloadCache sharedCache];
328
            [[PithosUtilities prepareRequest:getObjectVersionsRequest priority:NSOperationQueuePriorityHigh] startAsynchronous];
329
        }
291 330
    }
292 331
}
293 332

  
......
304 343
    [NSApp activateIgnoringOtherApps:YES];
305 344
}
306 345

  
307
- (NSArray *)getVersions {
308
    NSArray *versions = nil;
309
    ASIPithosObjectRequest *getObjectVersionsRequest = [[ASIPithosObjectRequest objectVersionsRequestWithPithos:pithos 
310
                                                                                                  containerName:pithosContainer.name 
311
                                                                                                     objectName:pithosObject.name] retain];
312
    if (sharingAccount)
313
        [getObjectVersionsRequest setRequestUserFromDefaultTo:sharingAccount withPithos:pithos];
314
    [getObjectVersionsRequest startSynchronous];
315
    NSError *error = [getObjectVersionsRequest error];
316
    if (!error) {
317
        versions = [getObjectVersionsRequest versions];
318
    }
319
    [getObjectVersionsRequest release];
320
    return versions;
321
}
322

  
323 346
@end
b/pithos-macos/PithosObjectNodeInfoController.h
37 37

  
38 38
#import <Cocoa/Cocoa.h>
39 39
#import "PithosNodeInfoController.h"
40
#import "PithosObjectNode.h"
41 40
#import "InspectorPane.h"
42 41

  
43 42
@interface PithosObjectNodeInfoController : PithosNodeInfoController {
......
48 47
    IBOutlet InspectorPane *otherMetadataInspectorPane;
49 48
}
50 49

  
51
@property (retain) NSArray *versions;
52

  
53 50
- (id)initWithPithosNode:(PithosNode *)aNode;
54 51

  
55 52
@end
b/pithos-macos/PithosObjectNodeInfoController.m
37 37

  
38 38
#import "PithosObjectNodeInfoController.h"
39 39

  
40
@implementation PithosObjectNodeInfoController
40
@interface InspectorPane (PrivateMadePublic)
41
- (void)toggleCollapsedWithAnimation:(BOOL)animates;
42
@end
41 43

  
42
@synthesize versions;
44
@implementation PithosObjectNodeInfoController
43 45

  
44 46
#pragma mark -
45 47
#pragma Object Lifecycle
......
61 63
    
62 64
    [[self window] setDelegate:self];
63 65
    
64
    [versionsInspectorPane toggleCollapsed:self];
65
    [otherMetadataInspectorPane toggleCollapsed:self];
66
    
67
    // TODO:
68
    // - Release versions when no longer needed.
69
    // - Disable download when no version selected (others shared).
70
    // - Make asynchronous.
71
    // - Hide some inspector panes by default (don't show).
72
    // - Change node and refresh when a new version is selected.
73
    self.versions = [(PithosObjectNode *)self.node getVersions];
74
    NSLog(@"VERSIONS: %@", self.versions);
66
    [versionsInspectorPane toggleCollapsedWithAnimation:NO];
67
    [otherMetadataInspectorPane toggleCollapsedWithAnimation:NO];
75 68
}
76 69

  
77 70
@end
b/pithos-macos/PithosObjectNodeInfoController.xib
3 3
	<data>
4 4
		<int key="IBDocument.SystemTarget">1070</int>
5 5
		<string key="IBDocument.SystemVersion">11D50b</string>
6
		<string key="IBDocument.InterfaceBuilderVersion">2177</string>
6
		<string key="IBDocument.InterfaceBuilderVersion">2182</string>
7 7
		<string key="IBDocument.AppKitVersion">1138.32</string>
8 8
		<string key="IBDocument.HIToolboxVersion">568.00</string>
9 9
		<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
10 10
			<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
11
			<string key="NS.object.0">2177</string>
11
			<string key="NS.object.0">2182</string>
12 12
		</object>
13 13
		<object class="NSArray" key="IBDocument.IntegratedClassDependencies">
14 14
			<bool key="EncodedWithXMLCoder">YES</bool>
......
219 219
											<string key="NSFrame">{{193, 9}, {62, 17}}</string>
220 220
											<reference key="NSSuperview" ref="230060483"/>
221 221
											<reference key="NSWindow"/>
222
											<reference key="NSNextKeyView"/>
222 223
											<bool key="NSEnabled">YES</bool>
223 224
											<object class="NSButtonCell" key="NSCell" id="117901706">
224 225
												<int key="NSCellFlags">-2080244224</int>
......
1384 1385
																	<reference key="NSBackgroundColor" ref="392809818"/>
1385 1386
																	<reference key="NSGridColor" ref="320747002"/>
1386 1387
																	<double key="NSRowHeight">17</double>
1387
																	<int key="NSTvFlags">1656750080</int>
1388
																	<int key="NSTvFlags">1925185536</int>
1388 1389
																	<reference key="NSDelegate"/>
1389 1390
																	<reference key="NSDataSource"/>
1390 1391
																	<int key="NSGridStyleMask">1</int>
......
1863 1864
			<object class="NSArrayController" id="460336703">
1864 1865
				<bool key="NSEditable">YES</bool>
1865 1866
				<object class="_NSManagedProxy" key="_NSManagedProxy"/>
1866
				<bool key="NSAvoidsEmptySelection">YES</bool>
1867 1867
				<bool key="NSPreservesSelection">YES</bool>
1868 1868
				<bool key="NSFilterRestrictsInsertion">YES</bool>
1869 1869
				<bool key="NSClearsFilterPredicateOnInsertion">YES</bool>
......
3310 3310
				</object>
3311 3311
				<object class="IBConnectionRecord">
3312 3312
					<object class="IBBindingConnection" key="connection">
3313
						<string key="label">contentArray: versions</string>
3313
						<string key="label">enabled: selectedObjects.@count</string>
3314
						<reference key="source" ref="469920519"/>
3315
						<reference key="destination" ref="460336703"/>
3316
						<object class="NSNibBindingConnector" key="connector">
3317
							<reference key="NSSource" ref="469920519"/>
3318
							<reference key="NSDestination" ref="460336703"/>
3319
							<string key="NSLabel">enabled: selectedObjects.@count</string>
3320
							<string key="NSBinding">enabled</string>
3321
							<string key="NSKeyPath">selectedObjects.@count</string>
3322
							<int key="NSNibBindingConnectorVersion">2</int>
3323
						</object>
3324
					</object>
3325
					<int key="connectionID">1481</int>
3326
				</object>
3327
				<object class="IBConnectionRecord">
3328
					<object class="IBBindingConnection" key="connection">
3329
						<string key="label">contentArray: node.versions</string>
3314 3330
						<reference key="source" ref="460336703"/>
3315 3331
						<reference key="destination" ref="1001"/>
3316 3332
						<object class="NSNibBindingConnector" key="connector">
3317 3333
							<reference key="NSSource" ref="460336703"/>
3318 3334
							<reference key="NSDestination" ref="1001"/>
3319
							<string key="NSLabel">contentArray: versions</string>
3335
							<string key="NSLabel">contentArray: node.versions</string>
3320 3336
							<string key="NSBinding">contentArray</string>
3321
							<string key="NSKeyPath">versions</string>
3337
							<string key="NSKeyPath">node.versions</string>
3322 3338
							<int key="NSNibBindingConnectorVersion">2</int>
3323 3339
						</object>
3324 3340
					</object>
3325
					<int key="connectionID">1460</int>
3341
					<int key="connectionID">1475</int>
3326 3342
				</object>
3327 3343
			</object>
3328 3344
			<object class="IBMutableOrderedSet" key="objectRecords">
......
4794 4810
				<reference key="dict.values" ref="0"/>
4795 4811
			</object>
4796 4812
			<nil key="sourceID"/>
4797
			<int key="maxID">1474</int>
4813
			<int key="maxID">1481</int>
4798 4814
		</object>
4799 4815
		<object class="IBClassDescriber" key="IBDocument.Classes">
4800 4816
			<object class="NSMutableArray" key="referencedPartialClassDescriptions">
b/pithos-macos/PithosPreferencesController.xib
3 3
	<data>
4 4
		<int key="IBDocument.SystemTarget">1070</int>
5 5
		<string key="IBDocument.SystemVersion">11D50b</string>
6
		<string key="IBDocument.InterfaceBuilderVersion">2177</string>
6
		<string key="IBDocument.InterfaceBuilderVersion">2182</string>
7 7
		<string key="IBDocument.AppKitVersion">1138.32</string>
8 8
		<string key="IBDocument.HIToolboxVersion">568.00</string>
9 9
		<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
10 10
			<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
11
			<string key="NS.object.0">2177</string>
11
			<string key="NS.object.0">2182</string>
12 12
		</object>
13 13
		<object class="NSArray" key="IBDocument.IntegratedClassDependencies">
14 14
			<bool key="EncodedWithXMLCoder">YES</bool>
......
81 81
											<int key="NSvFlags">256</int>
82 82
											<string key="NSFrameSize">{118, 177}</string>
83 83
											<reference key="NSSuperview" ref="475745140"/>
84
											<reference key="NSWindow"/>
85
											<reference key="NSNextKeyView" ref="366650902"/>
84
											<reference key="NSNextKeyView" ref="316124907"/>
86 85
											<string key="NSReuseIdentifierKey">_NS:1828</string>
87 86
											<bool key="NSEnabled">YES</bool>
88 87
											<object class="NSTableHeaderView" key="NSHeaderView" id="152792208">
......
90 89
												<int key="NSvFlags">256</int>
91 90
												<string key="NSFrameSize">{118, 17}</string>
92 91
												<reference key="NSSuperview" ref="316124907"/>
93
												<reference key="NSWindow"/>
94 92
												<reference key="NSNextKeyView" ref="475745140"/>
95 93
												<string key="NSReuseIdentifierKey">_NS:1830</string>
96 94
												<reference key="NSTableView" ref="260212452"/>
......
191 189
									</object>
192 190
									<string key="NSFrame">{{1, 17}, {118, 177}}</string>
193 191
									<reference key="NSSuperview" ref="419137310"/>
194
									<reference key="NSWindow"/>
195 192
									<reference key="NSNextKeyView" ref="260212452"/>
196 193
									<string key="NSReuseIdentifierKey">_NS:1826</string>
197 194
									<reference key="NSDocView" ref="260212452"/>
......
203 200
									<int key="NSvFlags">-2147483392</int>
204 201
									<string key="NSFrame">{{224, 17}, {15, 102}}</string>
205 202
									<reference key="NSSuperview" ref="419137310"/>
206
									<reference key="NSWindow"/>
207 203
									<reference key="NSNextKeyView" ref="287845150"/>
208 204
									<string key="NSReuseIdentifierKey">_NS:1845</string>
209 205
									<reference key="NSTarget" ref="419137310"/>
......
216 212
									<int key="NSvFlags">-2147483392</int>
217 213
									<string key="NSFrame">{{1, 48.325627356767654}, {82.028970718383789, 15}}</string>
218 214
									<reference key="NSSuperview" ref="419137310"/>
219
									<reference key="NSWindow"/>
220 215
									<reference key="NSNextKeyView" ref="310368570"/>
221 216
									<string key="NSReuseIdentifierKey">_NS:1847</string>
222 217
									<int key="NSsFlags">1</int>
......
233 228
									</object>
234 229
									<string key="NSFrame">{{1, 0}, {118, 17}}</string>
235 230
									<reference key="NSSuperview" ref="419137310"/>
236
									<reference key="NSWindow"/>
237 231
									<reference key="NSNextKeyView" ref="152792208"/>
238 232
									<string key="NSReuseIdentifierKey">_NS:1831</string>
239 233
									<reference key="NSDocView" ref="152792208"/>
......
243 237
							</object>
244 238
							<string key="NSFrame">{{20, 47}, {120, 195}}</string>
245 239
							<reference key="NSSuperview" ref="369507901"/>
246
							<reference key="NSWindow"/>
247
							<reference key="NSNextKeyView" ref="316124907"/>
240
							<reference key="NSNextKeyView" ref="475745140"/>
248 241
							<string key="NSReuseIdentifierKey">_NS:1824</string>
249 242
							<int key="NSsFlags">133682</int>
250 243
							<reference key="NSVScroller" ref="310368570"/>
......
258 251
							<int key="NSvFlags">18</int>
259 252
							<string key="NSFrame">{{147, 37}, {265, 211}}</string>
260 253
							<reference key="NSSuperview" ref="369507901"/>
261
							<reference key="NSWindow"/>
262
							<reference key="NSNextKeyView" ref="646624756"/>
263 254
							<string key="NSReuseIdentifierKey">_NS:608</string>
264 255
							<object class="NSMutableArray" key="NSTabViewItems">
265 256
								<bool key="EncodedWithXMLCoder">YES</bool>
......
275 266
												<int key="NSvFlags">268</int>
276 267
												<string key="NSFrame">{{14, 145}, {41, 14}}</string>
277 268
												<reference key="NSSuperview" ref="646624756"/>
278
												<reference key="NSWindow"/>
279 269
												<reference key="NSNextKeyView" ref="96425952"/>
280 270
												<bool key="NSEnabled">YES</bool>
281 271
												<object class="NSTextFieldCell" key="NSCell" id="9695847">
......
299 289
												<int key="NSvFlags">266</int>
300 290
												<string key="NSFrame">{{60, 143}, {168, 19}}</string>
301 291
												<reference key="NSSuperview" ref="646624756"/>
302
												<reference key="NSWindow"/>
303 292
												<reference key="NSNextKeyView" ref="571994001"/>
304 293
												<bool key="NSEnabled">YES</bool>
305 294
												<object class="NSTextFieldCell" key="NSCell" id="34677607">
......
328 317
												<int key="NSvFlags">266</int>
329 318
												<string key="NSFrame">{{60, 85}, {168, 19}}</string>
330 319
												<reference key="NSSuperview" ref="646624756"/>
331
												<reference key="NSWindow"/>
332 320
												<reference key="NSNextKeyView" ref="1017221490"/>
333 321
												<bool key="NSEnabled">YES</bool>
334 322
												<object class="NSTextFieldCell" key="NSCell" id="1001750419">
......
347 335
												<int key="NSvFlags">266</int>
348 336
												<string key="NSFrame">{{60, 58}, {168, 19}}</string>
349 337
												<reference key="NSSuperview" ref="646624756"/>
350
												<reference key="NSWindow"/>
351 338
												<reference key="NSNextKeyView" ref="666198740"/>
352 339
												<bool key="NSEnabled">YES</bool>
353 340
												<object class="NSTextFieldCell" key="NSCell" id="350801514">
......
366 353
												<int key="NSvFlags">268</int>
367 354
												<string key="NSFrame">{{14, 87}, {41, 14}}</string>
368 355
												<reference key="NSSuperview" ref="646624756"/>
369
												<reference key="NSWindow"/>
370 356
												<reference key="NSNextKeyView" ref="287579732"/>
371 357
												<bool key="NSEnabled">YES</bool>
372 358
												<object class="NSTextFieldCell" key="NSCell" id="993321662">
......
385 371
												<int key="NSvFlags">268</int>
386 372
												<string key="NSFrame">{{14, 60}, {41, 14}}</string>
387 373
												<reference key="NSSuperview" ref="646624756"/>
388
												<reference key="NSWindow"/>
389 374
												<reference key="NSNextKeyView" ref="773004803"/>
390 375
												<bool key="NSEnabled">YES</bool>
391 376
												<object class="NSTextFieldCell" key="NSCell" id="1037784646">
......
404 389
												<int key="NSvFlags">268</int>
405 390
												<string key="NSFrame">{{14, 112}, {86, 14}}</string>
406 391
												<reference key="NSSuperview" ref="646624756"/>
407
												<reference key="NSWindow"/>
408 392
												<reference key="NSNextKeyView" ref="507142965"/>
409 393
												<bool key="NSEnabled">YES</bool>
410 394
												<object class="NSTextFieldCell" key="NSCell" id="784421446">
......
423 407
												<int key="NSvFlags">-2147483634</int>
424 408
												<string key="NSFrame">{{-3, 132}, {251, 5}}</string>
425 409
												<reference key="NSSuperview" ref="646624756"/>
426
												<reference key="NSWindow"/>
427 410
												<reference key="NSNextKeyView" ref="992895966"/>
428 411
												<string key="NSOffsets">{0, 0}</string>
429 412
												<object class="NSTextFieldCell" key="NSTitleCell">
......
447 430
												<int key="NSvFlags">268</int>
448 431
												<string key="NSFrame">{{57, 34}, {63, 18}}</string>
449 432
												<reference key="NSSuperview" ref="646624756"/>
450
												<reference key="NSWindow"/>
451 433
												<reference key="NSNextKeyView" ref="764785507"/>
452 434
												<bool key="NSEnabled">YES</bool>
453 435
												<object class="NSButtonCell" key="NSCell" id="269907300">
......
476 458
												<int key="NSvFlags">289</int>
477 459
												<string key="NSFrame">{{161, 4}, {72, 28}}</string>
478 460
												<reference key="NSSuperview" ref="646624756"/>
479
												<reference key="NSWindow"/>
480
												<reference key="NSNextKeyView"/>
481 461
												<bool key="NSEnabled">YES</bool>
482 462
												<object class="NSButtonCell" key="NSCell" id="950873176">
483 463
													<int key="NSCellFlags">-2080244224</int>
......
503 483
												<int key="NSvFlags">289</int>
504 484
												<string key="NSFrame">{{91, 4}, {72, 28}}</string>
505 485
												<reference key="NSSuperview" ref="646624756"/>
506
												<reference key="NSWindow"/>
507 486
												<reference key="NSNextKeyView" ref="750494034"/>
508 487
												<bool key="NSEnabled">YES</bool>
509 488
												<object class="NSButtonCell" key="NSCell" id="327493266">
......
524 503
										</object>
525 504
										<string key="NSFrame">{{10, 33}, {245, 165}}</string>
526 505
										<reference key="NSSuperview" ref="247568729"/>
527
										<reference key="NSWindow"/>
528 506
										<reference key="NSNextKeyView" ref="1055886655"/>
529 507
										<string key="NSReuseIdentifierKey">_NS:610</string>
530 508
									</object>
......
713 691
																<int key="NSvFlags">4352</int>
714 692
																<string key="NSFrameSize">{103, 78}</string>
715 693
																<reference key="NSSuperview" ref="748581994"/>
716
																<reference key="NSNextKeyView" ref="613407224"/>
694
																<reference key="NSNextKeyView" ref="881351662"/>
717 695
																<bool key="NSEnabled">YES</bool>
718 696
																<object class="NSTableHeaderView" key="NSHeaderView" id="94922151">
719 697
																	<reference key="NSNextResponder" ref="5455797"/>
......
822 800
												</object>
823 801
												<string key="NSFrame">{{17, 66}, {105, 96}}</string>
824 802
												<reference key="NSSuperview" ref="635100516"/>
825
												<reference key="NSNextKeyView" ref="881351662"/>
803
												<reference key="NSNextKeyView" ref="748581994"/>
826 804
												<int key="NSsFlags">133682</int>
827 805
												<reference key="NSVScroller" ref="881351662"/>
828 806
												<reference key="NSHScroller" ref="613407224"/>
......
845 823
																<int key="NSvFlags">4352</int>
846 824
																<string key="NSFrameSize">{103, 78}</string>
847 825
																<reference key="NSSuperview" ref="441382477"/>
848
																<reference key="NSNextKeyView" ref="79495429"/>
826
																<reference key="NSNextKeyView" ref="176697034"/>
849 827
																<bool key="NSEnabled">YES</bool>
850 828
																<object class="NSTableHeaderView" key="NSHeaderView" id="459733499">
851 829
																	<reference key="NSNextResponder" ref="302523439"/>
......
954 932
												</object>
955 933
												<string key="NSFrame">{{123, 66}, {105, 96}}</string>
956 934
												<reference key="NSSuperview" ref="635100516"/>
957
												<reference key="NSNextKeyView" ref="176697034"/>
935
												<reference key="NSNextKeyView" ref="441382477"/>
958 936
												<int key="NSsFlags">133682</int>
959 937
												<reference key="NSVScroller" ref="176697034"/>
960 938
												<reference key="NSHScroller" ref="79495429"/>
......
1124 1102
							<int key="NSvFlags">292</int>
1125 1103
							<string key="NSFrame">{{20, 19}, {20, 20}}</string>
1126 1104
							<reference key="NSSuperview" ref="369507901"/>
1127
							<reference key="NSWindow"/>
1128 1105
							<reference key="NSNextKeyView" ref="862152318"/>
1129 1106
							<string key="NSReuseIdentifierKey">_NS:2510</string>
1130 1107
							<bool key="NSEnabled">YES</bool>
......
1149 1126
							<int key="NSvFlags">292</int>
1150 1127
							<string key="NSFrame">{{39, 19}, {20, 20}}</string>
1151 1128
							<reference key="NSSuperview" ref="369507901"/>
1152
							<reference key="NSWindow"/>
1153 1129
							<reference key="NSNextKeyView" ref="247568729"/>
1154 1130
							<string key="NSReuseIdentifierKey">_NS:2510</string>
1155 1131
							<bool key="NSEnabled">YES</bool>
......
1172 1148
					</object>
1173 1149
					<string key="NSFrameSize">{425, 262}</string>
1174 1150
					<reference key="NSSuperview"/>
1175
					<reference key="NSWindow"/>
1176 1151
					<reference key="NSNextKeyView" ref="419137310"/>
1177 1152
				</object>
1178 1153
				<string key="NSScreenRect">{{0, 0}, {1280, 778}}</string>
......
2973 2948
			<nil key="sourceID"/>
2974 2949
			<int key="maxID">865</int>
2975 2950
		</object>
2976
		<object class="IBClassDescriber" key="IBDocument.Classes">
2977
			<object class="NSMutableArray" key="referencedPartialClassDescriptions">
2978
				<bool key="EncodedWithXMLCoder">YES</bool>
2979
				<object class="IBPartialClassDescription">
2980
					<string key="className">GroupAndGroupMemberFormatter</string>
2981
					<string key="superclassName">NSFormatter</string>
2982
					<object class="IBClassDescriptionSource" key="sourceIdentifier">
2983
						<string key="majorKey">IBProjectSource</string>
2984
						<string key="minorKey">./Classes/GroupAndGroupMemberFormatter.h</string>
2985
					</object>
2986
				</object>
2987
				<object class="IBPartialClassDescription">
2988
					<string key="className">NonEmptyStringFormatter</string>
2989
					<string key="superclassName">NSFormatter</string>
2990
					<object class="IBClassDescriptionSource" key="sourceIdentifier">
2991
						<string key="majorKey">IBProjectSource</string>
2992
						<string key="minorKey">./Classes/NonEmptyStringFormatter.h</string>
2993
					</object>
2994
				</object>
2995
				<object class="IBPartialClassDescription">
2996
					<string key="className">PithosBrowserController</string>
2997
					<string key="superclassName">NSWindowController</string>
2998
					<object class="NSMutableDictionary" key="actions">
2999
						<bool key="EncodedWithXMLCoder">YES</bool>
3000
						<object class="NSArray" key="dict.sortedKeys">
3001
							<bool key="EncodedWithXMLCoder">YES</bool>
3002
							<string>forceRefresh:</string>
3003
							<string>refresh:</string>
3004
						</object>
3005
						<object class="NSArray" key="dict.values">
3006
							<bool key="EncodedWithXMLCoder">YES</bool>
3007
							<string>id</string>
3008
							<string>id</string>
3009
						</object>
3010
					</object>
3011
					<object class="NSMutableDictionary" key="actionInfosByName">
3012
						<bool key="EncodedWithXMLCoder">YES</bool>
3013
						<object class="NSArray" key="dict.sortedKeys">
3014
							<bool key="EncodedWithXMLCoder">YES</bool>
3015
							<string>forceRefresh:</string>
3016
							<string>refresh:</string>
3017
						</object>
3018
						<object class="NSArray" key="dict.values">
3019
							<bool key="EncodedWithXMLCoder">YES</bool>
3020
							<object class="IBActionInfo">
3021
								<string key="name">forceRefresh:</string>
3022
								<string key="candidateClassName">id</string>
3023
							</object>
3024
							<object class="IBActionInfo">
3025
								<string key="name">refresh:</string>
3026
								<string key="candidateClassName">id</string>
3027
							</object>
3028
						</object>
3029
					</object>
3030
					<object class="NSMutableDictionary" key="outlets">
3031
						<bool key="EncodedWithXMLCoder">YES</bool>
3032
						<object class="NSArray" key="dict.sortedKeys">
3033
							<bool key="EncodedWithXMLCoder">YES</bool>
3034
							<string>activityProgressIndicator</string>
3035
							<string>activityTextField</string>
3036
							<string>browser</string>
3037
							<string>browserMenu</string>
3038
							<string>horizontalSplitView</string>
3039
							<string>leftBottomView</string>
3040
							<string>leftTopView</string>
3041
							<string>outlineView</string>
3042
							<string>outlineViewMenu</string>
3043
							<string>verticalSplitView</string>
3044
						</object>
3045
						<object class="NSArray" key="dict.values">
3046
							<bool key="EncodedWithXMLCoder">YES</bool>
3047
							<string>NSProgressIndicator</string>
3048
							<string>NSTextField</string>
3049
							<string>NSBrowser</string>
3050
							<string>NSMenu</string>
3051
							<string>NSSplitView</string>
3052
							<string>NSView</string>
3053
							<string>NSView</string>
3054
							<string>NSOutlineView</string>
3055
							<string>NSMenu</string>
3056
							<string>NSSplitView</string>
3057
						</object>
3058
					</object>
3059
					<object class="NSMutableDictionary" key="toOneOutletInfosByName">
3060
						<bool key="EncodedWithXMLCoder">YES</bool>
3061
						<object class="NSArray" key="dict.sortedKeys">
3062
							<bool key="EncodedWithXMLCoder">YES</bool>
3063
							<string>activityProgressIndicator</string>
3064
							<string>activityTextField</string>
3065
							<string>browser</string>
3066
							<string>browserMenu</string>
3067
							<string>horizontalSplitView</string>
3068
							<string>leftBottomView</string>
3069
							<string>leftTopView</string>
3070
							<string>outlineView</string>
3071
							<string>outlineViewMenu</string>
3072
							<string>verticalSplitView</string>
3073
						</object>
3074
						<object class="NSArray" key="dict.values">
3075
							<bool key="EncodedWithXMLCoder">YES</bool>
3076
							<object class="IBToOneOutletInfo">
3077
								<string key="name">activityProgressIndicator</string>
3078
								<string key="candidateClassName">NSProgressIndicator</string>
3079
							</object>
3080
							<object class="IBToOneOutletInfo">
3081
								<string key="name">activityTextField</string>
3082
								<string key="candidateClassName">NSTextField</string>
3083
							</object>
3084
							<object class="IBToOneOutletInfo">
3085
								<string key="name">browser</string>
3086
								<string key="candidateClassName">NSBrowser</string>
3087
							</object>
3088
							<object class="IBToOneOutletInfo">
3089
								<string key="name">browserMenu</string>
3090
								<string key="candidateClassName">NSMenu</string>
3091
							</object>
3092
							<object class="IBToOneOutletInfo">
3093
								<string key="name">horizontalSplitView</string>
3094
								<string key="candidateClassName">NSSplitView</string>
3095
							</object>
3096
							<object class="IBToOneOutletInfo">
3097
								<string key="name">leftBottomView</string>
3098
								<string key="candidateClassName">NSView</string>
3099
							</object>
3100
							<object class="IBToOneOutletInfo">
3101
								<string key="name">leftTopView</string>
3102
								<string key="candidateClassName">NSView</string>
3103
							</object>
3104
							<object class="IBToOneOutletInfo">
3105
								<string key="name">outlineView</string>
3106
								<string key="candidateClassName">NSOutlineView</string>
3107
							</object>
3108
							<object class="IBToOneOutletInfo">
3109
								<string key="name">outlineViewMenu</string>
3110
								<string key="candidateClassName">NSMenu</string>
3111
							</object>
3112
							<object class="IBToOneOutletInfo">
3113
								<string key="name">verticalSplitView</string>
3114
								<string key="candidateClassName">NSSplitView</string>
3115
							</object>
3116
						</object>
3117
					</object>
3118
					<object class="IBClassDescriptionSource" key="sourceIdentifier">
3119
						<string key="majorKey">IBProjectSource</string>
3120
						<string key="minorKey">./Classes/PithosBrowserController.h</string>
3121
					</object>
3122
				</object>
3123
				<object class="IBPartialClassDescription">
3124
					<string key="className">PithosPreferencesController</string>
3125
					<string key="superclassName">NSWindowController</string>
3126
					<object class="NSMutableDictionary" key="actions">
3127
						<bool key="EncodedWithXMLCoder">YES</bool>
3128
						<object class="NSArray" key="dict.sortedKeys">
3129
							<bool key="EncodedWithXMLCoder">YES</bool>
3130
							<string>addAccount:</string>
3131
							<string>groupsApply:</string>
3132
							<string>groupsRevert:</string>
3133
							<string>login:</string>
3134
							<string>loginCancel:</string>
3135
							<string>removeAccount:</string>
3136
							<string>syncApply:</string>
3137
							<string>syncCancel:</string>
3138
						</object>
3139
						<object class="NSArray" key="dict.values">
3140
							<bool key="EncodedWithXMLCoder">YES</bool>
3141
							<string>id</string>
3142
							<string>id</string>
3143
							<string>id</string>
3144
							<string>id</string>
3145
							<string>id</string>
3146
							<string>id</string>
3147
							<string>id</string>
3148
							<string>id</string>
3149
						</object>
3150
					</object>
3151
					<object class="NSMutableDictionary" key="actionInfosByName">
3152
						<bool key="EncodedWithXMLCoder">YES</bool>
3153
						<object class="NSArray" key="dict.sortedKeys">
3154
							<bool key="EncodedWithXMLCoder">YES</bool>
3155
							<string>addAccount:</string>
3156
							<string>groupsApply:</string>
3157
							<string>groupsRevert:</string>
3158
							<string>login:</string>
3159
							<string>loginCancel:</string>
3160
							<string>removeAccount:</string>
3161
							<string>syncApply:</string>
3162
							<string>syncCancel:</string>
3163
						</object>
3164
						<object class="NSArray" key="dict.values">
3165
							<bool key="EncodedWithXMLCoder">YES</bool>
3166
							<object class="IBActionInfo">
3167
								<string key="name">addAccount:</string>
3168
								<string key="candidateClassName">id</string>
3169
							</object>
3170
							<object class="IBActionInfo">
3171
								<string key="name">groupsApply:</string>
3172
								<string key="candidateClassName">id</string>
3173
							</object>
3174
							<object class="IBActionInfo">
3175
								<string key="name">groupsRevert:</string>
3176
								<string key="candidateClassName">id</string>
3177
							</object>
3178
							<object class="IBActionInfo">
3179
								<string key="name">login:</string>
3180
								<string key="candidateClassName">id</string>
3181
							</object>
3182
							<object class="IBActionInfo">
3183
								<string key="name">loginCancel:</string>
3184
								<string key="candidateClassName">id</string>
3185
							</object>
3186
							<object class="IBActionInfo">
3187
								<string key="name">removeAccount:</string>
3188
								<string key="candidateClassName">id</string>
3189
							</object>
3190
							<object class="IBActionInfo">
3191
								<string key="name">syncApply:</string>
3192
								<string key="candidateClassName">id</string>
3193
							</object>
3194
							<object class="IBActionInfo">
3195
								<string key="name">syncCancel:</string>
3196
								<string key="candidateClassName">id</string>
3197
							</object>
3198
						</object>
3199
					</object>
3200
					<object class="NSMutableDictionary" key="outlets">
3201
						<bool key="EncodedWithXMLCoder">YES</bool>
3202
						<object class="NSArray" key="dict.sortedKeys">
3203
							<bool key="EncodedWithXMLCoder">YES</bool>
3204
							<string>accountsArrayController</string>
3205
							<string>groupsDictionaryController</string>
3206
							<string>pithosBrowserController</string>
3207
							<string>selectedGroupMembersDictionaryController</string>
3208
						</object>
3209
						<object class="NSArray" key="dict.values">
3210
							<bool key="EncodedWithXMLCoder">YES</bool>
3211
							<string>NSArrayController</string>
3212
							<string>NSDictionaryController</string>
3213
							<string>PithosBrowserController</string>
3214
							<string>NSDictionaryController</string>
3215
						</object>
3216
					</object>
3217
					<object class="NSMutableDictionary" key="toOneOutletInfosByName">
3218
						<bool key="EncodedWithXMLCoder">YES</bool>
3219
						<object class="NSArray" key="dict.sortedKeys">
3220
							<bool key="EncodedWithXMLCoder">YES</bool>
3221
							<string>accountsArrayController</string>
3222
							<string>groupsDictionaryController</string>
3223
							<string>pithosBrowserController</string>
3224
							<string>selectedGroupMembersDictionaryController</string>
3225
						</object>
3226
						<object class="NSArray" key="dict.values">
3227
							<bool key="EncodedWithXMLCoder">YES</bool>
3228
							<object class="IBToOneOutletInfo">
3229
								<string key="name">accountsArrayController</string>
3230
								<string key="candidateClassName">NSArrayController</string>
3231
							</object>
3232
							<object class="IBToOneOutletInfo">
3233
								<string key="name">groupsDictionaryController</string>
3234
								<string key="candidateClassName">NSDictionaryController</string>
3235
							</object>
3236
							<object class="IBToOneOutletInfo">
3237
								<string key="name">pithosBrowserController</string>
3238
								<string key="candidateClassName">PithosBrowserController</string>
3239
							</object>
3240
							<object class="IBToOneOutletInfo">
3241
								<string key="name">selectedGroupMembersDictionaryController</string>
3242
								<string key="candidateClassName">NSDictionaryController</string>
3243
							</object>
3244
						</object>
3245
					</object>
3246
					<object class="IBClassDescriptionSource" key="sourceIdentifier">
3247
						<string key="majorKey">IBProjectSource</string>
3248
						<string key="minorKey">./Classes/PithosPreferencesController.h</string>
3249
					</object>
3250
				</object>
3251
			</object>
3252
		</object>
2951
		<object class="IBClassDescriber" key="IBDocument.Classes"/>
3253 2952
		<int key="IBDocument.localizationMode">0</int>
3254 2953
		<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaFramework</string>
3255 2954
		<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">

Also available in: Unified diff