Revision cfc17d33

b/.gitmodules
1 1
[submodule "pithos-apple-common"]
2 2
	path = pithos-apple-common
3 3
	url = https://code.grnet.gr/git/pithos-apple-common
4
[submodule "InspectorKit.framework"]
5
	path = InspectorKit.framework
6
	url = https://github.com/ilg/InspectorKit.framework.git
b/InspectorKit.framework
1
Subproject commit e81454848042432b394e91d798be5593d0722b48
b/pithos-macos.xcodeproj/project.pbxproj
81 81
		61F040F31448547000A0C788 /* FileMD5Hash.c in Sources */ = {isa = PBXBuildFile; fileRef = 61F040F11448547000A0C788 /* FileMD5Hash.c */; };
82 82
		61F04132144DB97200A0C788 /* PithosLocalObjectState.m in Sources */ = {isa = PBXBuildFile; fileRef = 61F040EE144757B500A0C788 /* PithosLocalObjectState.m */; };
83 83
		61F04133144DB97600A0C788 /* PithosSyncDaemon.m in Sources */ = {isa = PBXBuildFile; fileRef = 61F040EA144724F500A0C788 /* PithosSyncDaemon.m */; };
84
		E26038A7150009E400DAC6EB /* InspectorPane.m in Sources */ = {isa = PBXBuildFile; fileRef = E260389C150009E400DAC6EB /* InspectorPane.m */; };
85
		E26038A8150009E400DAC6EB /* InspectorPaneBody.m in Sources */ = {isa = PBXBuildFile; fileRef = E260389E150009E400DAC6EB /* InspectorPaneBody.m */; };
86
		E26038A9150009E400DAC6EB /* InspectorPaneContainer.m in Sources */ = {isa = PBXBuildFile; fileRef = E26038A0150009E400DAC6EB /* InspectorPaneContainer.m */; };
87
		E26038AA150009E400DAC6EB /* InspectorPaneHead.m in Sources */ = {isa = PBXBuildFile; fileRef = E26038A2150009E400DAC6EB /* InspectorPaneHead.m */; };
88
		E26038AB150009E400DAC6EB /* NSBezierPath+StrokeExtensions.m in Sources */ = {isa = PBXBuildFile; fileRef = E26038A4150009E400DAC6EB /* NSBezierPath+StrokeExtensions.m */; };
89
		E26038AC150009E400DAC6EB /* NSWindow+Geometry.m in Sources */ = {isa = PBXBuildFile; fileRef = E26038A6150009E400DAC6EB /* NSWindow+Geometry.m */; };
90
		E26038B215000C4B00DAC6EB /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E26038B115000C4B00DAC6EB /* QuartzCore.framework */; };
84 91
/* End PBXBuildFile section */
85 92

  
86 93
/* Begin PBXFileReference section */
......
225 232
		61F040EE144757B500A0C788 /* PithosLocalObjectState.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PithosLocalObjectState.m; sourceTree = "<group>"; };
226 233
		61F040F11448547000A0C788 /* FileMD5Hash.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = FileMD5Hash.c; path = "pithos-macos/FileMD5Hash.c"; sourceTree = "<group>"; };
227 234
		61F040F21448547000A0C788 /* FileMD5Hash.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FileMD5Hash.h; path = "pithos-macos/FileMD5Hash.h"; sourceTree = "<group>"; };
235
		E260389B150009E400DAC6EB /* InspectorPane.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = InspectorPane.h; path = InspectorKit.framework/InspectorPane.h; sourceTree = "<group>"; };
236
		E260389C150009E400DAC6EB /* InspectorPane.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = InspectorPane.m; path = InspectorKit.framework/InspectorPane.m; sourceTree = "<group>"; };
237
		E260389D150009E400DAC6EB /* InspectorPaneBody.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = InspectorPaneBody.h; path = InspectorKit.framework/InspectorPaneBody.h; sourceTree = "<group>"; };
238
		E260389E150009E400DAC6EB /* InspectorPaneBody.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = InspectorPaneBody.m; path = InspectorKit.framework/InspectorPaneBody.m; sourceTree = "<group>"; };
239
		E260389F150009E400DAC6EB /* InspectorPaneContainer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = InspectorPaneContainer.h; path = InspectorKit.framework/InspectorPaneContainer.h; sourceTree = "<group>"; };
240
		E26038A0150009E400DAC6EB /* InspectorPaneContainer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = InspectorPaneContainer.m; path = InspectorKit.framework/InspectorPaneContainer.m; sourceTree = "<group>"; };
241
		E26038A1150009E400DAC6EB /* InspectorPaneHead.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = InspectorPaneHead.h; path = InspectorKit.framework/InspectorPaneHead.h; sourceTree = "<group>"; };
242
		E26038A2150009E400DAC6EB /* InspectorPaneHead.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = InspectorPaneHead.m; path = InspectorKit.framework/InspectorPaneHead.m; sourceTree = "<group>"; };
243
		E26038A3150009E400DAC6EB /* NSBezierPath+StrokeExtensions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "NSBezierPath+StrokeExtensions.h"; path = "InspectorKit.framework/NSBezierPath+StrokeExtensions.h"; sourceTree = "<group>"; };
244
		E26038A4150009E400DAC6EB /* NSBezierPath+StrokeExtensions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "NSBezierPath+StrokeExtensions.m"; path = "InspectorKit.framework/NSBezierPath+StrokeExtensions.m"; sourceTree = "<group>"; };
245
		E26038A5150009E400DAC6EB /* NSWindow+Geometry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "NSWindow+Geometry.h"; path = "InspectorKit.framework/NSWindow+Geometry.h"; sourceTree = "<group>"; };
246
		E26038A6150009E400DAC6EB /* NSWindow+Geometry.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "NSWindow+Geometry.m"; path = "InspectorKit.framework/NSWindow+Geometry.m"; sourceTree = "<group>"; };
247
		E26038B115000C4B00DAC6EB /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
228 248
/* End PBXFileReference section */
229 249

  
230 250
/* Begin PBXFrameworksBuildPhase section */
......
232 252
			isa = PBXFrameworksBuildPhase;
233 253
			buildActionMask = 2147483647;
234 254
			files = (
255
				E26038B215000C4B00DAC6EB /* QuartzCore.framework in Frameworks */,
235 256
				615615DD140CECDB00017BD4 /* libz.dylib in Frameworks */,
236 257
				610DD35613E6C0A700ED982F /* SystemConfiguration.framework in Frameworks */,
237 258
				610DD35413E6C09100ED982F /* CoreServices.framework in Frameworks */,
......
247 268
			children = (
248 269
				6139837313F01CFC004CE444 /* Utilities */,
249 270
				610DD31A13E6BD4200ED982F /* asi-http-request */,
271
				E26038991500091D00DAC6EB /* InspectorKit Framework */,
250 272
				610DD2FB13E6BB2000ED982F /* pithos-macos */,
251 273
				610DD2F413E6BB2000ED982F /* Frameworks */,
252 274
				610DD2F213E6BB2000ED982F /* Products */,
......
265 287
			isa = PBXGroup;
266 288
			children = (
267 289
				615615DC140CECDB00017BD4 /* libz.dylib */,
290
				E26038B115000C4B00DAC6EB /* QuartzCore.framework */,
268 291
				610DD2F513E6BB2000ED982F /* Cocoa.framework */,
269 292
				610DD35313E6C09100ED982F /* CoreServices.framework */,
270 293
				610DD35513E6C0A700ED982F /* SystemConfiguration.framework */,
......
534 557
			name = PithosNodeInfoControllers;
535 558
			sourceTree = "<group>";
536 559
		};
560
		E26038991500091D00DAC6EB /* InspectorKit Framework */ = {
561
			isa = PBXGroup;
562
			children = (
563
				E26038A3150009E400DAC6EB /* NSBezierPath+StrokeExtensions.h */,
564
				E26038A4150009E400DAC6EB /* NSBezierPath+StrokeExtensions.m */,
565
				E26038A5150009E400DAC6EB /* NSWindow+Geometry.h */,
566
				E26038A6150009E400DAC6EB /* NSWindow+Geometry.m */,
567
				E26038AD150009FE00DAC6EB /* Classes */,
568
			);
569
			name = "InspectorKit Framework";
570
			sourceTree = "<group>";
571
		};
572
		E26038AD150009FE00DAC6EB /* Classes */ = {
573
			isa = PBXGroup;
574
			children = (
575
				E260389B150009E400DAC6EB /* InspectorPane.h */,
576
				E260389C150009E400DAC6EB /* InspectorPane.m */,
577
				E260389D150009E400DAC6EB /* InspectorPaneBody.h */,
578
				E260389E150009E400DAC6EB /* InspectorPaneBody.m */,
579
				E260389F150009E400DAC6EB /* InspectorPaneContainer.h */,
580
				E26038A0150009E400DAC6EB /* InspectorPaneContainer.m */,
581
				E26038A1150009E400DAC6EB /* InspectorPaneHead.h */,
582
				E26038A2150009E400DAC6EB /* InspectorPaneHead.m */,
583
			);
584
			name = Classes;
585
			sourceTree = "<group>";
586
		};
537 587
/* End PBXGroup section */
538 588

  
539 589
/* Begin PBXNativeTarget section */
......
665 715
				613BA8631461520E00FACAA5 /* NonEmptyStringFormatter.m in Sources */,
666 716
				614299A914CEF0E7008D973A /* ASIPithos.m in Sources */,
667 717
				614EEC8414E16EB5009DEFCC /* PithosAccount.m in Sources */,
718
				E26038A7150009E400DAC6EB /* InspectorPane.m in Sources */,
719
				E26038A8150009E400DAC6EB /* InspectorPaneBody.m in Sources */,
720
				E26038A9150009E400DAC6EB /* InspectorPaneContainer.m in Sources */,
721
				E26038AA150009E400DAC6EB /* InspectorPaneHead.m in Sources */,
722
				E26038AB150009E400DAC6EB /* NSBezierPath+StrokeExtensions.m in Sources */,
723
				E26038AC150009E400DAC6EB /* NSWindow+Geometry.m in Sources */,
668 724
			);
669 725
			runOnlyForDeploymentPostprocessing = 0;
670 726
		};
b/pithos-macos/PithosBrowserController.h
128 128
- (void)resetBrowser;
129 129
- (void)startBrowser;
130 130
- (BOOL)operationsPending;
131
- (void)downloadNode:(PithosNode *)node 
132
         toDirectory:(NSString *)dirPath 
133
     withNewFileName:(NSString *)newFileName 
134
             version:(NSString *)version;
131 135

  
132 136
@end
b/pithos-macos/PithosBrowserController.m
806 806
- (NSArray *)browser:(NSBrowser *)aBrowser namesOfPromisedFilesDroppedAtDestination:(NSURL *)dropDestination 
807 807
forDraggedRowsWithIndexes:(NSIndexSet *)rowIndexes inColumn:(NSInteger)column {
808 808
    NSMutableArray *names = [NSMutableArray arrayWithCapacity:[draggedNodes count]];
809
    for (PithosNode *node in draggedNodes) {        
809
    for (PithosNode *node in draggedNodes) {
810
        [names addObject:node.displayName];
810 811
        // If the node is a subdir ask if the whole tree should be downloaded
811 812
        if ([node class] == [PithosSubdirNode class]) {
812 813
            NSAlert *alert = [[[NSAlert alloc] init] autorelease];
......
815 816
            [alert addButtonWithTitle:@"OK"];
816 817
            [alert addButtonWithTitle:@"Cancel"];
817 818
            NSInteger choice = [alert runModal];
818
            if (choice == NSAlertFirstButtonReturn) {
819
                // Operation: Download a subdir node and its descendants
820
                // The resulting ASIPithosObjectRequests are chained through dependencies
821
                __block NSOperation *operation = [NSBlockOperation blockOperationWithBlock:^{
822
                    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
823
                    if (operation.isCancelled) {
824
                        [pool drain];
825
                        return;
826
                    }
827
                    NSArray *objectRequests = [PithosUtilities objectDataRequestsForSubdirWithPithos:pithos 
828
                                                                                       containerName:node.pithosContainer.name 
829
                                                                                          objectName:node.pithosObject.name 
830
                                                                                         toDirectory:[dropDestination path] 
831
                                                                                       checkIfExists:YES 
832
                                                                                      sharingAccount:node.sharingAccount];
833
                    if (!operation.isCancelled && objectRequests) {
834
                        ASIPithosObjectRequest *previousObjectRequest = nil;
835
                        for (__block ASIPithosObjectRequest *objectRequest in objectRequests) {
836
                            if (operation.isCancelled) {
837
                                [pool drain];
838
                                return;
839
                            }
840
                            [names addObject:[objectRequest.userInfo objectForKey:@"fileName"]];
841
                            objectRequest.delegate = self;
842
                            objectRequest.didFinishSelector = @selector(performRequestFinishedDelegateInBackground:);
843
                            objectRequest.didFailSelector = @selector(performRequestFailedDelegateInBackground:);
844
                            NSString *messagePrefix = [NSString stringWithFormat:@"Downloading '%@'", [objectRequest.userInfo objectForKey:@"fileName"]];
845
                            PithosActivity *activity = [activityFacility startActivityWithType:PithosActivityDownload 
846
                                                                                       message:[messagePrefix stringByAppendingString:@" (0%)"]
847
                                                                                    totalBytes:[[objectRequest.userInfo objectForKey:@"bytes"] unsignedIntegerValue] 
848
                                                                                  currentBytes:0];
849
                            dispatch_async(dispatch_get_main_queue(), ^{
850
                                [activityFacility updateActivity:activity withMessage:activity.message];  
851
                            });
852
                            [(NSMutableDictionary *)objectRequest.userInfo addEntriesFromDictionary:
853
                             [NSDictionary dictionaryWithObjectsAndKeys:
854
                              activity, @"activity", 
855
                              [messagePrefix stringByAppendingString:@" (stopped)"], @"stoppedActivityMessage", 
856
                              [messagePrefix stringByAppendingString:@" (failed)"], @"failedActivityMessage", 
857
                              [messagePrefix stringByAppendingString:@" (100%)"], @"finishedActivityMessage", 
858
                              [NSNumber numberWithInteger:NSOperationQueuePriorityNormal], @"priority", 
859
                              [NSNumber numberWithUnsignedInteger:10], @"retries", 
860
                              NSStringFromSelector(@selector(downloadObjectFinished:)), @"didFinishSelector", 
861
                              NSStringFromSelector(@selector(requestFailed:)), @"didFailSelector", 
862
                              downloadNetworkQueue, @"networkQueue", 
863
                              @"download", @"operationType", 
864
                              nil]];
865
                            [objectRequest setBytesReceivedBlock:^(unsigned long long size, unsigned long long total){
866
                                [activityFacility updateActivity:activity 
867
                                                     withMessage:[messagePrefix stringByAppendingFormat:@" (%.0f%%)", (activity.totalBytes ? (100*(activity.currentBytes + size + 0.0)/(activity.totalBytes + 0.0)) : 100)] 
868
                                                      totalBytes:activity.totalBytes 
869
                                                    currentBytes:(activity.currentBytes + size)];
870
                            }];
871
                            if (previousObjectRequest)
872
                                [objectRequest addDependency:previousObjectRequest];
873
                            previousObjectRequest = objectRequest;
874
                            [downloadNetworkQueue addOperation:[PithosUtilities prepareRequest:objectRequest]];
875
                        }
876
                    }
877
                    [pool drain];
878
                }];
879
                [downloadQueue addOperation:operation];
880
            }
819
            if (choice == NSAlertFirstButtonReturn)
820
                [self downloadNode:node toDirectory:[dropDestination path] withNewFileName:nil version:nil];
881 821
        } else {
882
            // Operation: Download an object node
883
            __block NSOperation *operation = [NSBlockOperation blockOperationWithBlock:^{
884
                NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
885
                if (operation.isCancelled) {
886
                    [pool drain];
887
                    return;
888
                }
889
                __block ASIPithosObjectRequest *objectRequest = [PithosUtilities objectDataRequestWithPithos:pithos 
890
                                                                                               containerName:node.pithosContainer.name 
891
                                                                                                  objectName:node.pithosObject.name 
892
                                                                                                 toDirectory:[dropDestination path] 
893
                                                                                               checkIfExists:YES 
894
                                                                                              sharingAccount:node.sharingAccount];
895
                if (!operation.isCancelled && objectRequest) {
896
                    [names addObject:[objectRequest.userInfo objectForKey:@"fileName"]];
897
                    objectRequest.delegate = self;
898
                    objectRequest.didFinishSelector = @selector(performRequestFinishedDelegateInBackground:);
899
                    objectRequest.didFailSelector = @selector(performRequestFailedDelegateInBackground:);
900
                    NSString *messagePrefix = [NSString stringWithFormat:@"Downloading '%@'", [objectRequest.userInfo objectForKey:@"fileName"]];
901
                    PithosActivity *activity = [activityFacility startActivityWithType:PithosActivityDownload 
902
                                                                               message:[messagePrefix stringByAppendingString:@" (0%)"]
903
                                                                            totalBytes:node.pithosObject.bytes 
904
                                                                          currentBytes:0];
905
                    dispatch_async(dispatch_get_main_queue(), ^{
906
                        [activityFacility updateActivity:activity withMessage:activity.message];  
907
                    });
908
                    [(NSMutableDictionary *)objectRequest.userInfo addEntriesFromDictionary:
909
                     [NSDictionary dictionaryWithObjectsAndKeys:
910
                      activity, @"activity", 
911
                      [messagePrefix stringByAppendingString:@" (stopped)"], @"stoppedActivityMessage", 
912
                      [messagePrefix stringByAppendingString:@" (failed)"], @"failedActivityMessage", 
913
                      [messagePrefix stringByAppendingString:@" (100%)"], @"finishedActivityMessage", 
914
                      [NSNumber numberWithInteger:NSOperationQueuePriorityNormal], @"priority", 
915
                      [NSNumber numberWithUnsignedInteger:10], @"retries", 
916
                      NSStringFromSelector(@selector(downloadObjectFinished:)), @"didFinishSelector", 
917
                      NSStringFromSelector(@selector(requestFailed:)), @"didFailSelector", 
918
                      downloadNetworkQueue, @"networkQueue", 
919
                      @"download", @"operationType", 
920
                      nil]];
921
                    [objectRequest setBytesReceivedBlock:^(unsigned long long size, unsigned long long total){
922
                        [activityFacility updateActivity:activity 
923
                                             withMessage:[messagePrefix stringByAppendingFormat:@" (%.0f%%)", (activity.totalBytes ? (100*(activity.currentBytes + size + 0.0)/(activity.totalBytes + 0.0)) : 100)] 
924
                                              totalBytes:activity.totalBytes 
925
                                            currentBytes:(activity.currentBytes + size)];
926
                    }];
927
                    [downloadNetworkQueue addOperation:[PithosUtilities prepareRequest:objectRequest]];
928
                    [pool drain];
929
                }
930
            }];
931
            [downloadQueue addOperation:operation];
822
            [self downloadNode:node toDirectory:[dropDestination path] withNewFileName:nil version:nil];
932 823
        }
933 824
    }
934 825
    return names;
......
1045 936
#pragma mark -
1046 937
#pragma mark Drag and Drop methods
1047 938

  
939
- (void)downloadNode:(PithosNode *)node 
940
         toDirectory:(NSString *)dirPath 
941
     withNewFileName:(NSString *)newFileName 
942
             version:(NSString *)version {
943
    if ([node class] == [PithosSubdirNode class]) {
944
        // XXX newFilename and version are ignored in the case of a subdir node for now
945
        // Operation: Download a subdir node and its descendants
946
        // The resulting ASIPithosObjectRequests are chained through dependencies
947
        __block NSOperation *operation = [NSBlockOperation blockOperationWithBlock:^{
948
            NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
949
            if (operation.isCancelled) {
950
                [pool drain];
951
                return;
952
            }
953
            NSArray *objectRequests = [PithosUtilities objectDataRequestsForSubdirWithPithos:pithos 
954
                                                                               containerName:node.pithosContainer.name 
955
                                                                                  objectName:node.pithosObject.name 
956
                                                                                 toDirectory:dirPath 
957
                                                                               checkIfExists:YES 
958
                                                                              sharingAccount:node.sharingAccount];
959
            if (!operation.isCancelled && objectRequests) {
960
                ASIPithosObjectRequest *previousObjectRequest = nil;
961
                for (__block ASIPithosObjectRequest *objectRequest in objectRequests) {
962
                    if (operation.isCancelled) {
963
                        [pool drain];
964
                        return;
965
                    }
966
                    objectRequest.delegate = self;
967
                    objectRequest.didFinishSelector = @selector(performRequestFinishedDelegateInBackground:);
968
                    objectRequest.didFailSelector = @selector(performRequestFailedDelegateInBackground:);
969
                    NSString *messagePrefix = [NSString stringWithFormat:@"Downloading '%@'", [objectRequest.userInfo objectForKey:@"fileName"]];
970
                    PithosActivity *activity = [activityFacility startActivityWithType:PithosActivityDownload 
971
                                                                               message:[messagePrefix stringByAppendingString:@" (0%)"]
972
                                                                            totalBytes:[[objectRequest.userInfo objectForKey:@"bytes"] unsignedIntegerValue] 
973
                                                                          currentBytes:0];
974
                    dispatch_async(dispatch_get_main_queue(), ^{
975
                        [activityFacility updateActivity:activity withMessage:activity.message];  
976
                    });
977
                    [(NSMutableDictionary *)objectRequest.userInfo addEntriesFromDictionary:
978
                     [NSDictionary dictionaryWithObjectsAndKeys:
979
                      activity, @"activity", 
980
                      [messagePrefix stringByAppendingString:@" (stopped)"], @"stoppedActivityMessage", 
981
                      [messagePrefix stringByAppendingString:@" (failed)"], @"failedActivityMessage", 
982
                      [messagePrefix stringByAppendingString:@" (100%)"], @"finishedActivityMessage", 
983
                      [NSNumber numberWithInteger:NSOperationQueuePriorityNormal], @"priority", 
984
                      [NSNumber numberWithUnsignedInteger:10], @"retries", 
985
                      NSStringFromSelector(@selector(downloadObjectFinished:)), @"didFinishSelector", 
986
                      NSStringFromSelector(@selector(requestFailed:)), @"didFailSelector", 
987
                      downloadNetworkQueue, @"networkQueue", 
988
                      @"download", @"operationType", 
989
                      nil]];
990
                    [objectRequest setBytesReceivedBlock:^(unsigned long long size, unsigned long long total){
991
                        [activityFacility updateActivity:activity 
992
                                             withMessage:[messagePrefix stringByAppendingFormat:@" (%.0f%%)", (activity.totalBytes ? (100*(activity.currentBytes + size + 0.0)/(activity.totalBytes + 0.0)) : 100)] 
993
                                              totalBytes:activity.totalBytes 
994
                                            currentBytes:(activity.currentBytes + size)];
995
                    }];
996
                    if (previousObjectRequest)
997
                        [objectRequest addDependency:previousObjectRequest];
998
                    previousObjectRequest = objectRequest;
999
                    [downloadNetworkQueue addOperation:[PithosUtilities prepareRequest:objectRequest]];
1000
                }
1001
            }
1002
            [pool drain];
1003
        }];
1004
        [downloadQueue addOperation:operation];
1005
    } else if ([node class] == [PithosObjectNode class]) {
1006
        // Operation: Download an object node
1007
        __block NSOperation *operation = [NSBlockOperation blockOperationWithBlock:^{
1008
            NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
1009
            if (operation.isCancelled) {
1010
                [pool drain];
1011
                return;
1012
            }
1013
            __block ASIPithosObjectRequest *objectRequest = [PithosUtilities objectDataRequestWithPithos:pithos 
1014
                                                                                           containerName:node.pithosContainer.name 
1015
                                                                                              objectName:node.pithosObject.name 
1016
                                                                                                 version:version 
1017
                                                                                            toDirectory:dirPath 
1018
                                                                                         withNewFileName:newFileName 
1019
                                                                                           checkIfExists:(version ? NO : YES) 
1020
                                                                                          sharingAccount:node.sharingAccount];
1021
            if (!operation.isCancelled && objectRequest) {
1022
                objectRequest.delegate = self;
1023
                objectRequest.didFinishSelector = @selector(performRequestFinishedDelegateInBackground:);
1024
                objectRequest.didFailSelector = @selector(performRequestFailedDelegateInBackground:);
1025
                NSString *messagePrefix = [NSString stringWithFormat:@"Downloading '%@'", [objectRequest.userInfo objectForKey:@"fileName"]];
1026
                PithosActivity *activity = [activityFacility startActivityWithType:PithosActivityDownload 
1027
                                                                           message:[messagePrefix stringByAppendingString:@" (0%)"]
1028
                                                                        totalBytes:node.pithosObject.bytes 
1029
                                                                      currentBytes:0];
1030
                dispatch_async(dispatch_get_main_queue(), ^{
1031
                    [activityFacility updateActivity:activity withMessage:activity.message];  
1032
                });
1033
                [(NSMutableDictionary *)objectRequest.userInfo addEntriesFromDictionary:
1034
                 [NSDictionary dictionaryWithObjectsAndKeys:
1035
                  activity, @"activity", 
1036
                  [messagePrefix stringByAppendingString:@" (stopped)"], @"stoppedActivityMessage", 
1037
                  [messagePrefix stringByAppendingString:@" (failed)"], @"failedActivityMessage", 
1038
                  [messagePrefix stringByAppendingString:@" (100%)"], @"finishedActivityMessage", 
1039
                  [NSNumber numberWithInteger:NSOperationQueuePriorityNormal], @"priority", 
1040
                  [NSNumber numberWithUnsignedInteger:10], @"retries", 
1041
                  NSStringFromSelector(@selector(downloadObjectFinished:)), @"didFinishSelector", 
1042
                  NSStringFromSelector(@selector(requestFailed:)), @"didFailSelector", 
1043
                  downloadNetworkQueue, @"networkQueue", 
1044
                  @"download", @"operationType", 
1045
                  nil]];
1046
                [objectRequest setBytesReceivedBlock:^(unsigned long long size, unsigned long long total){
1047
                    [activityFacility updateActivity:activity 
1048
                                         withMessage:[messagePrefix stringByAppendingFormat:@" (%.0f%%)", (activity.totalBytes ? (100*(activity.currentBytes + size + 0.0)/(activity.totalBytes + 0.0)) : 100)] 
1049
                                          totalBytes:activity.totalBytes 
1050
                                        currentBytes:(activity.currentBytes + size)];
1051
                }];
1052
                [downloadNetworkQueue addOperation:[PithosUtilities prepareRequest:objectRequest]];
1053
                [pool drain];
1054
            }
1055
        }];
1056
        [downloadQueue addOperation:operation];
1057
    }
1058
}
1059

  
1048 1060
- (BOOL)uploadFiles:(NSArray *)filenames toNode:(PithosNode *)destinationNode {
1049 1061
    if (([destinationNode class] != [PithosSubdirNode class]) && ([destinationNode class] != [PithosContainerNode class]))
1050 1062
        return NO;
......
1677 1689
        NSUInteger totalBytes = activity.totalBytes;
1678 1690
        
1679 1691
        // XXX change contentLength to objectContentLength if it is fixed in the server
1680
        if (([objectRequest contentLength] == 0) && ![PithosUtilities isContentTypeDirectory:[objectRequest contentType]]) {
1692
        if ([objectRequest contentLength] == 0) {
1693
            // The check above was:
1694
            // if (([objectRequest contentLength] == 0) && ![PithosUtilities isContentTypeDirectory:[objectRequest contentType]]) {
1695
            // I checked for directory content types in order not to create a file in place of a directory,
1696
            // but this callback method is not called in the case of a directory download.
1697
            // It maybe the case though, when downloading an old version of an object, is of a directory content type.
1698
            // In this case, a file should be created. This is actually a feature that allows you to hide data in a directory object.
1681 1699
            NSLog(@"Downloaded  0 bytes");
1682 1700
            NSFileManager *fileManager = [NSFileManager defaultManager];
1683 1701
            if (![fileManager fileExistsAtPath:filePath]) {
b/pithos-macos/PithosContainerNodeInfoController.m
2 2
//  PithosContainerNodeInfoController.m
3 3
//  pithos-macos
4 4
//
5
// Copyright 2011 GRNET S.A. All rights reserved.
5
// Copyright 2011-2012 GRNET S.A. All rights reserved.
6 6
//
7 7
// Redistribution and use in source and binary forms, with or
8 8
// without modification, are permitted provided that the following
......
41 41
@synthesize policyVersioningValuesArray;
42 42

  
43 43
#pragma mark -
44
#pragma Object Lifecycle
44
#pragma mark Object Lifecycle
45 45

  
46 46
- (id)initWithPithosNode:(PithosNode *)aNode {
47 47
    if ((self = [super initWithWindowNibName:@"PithosContainerNodeInfoController"])) {
b/pithos-macos/PithosContainerNodeInfoController.xib
1 1
<?xml version="1.0" encoding="UTF-8"?>
2 2
<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.10">
3 3
	<data>
4
		<int key="IBDocument.SystemTarget">1060</int>
5
		<string key="IBDocument.SystemVersion">10K549</string>
6
		<string key="IBDocument.InterfaceBuilderVersion">1306</string>
7
		<string key="IBDocument.AppKitVersion">1038.36</string>
8
		<string key="IBDocument.HIToolboxVersion">461.00</string>
4
		<int key="IBDocument.SystemTarget">1070</int>
5
		<string key="IBDocument.SystemVersion">11D50b</string>
6
		<string key="IBDocument.InterfaceBuilderVersion">2182</string>
7
		<string key="IBDocument.AppKitVersion">1138.32</string>
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">1306</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>
......
20 20
			<string>NSImageView</string>
21 21
			<string>NSImageCell</string>
22 22
			<string>NSTableView</string>
23
			<string>NSCustomView</string>
23 24
			<string>NSTextField</string>
24 25
			<string>NSNumberFormatter</string>
25 26
			<string>NSWindowTemplate</string>
26 27
			<string>NSTextFieldCell</string>
27 28
			<string>NSButtonCell</string>
28 29
			<string>NSTableColumn</string>
29
			<string>NSBox</string>
30
			<string>NSPopUpButtonCell</string>
31 30
			<string>NSView</string>
31
			<string>NSPopUpButtonCell</string>
32 32
			<string>NSDictionaryController</string>
33 33
			<string>NSScrollView</string>
34
			<string>NSUserDefaultsController</string>
35 34
			<string>NSScroller</string>
36 35
			<string>NSTableHeaderView</string>
37 36
			<string>NSPopUpButton</string>
......
41 40
			<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
42 41
		</object>
43 42
		<object class="NSMutableDictionary" key="IBDocument.Metadata">
44
			<bool key="EncodedWithXMLCoder">YES</bool>
45
			<object class="NSArray" key="dict.sortedKeys" id="0">
46
				<bool key="EncodedWithXMLCoder">YES</bool>
47
			</object>
48
			<reference key="dict.values" ref="0"/>
43
			<string key="NS.key.0">PluginDependencyRecalculationVersion</string>
44
			<integer value="1" key="NS.object.0"/>
49 45
		</object>
50 46
		<object class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
51 47
			<bool key="EncodedWithXMLCoder">YES</bool>
......
59 55
				<string key="NSClassName">NSApplication</string>
60 56
			</object>
61 57
			<object class="NSWindowTemplate" id="1005">
62
				<int key="NSWindowStyleMask">15</int>
58
				<int key="NSWindowStyleMask">7</int>
63 59
				<int key="NSWindowBacking">2</int>
64
				<string key="NSWindowRect">{{196, 240}, {265, 412}}</string>
65
				<int key="NSWTFlags">544735232</int>
60
				<string key="NSWindowRect">{{196, 240}, {265, 419}}</string>
61
				<int key="NSWTFlags">544736256</int>
66 62
				<string key="NSWindowTitle">Window</string>
67 63
				<string key="NSWindowClass">NSWindow</string>
68 64
				<nil key="NSViewClass"/>
69
				<string key="NSWindowContentMaxSize">{400, 412}</string>
70
				<string key="NSWindowContentMinSize">{265, 412}</string>
65
				<nil key="NSUserInterfaceItemIdentifier"/>
66
				<string key="NSWindowContentMinSize">{265, 419}</string>
71 67
				<object class="NSView" key="NSWindowView" id="1006">
72 68
					<reference key="NSNextResponder"/>
73 69
					<int key="NSvFlags">256</int>
......
88 84
									<string>NeXT TIFF v4.0 pasteboard type</string>
89 85
								</object>
90 86
							</object>
91
							<string key="NSFrame">{{10, 370}, {32, 32}}</string>
87
							<string key="NSFrame">{{10, 377}, {32, 32}}</string>
92 88
							<reference key="NSSuperview" ref="1006"/>
89
							<reference key="NSWindow"/>
93 90
							<reference key="NSNextKeyView" ref="56844250"/>
94 91
							<bool key="NSEnabled">YES</bool>
95 92
							<object class="NSImageCell" key="NSCell" id="689737374">
......
109 106
						<object class="NSTextField" id="56844250">
110 107
							<reference key="NSNextResponder" ref="1006"/>
111 108
							<int key="NSvFlags">270</int>
112
							<string key="NSFrame">{{47, 387}, {148, 17}}</string>
109
							<string key="NSFrame">{{47, 394}, {148, 17}}</string>
113 110
							<reference key="NSSuperview" ref="1006"/>
111
							<reference key="NSWindow"/>
114 112
							<reference key="NSNextKeyView" ref="335436590"/>
115 113
							<bool key="NSEnabled">YES</bool>
116 114
							<object class="NSTextFieldCell" key="NSCell" id="974224135">
......
146 144
						<object class="NSTextField" id="335436590">
147 145
							<reference key="NSNextResponder" ref="1006"/>
148 146
							<int key="NSvFlags">265</int>
149
							<string key="NSFrame">{{190, 387}, {68, 17}}</string>
147
							<string key="NSFrame">{{190, 394}, {68, 17}}</string>
150 148
							<reference key="NSSuperview" ref="1006"/>
151
							<reference key="NSNextKeyView" ref="773635799"/>
149
							<reference key="NSWindow"/>
150
							<reference key="NSNextKeyView" ref="190817123"/>
152 151
							<bool key="NSEnabled">YES</bool>
153 152
							<object class="NSTextFieldCell" key="NSCell" id="8803370">
154 153
								<int key="NSCellFlags">68288064</int>
......
164 163
								<reference key="NSTextColor" ref="162787576"/>
165 164
							</object>
166 165
						</object>
167
						<object class="NSBox" id="773635799">
168
							<reference key="NSNextResponder" ref="1006"/>
169
							<int key="NSvFlags">14</int>
170
							<string key="NSFrame">{{0, 356}, {265, 5}}</string>
171
							<reference key="NSSuperview" ref="1006"/>
172
							<reference key="NSNextKeyView" ref="67996369"/>
173
							<string key="NSOffsets">{0, 0}</string>
174
							<object class="NSTextFieldCell" key="NSTitleCell">
175
								<int key="NSCellFlags">67239424</int>
176
								<int key="NSCellFlags2">0</int>
177
								<string key="NSContents">Box</string>
178
								<reference key="NSSupport" ref="975572389"/>
179
								<object class="NSColor" key="NSBackgroundColor" id="349501126">
180
									<int key="NSColorSpace">6</int>
181
									<string key="NSCatalogName">System</string>
182
									<string key="NSColorName">textBackgroundColor</string>
183
									<object class="NSColor" key="NSColor" id="392809818">
184
										<int key="NSColorSpace">3</int>
185
										<bytes key="NSWhite">MQA</bytes>
186
									</object>
187
								</object>
188
								<object class="NSColor" key="NSTextColor">
189
									<int key="NSColorSpace">3</int>
190
									<bytes key="NSWhite">MCAwLjgwMDAwMDAxMTkAA</bytes>
191
								</object>
192
							</object>
193
							<int key="NSBorderType">3</int>
194
							<int key="NSBoxType">2</int>
195
							<int key="NSTitlePosition">0</int>
196
							<bool key="NSTransparent">NO</bool>
197
						</object>
198
						<object class="NSTextField" id="67996369">
199
							<reference key="NSNextResponder" ref="1006"/>
200
							<int key="NSvFlags">268</int>
201
							<string key="NSFrame">{{7, 341}, {72, 14}}</string>
202
							<reference key="NSSuperview" ref="1006"/>
203
							<reference key="NSNextKeyView" ref="1042818350"/>
204
							<bool key="NSEnabled">YES</bool>
205
							<object class="NSTextFieldCell" key="NSCell" id="532119727">
206
								<int key="NSCellFlags">68288064</int>
207
								<int key="NSCellFlags2">4195328</int>
208
								<string key="NSContents">General:</string>
209
								<object class="NSFont" key="NSSupport" id="26">
210
									<string key="NSName">LucidaGrande</string>
211
									<double key="NSSize">11</double>
212
									<int key="NSfFlags">3100</int>
213
								</object>
214
								<reference key="NSControlView" ref="67996369"/>
215
								<bool key="NSDrawsBackground">YES</bool>
216
								<reference key="NSBackgroundColor" ref="26777213"/>
217
								<reference key="NSTextColor" ref="162787576"/>
218
							</object>
219
						</object>
220
						<object class="NSTextField" id="860907333">
221
							<reference key="NSNextResponder" ref="1006"/>
222
							<int key="NSvFlags">270</int>
223
							<string key="NSFrame">{{84, 319}, {174, 14}}</string>
224
							<reference key="NSSuperview" ref="1006"/>
225
							<reference key="NSNextKeyView" ref="1059051766"/>
226
							<bool key="NSEnabled">YES</bool>
227
							<object class="NSTextFieldCell" key="NSCell" id="394856129">
228
								<int key="NSCellFlags">67239488</int>
229
								<int key="NSCellFlags2">4196352</int>
230
								<string key="NSContents">Count</string>
231
								<object class="NSFont" key="NSSupport" id="5891854">
232
									<string key="NSName">LucidaGrande</string>
233
									<double key="NSSize">11</double>
234
									<int key="NSfFlags">16</int>
235
								</object>
236
								<reference key="NSControlView" ref="860907333"/>
237
								<reference key="NSBackgroundColor" ref="26777213"/>
238
								<reference key="NSTextColor" ref="162787576"/>
239
							</object>
240
						</object>
241
						<object class="NSTextField" id="626534516">
242
							<reference key="NSNextResponder" ref="1006"/>
243
							<int key="NSvFlags">270</int>
244
							<string key="NSFrame">{{84, 304}, {174, 14}}</string>
245
							<reference key="NSSuperview" ref="1006"/>
246
							<reference key="NSNextKeyView" ref="838884408"/>
247
							<bool key="NSEnabled">YES</bool>
248
							<object class="NSTextFieldCell" key="NSCell" id="303440755">
249
								<int key="NSCellFlags">67239488</int>
250
								<int key="NSCellFlags2">4196352</int>
251
								<string key="NSContents">Size</string>
252
								<reference key="NSSupport" ref="5891854"/>
253
								<reference key="NSControlView" ref="626534516"/>
254
								<reference key="NSBackgroundColor" ref="26777213"/>
255
								<reference key="NSTextColor" ref="162787576"/>
256
							</object>
257
						</object>
258
						<object class="NSTextField" id="886319680">
259
							<reference key="NSNextResponder" ref="1006"/>
260
							<int key="NSvFlags">270</int>
261
							<string key="NSFrame">{{84, 289}, {174, 14}}</string>
262
							<reference key="NSSuperview" ref="1006"/>
263
							<reference key="NSNextKeyView" ref="600006232"/>
264
							<bool key="NSEnabled">YES</bool>
265
							<object class="NSTextFieldCell" key="NSCell" id="999705685">
266
								<int key="NSCellFlags">67239488</int>
267
								<int key="NSCellFlags2">4196352</int>
268
								<string key="NSContents">Modified</string>
269
								<reference key="NSSupport" ref="5891854"/>
270
								<reference key="NSControlView" ref="886319680"/>
271
								<reference key="NSBackgroundColor" ref="26777213"/>
272
								<reference key="NSTextColor" ref="162787576"/>
273
							</object>
274
						</object>
275
						<object class="NSTextField" id="130231867">
276
							<reference key="NSNextResponder" ref="1006"/>
277
							<int key="NSvFlags">270</int>
278
							<string key="NSFrame">{{84, 274}, {174, 14}}</string>
279
							<reference key="NSSuperview" ref="1006"/>
280
							<reference key="NSNextKeyView" ref="390812603"/>
281
							<bool key="NSEnabled">YES</bool>
282
							<object class="NSTextFieldCell" key="NSCell" id="693260766">
283
								<int key="NSCellFlags">67239488</int>
284
								<int key="NSCellFlags2">4196352</int>
285
								<string key="NSContents">Block size</string>
286
								<reference key="NSSupport" ref="5891854"/>
287
								<reference key="NSControlView" ref="130231867"/>
288
								<reference key="NSBackgroundColor" ref="26777213"/>
289
								<reference key="NSTextColor" ref="162787576"/>
290
							</object>
291
						</object>
292
						<object class="NSTextField" id="754158675">
293
							<reference key="NSNextResponder" ref="1006"/>
294
							<int key="NSvFlags">270</int>
295
							<string key="NSFrame">{{84, 259}, {174, 14}}</string>
296
							<reference key="NSSuperview" ref="1006"/>
297
							<reference key="NSNextKeyView" ref="402838882"/>
298
							<bool key="NSEnabled">YES</bool>
299
							<object class="NSTextFieldCell" key="NSCell" id="1061069897">
300
								<int key="NSCellFlags">67239488</int>
301
								<int key="NSCellFlags2">4196352</int>
302
								<string key="NSContents">Block hash</string>
303
								<reference key="NSSupport" ref="5891854"/>
304
								<reference key="NSControlView" ref="754158675"/>
305
								<reference key="NSBackgroundColor" ref="26777213"/>
306
								<reference key="NSTextColor" ref="162787576"/>
307
							</object>
308
						</object>
309
						<object class="NSTextField" id="1042818350">
310
							<reference key="NSNextResponder" ref="1006"/>
311
							<int key="NSvFlags">268</int>
312
							<string key="NSFrame">{{12, 319}, {72, 14}}</string>
313
							<reference key="NSSuperview" ref="1006"/>
314
							<reference key="NSNextKeyView" ref="860907333"/>
315
							<bool key="NSEnabled">YES</bool>
316
							<object class="NSTextFieldCell" key="NSCell" id="997558256">
317
								<int key="NSCellFlags">68288064</int>
318
								<int key="NSCellFlags2">71304192</int>
319
								<string key="NSContents">Count:</string>
320
								<reference key="NSSupport" ref="26"/>
321
								<reference key="NSControlView" ref="1042818350"/>
322
								<bool key="NSDrawsBackground">YES</bool>
323
								<reference key="NSBackgroundColor" ref="26777213"/>
324
								<reference key="NSTextColor" ref="162787576"/>
325
							</object>
326
						</object>
327
						<object class="NSTextField" id="1059051766">
328
							<reference key="NSNextResponder" ref="1006"/>
329
							<int key="NSvFlags">268</int>
330
							<string key="NSFrame">{{12, 304}, {72, 14}}</string>
331
							<reference key="NSSuperview" ref="1006"/>
332
							<reference key="NSNextKeyView" ref="626534516"/>
333
							<bool key="NSEnabled">YES</bool>
334
							<object class="NSTextFieldCell" key="NSCell" id="28801404">
335
								<int key="NSCellFlags">68288064</int>
336
								<int key="NSCellFlags2">71304192</int>
337
								<string key="NSContents">Size:</string>
338
								<reference key="NSSupport" ref="26"/>
339
								<reference key="NSControlView" ref="1059051766"/>
340
								<bool key="NSDrawsBackground">YES</bool>
341
								<reference key="NSBackgroundColor" ref="26777213"/>
342
								<reference key="NSTextColor" ref="162787576"/>
343
							</object>
344
						</object>
345
						<object class="NSTextField" id="838884408">
346
							<reference key="NSNextResponder" ref="1006"/>
347
							<int key="NSvFlags">268</int>
348
							<string key="NSFrame">{{12, 289}, {72, 14}}</string>
349
							<reference key="NSSuperview" ref="1006"/>
350
							<reference key="NSNextKeyView" ref="886319680"/>
351
							<bool key="NSEnabled">YES</bool>
352
							<object class="NSTextFieldCell" key="NSCell" id="13882105">
353
								<int key="NSCellFlags">68288064</int>
354
								<int key="NSCellFlags2">71304192</int>
355
								<string key="NSContents">Modified:</string>
356
								<reference key="NSSupport" ref="26"/>
357
								<reference key="NSControlView" ref="838884408"/>
358
								<bool key="NSDrawsBackground">YES</bool>
359
								<reference key="NSBackgroundColor" ref="26777213"/>
360
								<reference key="NSTextColor" ref="162787576"/>
361
							</object>
362
						</object>
363
						<object class="NSTextField" id="600006232">
364
							<reference key="NSNextResponder" ref="1006"/>
365
							<int key="NSvFlags">268</int>
366
							<string key="NSFrame">{{12, 274}, {72, 14}}</string>
367
							<reference key="NSSuperview" ref="1006"/>
368
							<reference key="NSNextKeyView" ref="130231867"/>
369
							<bool key="NSEnabled">YES</bool>
370
							<object class="NSTextFieldCell" key="NSCell" id="854644441">
371
								<int key="NSCellFlags">68288064</int>
372
								<int key="NSCellFlags2">71304192</int>
373
								<string key="NSContents">Block size:</string>
374
								<reference key="NSSupport" ref="26"/>
375
								<reference key="NSControlView" ref="600006232"/>
376
								<bool key="NSDrawsBackground">YES</bool>
377
								<reference key="NSBackgroundColor" ref="26777213"/>
378
								<reference key="NSTextColor" ref="162787576"/>
379
							</object>
380
						</object>
381
						<object class="NSTextField" id="390812603">
382
							<reference key="NSNextResponder" ref="1006"/>
383
							<int key="NSvFlags">268</int>
384
							<string key="NSFrame">{{12, 259}, {72, 14}}</string>
385
							<reference key="NSSuperview" ref="1006"/>
386
							<reference key="NSNextKeyView" ref="754158675"/>
387
							<bool key="NSEnabled">YES</bool>
388
							<object class="NSTextFieldCell" key="NSCell" id="603172790">
389
								<int key="NSCellFlags">68288064</int>
390
								<int key="NSCellFlags2">71304192</int>
391
								<string key="NSContents">Block hash:</string>
392
								<reference key="NSSupport" ref="26"/>
393
								<reference key="NSControlView" ref="390812603"/>
394
								<bool key="NSDrawsBackground">YES</bool>
395
								<reference key="NSBackgroundColor" ref="26777213"/>
396
								<reference key="NSTextColor" ref="162787576"/>
397
							</object>
398
						</object>
399
						<object class="NSBox" id="402838882">
400
							<reference key="NSNextResponder" ref="1006"/>
401
							<int key="NSvFlags">14</int>
402
							<string key="NSFrame">{{0, 246}, {265, 5}}</string>
403
							<reference key="NSSuperview" ref="1006"/>
404
							<reference key="NSNextKeyView" ref="212288772"/>
405
							<string key="NSOffsets">{0, 0}</string>
406
							<object class="NSTextFieldCell" key="NSTitleCell">
407
								<int key="NSCellFlags">67239424</int>
408
								<int key="NSCellFlags2">0</int>
409
								<string key="NSContents">Box</string>
410
								<reference key="NSSupport" ref="975572389"/>
411
								<reference key="NSBackgroundColor" ref="349501126"/>
412
								<object class="NSColor" key="NSTextColor">
413
									<int key="NSColorSpace">3</int>
414
									<bytes key="NSWhite">MCAwLjgwMDAwMDAxMTkAA</bytes>
415
								</object>
416
							</object>
417
							<int key="NSBorderType">3</int>
418
							<int key="NSBoxType">2</int>
419
							<int key="NSTitlePosition">0</int>
420
							<bool key="NSTransparent">NO</bool>
421
						</object>
422
						<object class="NSTextField" id="212288772">
166
						<object class="NSCustomView" id="190817123">
423 167
							<reference key="NSNextResponder" ref="1006"/>
424 168
							<int key="NSvFlags">268</int>
425
							<string key="NSFrame">{{7, 231}, {72, 14}}</string>
426
							<reference key="NSSuperview" ref="1006"/>
427
							<reference key="NSNextKeyView" ref="290149761"/>
428
							<bool key="NSEnabled">YES</bool>
429
							<object class="NSTextFieldCell" key="NSCell" id="804456721">
430
								<int key="NSCellFlags">68288064</int>
431
								<int key="NSCellFlags2">4195328</int>
432
								<string key="NSContents">Metadata:</string>
433
								<reference key="NSSupport" ref="26"/>
434
								<reference key="NSControlView" ref="212288772"/>
435
								<bool key="NSDrawsBackground">YES</bool>
436
								<reference key="NSBackgroundColor" ref="26777213"/>
437
								<reference key="NSTextColor" ref="162787576"/>
438
							</object>
439
						</object>
440
						<object class="NSScrollView" id="290149761">
441
							<reference key="NSNextResponder" ref="1006"/>
442
							<int key="NSvFlags">270</int>
443 169
							<object class="NSMutableArray" key="NSSubviews">
444 170
								<bool key="EncodedWithXMLCoder">YES</bool>
445
								<object class="NSClipView" id="588679996">
446
									<reference key="NSNextResponder" ref="290149761"/>
447
									<int key="NSvFlags">2304</int>
171
								<object class="NSCustomView" id="1026564126">
172
									<reference key="NSNextResponder" ref="190817123"/>
173
									<int key="NSvFlags">290</int>
448 174
									<object class="NSMutableArray" key="NSSubviews">
449 175
										<bool key="EncodedWithXMLCoder">YES</bool>
450
										<object class="NSTableView" id="334049559">
451
											<reference key="NSNextResponder" ref="588679996"/>
452
											<int key="NSvFlags">4352</int>
453
											<string key="NSFrameSize">{243, 78}</string>
454
											<reference key="NSSuperview" ref="588679996"/>
455
											<reference key="NSNextKeyView" ref="529165266"/>
176
										<object class="NSButton" id="316107969">
177
											<reference key="NSNextResponder" ref="1026564126"/>
178
											<int key="NSvFlags">289</int>
179
											<string key="NSFrame">{{193, 9}, {62, 19}}</string>
180
											<reference key="NSSuperview" ref="1026564126"/>
181
											<reference key="NSWindow"/>
182
											<reference key="NSNextKeyView"/>
456 183
											<bool key="NSEnabled">YES</bool>
457
											<object class="NSTableHeaderView" key="NSHeaderView" id="1071020862">
458
												<reference key="NSNextResponder" ref="185303975"/>
459
												<int key="NSvFlags">256</int>
460
												<string key="NSFrameSize">{243, 17}</string>
461
												<reference key="NSSuperview" ref="185303975"/>
462
												<reference key="NSNextKeyView" ref="103059877"/>
463
												<reference key="NSTableView" ref="334049559"/>
184
											<object class="NSButtonCell" key="NSCell" id="372225213">
185
												<int key="NSCellFlags">-2080244224</int>
186
												<int key="NSCellFlags2">134348800</int>
187
												<string key="NSContents">Apply</string>
188
												<object class="NSFont" key="NSSupport" id="26">
189
													<string key="NSName">LucidaGrande</string>
190
													<double key="NSSize">11</double>
191
													<int key="NSfFlags">3100</int>
192
												</object>
193
												<reference key="NSControlView" ref="316107969"/>
194
												<int key="NSButtonFlags">-2038152961</int>
195
												<int key="NSButtonFlags2">134</int>
196
												<string key="NSAlternateContents"/>
197
												<string key="NSKeyEquivalent"/>
198
												<int key="NSPeriodicDelay">400</int>
199
												<int key="NSPeriodicInterval">75</int>
464 200
											</object>
465
											<object class="_NSCornerView" key="NSCornerView" id="103059877">
466
												<reference key="NSNextResponder" ref="290149761"/>
467
												<int key="NSvFlags">-2147483392</int>
468
												<string key="NSFrame">{{224, 0}, {16, 17}}</string>
469
												<reference key="NSSuperview" ref="290149761"/>
470
												<reference key="NSNextKeyView" ref="588679996"/>
201
										</object>
202
										<object class="NSButton" id="199252881">
203
											<reference key="NSNextResponder" ref="1026564126"/>
204
											<int key="NSvFlags">292</int>
205
											<string key="NSFrame">{{10, 9}, {62, 19}}</string>
206
											<reference key="NSSuperview" ref="1026564126"/>
207
											<reference key="NSWindow"/>
208
											<reference key="NSNextKeyView" ref="316107969"/>
209
											<bool key="NSEnabled">YES</bool>
210
											<object class="NSButtonCell" key="NSCell" id="641624410">
211
												<int key="NSCellFlags">-2080244224</int>
212
												<int key="NSCellFlags2">134348800</int>
213
												<string key="NSContents">Revert</string>
214
												<reference key="NSSupport" ref="26"/>
215
												<reference key="NSControlView" ref="199252881"/>
216
												<int key="NSButtonFlags">-2038152961</int>
217
												<int key="NSButtonFlags2">134</int>
218
												<string key="NSAlternateContents"/>
219
												<string key="NSKeyEquivalent"/>
220
												<int key="NSPeriodicDelay">400</int>
221
												<int key="NSPeriodicInterval">75</int>
471 222
											</object>
472
											<object class="NSMutableArray" key="NSTableColumns">
223
										</object>
224
									</object>
225
									<string key="NSFrameSize">{265, 34}</string>
226
									<reference key="NSSuperview" ref="190817123"/>
227
									<reference key="NSWindow"/>
228
									<reference key="NSNextKeyView" ref="199252881"/>
229
									<string key="NSReuseIdentifierKey">_NS:9</string>
230
									<string key="NSClassName">NSView</string>
231
								</object>
232
								<object class="NSCustomView" id="168130214">
233
									<reference key="NSNextResponder" ref="190817123"/>
234
									<int key="NSvFlags">268</int>
235
									<object class="NSMutableArray" key="NSSubviews">
236
										<bool key="EncodedWithXMLCoder">YES</bool>
237
										<object class="NSCustomView" id="475060635">
238
											<reference key="NSNextResponder" ref="168130214"/>
239
											<int key="NSvFlags">274</int>
240
											<object class="NSMutableArray" key="NSSubviews">
473 241
												<bool key="EncodedWithXMLCoder">YES</bool>
474
												<object class="NSTableColumn" id="252536226">
475
													<double key="NSWidth">101</double>
476
													<double key="NSMinWidth">40</double>
477
													<double key="NSMaxWidth">1000</double>
478
													<object class="NSTableHeaderCell" key="NSHeaderCell">
479
														<int key="NSCellFlags">75628096</int>
480
														<int key="NSCellFlags2">2048</int>
481
														<string key="NSContents">Key</string>
242
												<object class="NSTextField" id="436582754">
243
													<reference key="NSNextResponder" ref="475060635"/>
244
													<int key="NSvFlags">270</int>
245
													<string key="NSFrame">{{84, 8}, {168, 19}}</string>
246
													<reference key="NSSuperview" ref="475060635"/>
247
													<reference key="NSWindow"/>
248
													<reference key="NSNextKeyView" ref="1026564126"/>
249
													<bool key="NSEnabled">YES</bool>
250
													<object class="NSTextFieldCell" key="NSCell" id="495495893">
251
														<int key="NSCellFlags">-1804468671</int>
252
														<int key="NSCellFlags2">272761856</int>
253
														<string key="NSContents"/>
482 254
														<reference key="NSSupport" ref="26"/>
483
														<object class="NSColor" key="NSBackgroundColor" id="230023242">
484
															<int key="NSColorSpace">3</int>
485
															<bytes key="NSWhite">MC4zMzMzMzI5ODU2AA</bytes>
255
														<reference key="NSControlView" ref="436582754"/>
256
														<bool key="NSDrawsBackground">YES</bool>
257
														<object class="NSColor" key="NSBackgroundColor">
258
															<int key="NSColorSpace">6</int>
259
															<string key="NSCatalogName">System</string>
260
															<string key="NSColorName">textBackgroundColor</string>
261
															<object class="NSColor" key="NSColor" id="392809818">
262
																<int key="NSColorSpace">3</int>
263
																<bytes key="NSWhite">MQA</bytes>
264
															</object>
486 265
														</object>
487
														<object class="NSColor" key="NSTextColor" id="328313533">
266
														<object class="NSColor" key="NSTextColor">
488 267
															<int key="NSColorSpace">6</int>
489 268
															<string key="NSCatalogName">System</string>
490
															<string key="NSColorName">headerTextColor</string>
269
															<string key="NSColorName">textColor</string>
491 270
															<reference key="NSColor" ref="242147225"/>
492 271
														</object>
493 272
													</object>
494
													<object class="NSTextFieldCell" key="NSDataCell" id="144287600">
495
														<int key="NSCellFlags">337772096</int>
496
														<int key="NSCellFlags2">2048</int>
497
														<string key="NSContents">Text Cell</string>
273
												</object>
274
												<object class="NSTextField" id="659791971">
275
													<reference key="NSNextResponder" ref="475060635"/>
276
													<int key="NSvFlags">268</int>
277
													<string key="NSFrame">{{9, 10}, {72, 14}}</string>
278
													<reference key="NSSuperview" ref="475060635"/>
279
													<reference key="NSWindow"/>
280
													<reference key="NSNextKeyView" ref="436582754"/>
281
													<bool key="NSEnabled">YES</bool>
282
													<object class="NSTextFieldCell" key="NSCell" id="757087296">
283
														<int key="NSCellFlags">68288064</int>
284
														<int key="NSCellFlags2">71304192</int>
285
														<string key="NSContents">Quota (KB):</string>
498 286
														<reference key="NSSupport" ref="26"/>
499
														<reference key="NSControlView" ref="334049559"/>
500
														<object class="NSColor" key="NSBackgroundColor" id="465271680">
501
															<int key="NSColorSpace">6</int>
502
															<string key="NSCatalogName">System</string>
503
															<string key="NSColorName">controlBackgroundColor</string>
504
															<reference key="NSColor" ref="438495467"/>
505
														</object>
287
														<reference key="NSControlView" ref="659791971"/>
288
														<bool key="NSDrawsBackground">YES</bool>
289
														<reference key="NSBackgroundColor" ref="26777213"/>
506 290
														<reference key="NSTextColor" ref="162787576"/>
507 291
													</object>
508
													<int key="NSResizingMask">3</int>
509
													<bool key="NSIsResizeable">YES</bool>
510
													<bool key="NSIsEditable">YES</bool>
511
													<reference key="NSTableView" ref="334049559"/>
512 292
												</object>
513
												<object class="NSTableColumn" id="1030856867">
514
													<double key="NSWidth">136</double>
515
													<double key="NSMinWidth">40</double>
516
													<double key="NSMaxWidth">1000</double>
517
													<object class="NSTableHeaderCell" key="NSHeaderCell">
518
														<int key="NSCellFlags">75628096</int>
519
														<int key="NSCellFlags2">2048</int>
520
														<string key="NSContents">Value</string>
293
												<object class="NSPopUpButton" id="884622297">
294
													<reference key="NSNextResponder" ref="475060635"/>
295
													<int key="NSvFlags">270</int>
296
													<string key="NSFrame">{{81, 26}, {174, 22}}</string>
297
													<reference key="NSSuperview" ref="475060635"/>
298
													<reference key="NSWindow"/>
299
													<reference key="NSNextKeyView" ref="659791971"/>
300
													<bool key="NSEnabled">YES</bool>
301
													<object class="NSPopUpButtonCell" key="NSCell" id="735631793">
302
														<int key="NSCellFlags">-2080244160</int>
303
														<int key="NSCellFlags2">133120</int>
521 304
														<reference key="NSSupport" ref="26"/>
522
														<reference key="NSBackgroundColor" ref="230023242"/>
523
														<reference key="NSTextColor" ref="328313533"/>
305
														<reference key="NSControlView" ref="884622297"/>
306
														<int key="NSButtonFlags">-2035138305</int>
307
														<int key="NSButtonFlags2">129</int>
308
														<object class="NSFont" key="NSAlternateImage" id="5891854">
309
															<string key="NSName">LucidaGrande</string>
310
															<double key="NSSize">11</double>
311
															<int key="NSfFlags">16</int>
312
														</object>
313
														<string key="NSAlternateContents"/>
314
														<string key="NSKeyEquivalent"/>
315
														<int key="NSPeriodicDelay">400</int>
316
														<int key="NSPeriodicInterval">75</int>
317
														<object class="NSMenuItem" key="NSMenuItem" id="927570997">
318
															<reference key="NSMenu" ref="586982296"/>
319
															<string key="NSTitle">auto</string>
320
															<string key="NSKeyEquiv"/>
321
															<int key="NSKeyEquivModMask">1048576</int>
322
															<int key="NSMnemonicLoc">2147483647</int>
323
															<int key="NSState">1</int>
324
															<object class="NSCustomResource" key="NSOnImage" id="883442613">
325
																<string key="NSClassName">NSImage</string>
326
																<string key="NSResourceName">NSMenuCheckmark</string>
327
															</object>
328
															<object class="NSCustomResource" key="NSMixedImage" id="967609867">
329
																<string key="NSClassName">NSImage</string>
330
																<string key="NSResourceName">NSMenuMixedState</string>
331
															</object>
332
															<string key="NSAction">_popUpItemAction:</string>
333
															<reference key="NSTarget" ref="735631793"/>
334
														</object>
335
														<bool key="NSMenuItemRespectAlignment">YES</bool>
336
														<object class="NSMenu" key="NSMenu" id="586982296">
337
															<string key="NSTitle">OtherViews</string>
338
															<object class="NSMutableArray" key="NSMenuItems">
339
																<bool key="EncodedWithXMLCoder">YES</bool>
340
																<reference ref="927570997"/>
341
																<object class="NSMenuItem" id="151861975">
342
																	<reference key="NSMenu" ref="586982296"/>
343
																	<string key="NSTitle">manual</string>
344
																	<string key="NSKeyEquiv"/>
345
																	<int key="NSKeyEquivModMask">1048576</int>
346
																	<int key="NSMnemonicLoc">2147483647</int>
347
																	<reference key="NSOnImage" ref="883442613"/>
348
																	<reference key="NSMixedImage" ref="967609867"/>
349
																	<string key="NSAction">_popUpItemAction:</string>
350
																	<reference key="NSTarget" ref="735631793"/>
351
																</object>
352
																<object class="NSMenuItem" id="288897237">
353
																	<reference key="NSMenu" ref="586982296"/>
354
																	<string key="NSTitle">none</string>
355
																	<string key="NSKeyEquiv"/>
356
																	<int key="NSKeyEquivModMask">1048576</int>
357
																	<int key="NSMnemonicLoc">2147483647</int>
358
																	<reference key="NSOnImage" ref="883442613"/>
359
																	<reference key="NSMixedImage" ref="967609867"/>
360
																	<string key="NSAction">_popUpItemAction:</string>
361
																	<reference key="NSTarget" ref="735631793"/>
362
																</object>
363
															</object>
364
															<reference key="NSMenuFont" ref="975572389"/>
365
														</object>
366
														<int key="NSPreferredEdge">1</int>
367
														<bool key="NSUsesItemFromMenu">YES</bool>
368
														<bool key="NSAltersState">YES</bool>
369
														<int key="NSArrowPosition">2</int>
524 370
													</object>
525
													<object class="NSTextFieldCell" key="NSDataCell" id="922780356">
526
														<int key="NSCellFlags">337772096</int>
527
														<int key="NSCellFlags2">2048</int>
528
														<string key="NSContents">Text Cell</string>
371
												</object>
372
												<object class="NSTextField" id="374414206">
373
													<reference key="NSNextResponder" ref="475060635"/>
374
													<int key="NSvFlags">268</int>
375
													<string key="NSFrame">{{9, 31}, {72, 14}}</string>
376
													<reference key="NSSuperview" ref="475060635"/>
377
													<reference key="NSWindow"/>
378
													<reference key="NSNextKeyView" ref="884622297"/>
379
													<bool key="NSEnabled">YES</bool>
380
													<object class="NSTextFieldCell" key="NSCell" id="347207999">
381
														<int key="NSCellFlags">68288064</int>
382
														<int key="NSCellFlags2">71304192</int>
383
														<string key="NSContents">Versioning:</string>
529 384
														<reference key="NSSupport" ref="26"/>
530
														<reference key="NSControlView" ref="334049559"/>
531
														<reference key="NSBackgroundColor" ref="465271680"/>
385
														<reference key="NSControlView" ref="374414206"/>
386
														<bool key="NSDrawsBackground">YES</bool>
387
														<reference key="NSBackgroundColor" ref="26777213"/>
532 388
														<reference key="NSTextColor" ref="162787576"/>
533 389
													</object>
534
													<int key="NSResizingMask">3</int>
535
													<bool key="NSIsResizeable">YES</bool>
536
													<bool key="NSIsEditable">YES</bool>
537
													<reference key="NSTableView" ref="334049559"/>
538 390
												</object>
539 391
											</object>
540
											<double key="NSIntercellSpacingWidth">3</double>
541
											<double key="NSIntercellSpacingHeight">2</double>
542
											<reference key="NSBackgroundColor" ref="392809818"/>
543
											<object class="NSColor" key="NSGridColor">
544
												<int key="NSColorSpace">6</int>
545
												<string key="NSCatalogName">System</string>
546
												<string key="NSColorName">gridColor</string>
547
												<object class="NSColor" key="NSColor">
548
													<int key="NSColorSpace">3</int>
549
													<bytes key="NSWhite">MC41AA</bytes>
392
											<string key="NSFrameSize">{265, 57}</string>
393
											<reference key="NSSuperview" ref="168130214"/>
394
											<reference key="NSWindow"/>
395
											<reference key="NSNextKeyView" ref="374414206"/>
396
											<string key="NSClassName">InspectorPaneBody</string>
397
										</object>
398
										<object class="NSCustomView" id="143196755">
399
											<reference key="NSNextResponder" ref="168130214"/>
400
											<int key="NSvFlags">266</int>
401
											<object class="NSMutableArray" key="NSSubviews">
402
												<bool key="EncodedWithXMLCoder">YES</bool>
403
												<object class="NSButton" id="1032007842">
404
													<reference key="NSNextResponder" ref="143196755"/>
405
													<int key="NSvFlags">268</int>
406
													<string key="NSFrame">{{3, 2}, {13, 13}}</string>
407
													<reference key="NSSuperview" ref="143196755"/>
408
													<reference key="NSWindow"/>
409
													<reference key="NSNextKeyView" ref="968538746"/>
410
													<bool key="NSEnabled">YES</bool>
411
													<object class="NSButtonCell" key="NSCell" id="138907603">
412
														<int key="NSCellFlags">-2080244224</int>
413
														<int key="NSCellFlags2">163840</int>
414
														<string key="NSContents"/>
415
														<reference key="NSSupport" ref="26"/>
416
														<reference key="NSControlView" ref="1032007842"/>
417
														<int key="NSButtonFlags">-1198767873</int>
418
														<int key="NSButtonFlags2">133</int>
419
														<string key="NSAlternateContents"/>
420
														<string key="NSKeyEquivalent"/>
421
														<int key="NSPeriodicDelay">200</int>
422
														<int key="NSPeriodicInterval">25</int>
423
													</object>
424
												</object>
425
												<object class="NSTextField" id="968538746">
426
													<reference key="NSNextResponder" ref="143196755"/>
427
													<int key="NSvFlags">266</int>
428
													<string key="NSFrame">{{16, 1}, {242, 14}}</string>
429
													<reference key="NSSuperview" ref="143196755"/>
430
													<reference key="NSWindow"/>
431
													<reference key="NSNextKeyView" ref="475060635"/>
432
													<bool key="NSEnabled">YES</bool>
433
													<object class="NSTextFieldCell" key="NSCell" id="150411194">
434
														<int key="NSCellFlags">67239488</int>
435
														<int key="NSCellFlags2">272762880</int>
436
														<string key="NSContents">Policy:</string>
437
														<reference key="NSSupport" ref="26"/>
438
														<reference key="NSControlView" ref="968538746"/>
439
														<reference key="NSBackgroundColor" ref="26777213"/>
440
														<reference key="NSTextColor" ref="162787576"/>
441
													</object>
550 442
												</object>
551 443
											</object>
552
											<double key="NSRowHeight">17</double>
553
											<int key="NSTvFlags">1388314624</int>
554
											<reference key="NSDelegate"/>
555
											<reference key="NSDataSource"/>
556
											<int key="NSGridStyleMask">1</int>
557
											<int key="NSColumnAutoresizingStyle">4</int>
558
											<int key="NSDraggingSourceMaskForLocal">15</int>
559
											<int key="NSDraggingSourceMaskForNonLocal">0</int>
560
											<bool key="NSAllowsTypeSelect">YES</bool>
561
											<int key="NSTableViewDraggingDestinationStyle">0</int>
444
											<string key="NSFrame">{{0, 57}, {265, 17}}</string>
445
											<reference key="NSSuperview" ref="168130214"/>
446
											<reference key="NSWindow"/>
447
											<reference key="NSNextKeyView" ref="1032007842"/>
448
											<string key="NSClassName">InspectorPaneHead</string>
562 449
										</object>
563 450
									</object>
564
									<string key="NSFrame">{{1, 17}, {243, 78}}</string>
565
									<reference key="NSSuperview" ref="290149761"/>
566
									<reference key="NSNextKeyView" ref="334049559"/>
567
									<reference key="NSDocView" ref="334049559"/>
568
									<reference key="NSBGColor" ref="465271680"/>
569
									<int key="NScvFlags">4</int>
570
								</object>
571
								<object class="NSScroller" id="529165266">
572
									<reference key="NSNextResponder" ref="290149761"/>
573
									<int key="NSvFlags">-2147483392</int>
574
									<string key="NSFrame">{{224, 17}, {15, 102}}</string>
575
									<reference key="NSSuperview" ref="290149761"/>
576
									<reference key="NSNextKeyView" ref="533265052"/>
577
									<reference key="NSTarget" ref="290149761"/>
578
									<string key="NSAction">_doScroller:</string>
579
									<double key="NSCurValue">37</double>
580
									<double key="NSPercent">0.1947367936372757</double>
451
									<string key="NSFrame">{{0, 34}, {265, 74}}</string>
452
									<reference key="NSSuperview" ref="190817123"/>
453
									<reference key="NSWindow"/>
454
									<reference key="NSNextKeyView" ref="143196755"/>
455
									<string key="NSClassName">InspectorPane</string>
581 456
								</object>
582
								<object class="NSScroller" id="533265052">
583
									<reference key="NSNextResponder" ref="290149761"/>
584
									<int key="NSvFlags">-2147483392</int>
585
									<string key="NSFrame">{{1, 119}, {223, 15}}</string>
586
									<reference key="NSSuperview" ref="290149761"/>
587
									<reference key="NSNextKeyView" ref="294638385"/>
588
									<int key="NSsFlags">1</int>
589
									<reference key="NSTarget" ref="290149761"/>
590
									<string key="NSAction">_doScroller:</string>
591
									<double key="NSPercent">0.57142859697341919</double>
592
								</object>
593
								<object class="NSClipView" id="185303975">
594
									<reference key="NSNextResponder" ref="290149761"/>
595
									<int key="NSvFlags">2304</int>
457
								<object class="NSCustomView" id="203457008">
458
									<reference key="NSNextResponder" ref="190817123"/>
459
									<int key="NSvFlags">268</int>
596 460
									<object class="NSMutableArray" key="NSSubviews">
597 461
										<bool key="EncodedWithXMLCoder">YES</bool>
598
										<reference ref="1071020862"/>
462
										<object class="NSCustomView" id="648778709">
463
											<reference key="NSNextResponder" ref="203457008"/>
464
											<int key="NSvFlags">274</int>
465
											<object class="NSMutableArray" key="NSSubviews">
466
												<bool key="EncodedWithXMLCoder">YES</bool>
467
												<object class="NSButton" id="707329341">
468
													<reference key="NSNextResponder" ref="648778709"/>
469
													<int key="NSvFlags">268</int>
470
													<string key="NSFrame">{{27, 8}, {18, 18}}</string>
471
													<reference key="NSSuperview" ref="648778709"/>
472
													<reference key="NSWindow"/>
473
													<reference key="NSNextKeyView" ref="168130214"/>
474
													<bool key="NSEnabled">YES</bool>
475
													<object class="NSButtonCell" key="NSCell" id="732997853">
476
														<int key="NSCellFlags">-2080244224</int>
477
														<int key="NSCellFlags2">134217728</int>
478
														<string key="NSContents"/>
479
														<reference key="NSSupport" ref="975572389"/>
480
														<reference key="NSControlView" ref="707329341"/>
481
														<int key="NSButtonFlags">-2033434369</int>
482
														<int key="NSButtonFlags2">162</int>
483
														<object class="NSCustomResource" key="NSNormalImage">
484
															<string key="NSClassName">NSImage</string>
485
															<string key="NSResourceName">NSRemoveTemplate</string>
486
														</object>
487
														<string key="NSAlternateContents"/>
488
														<string key="NSKeyEquivalent"/>
489
														<int key="NSPeriodicDelay">400</int>
490
														<int key="NSPeriodicInterval">75</int>
491
													</object>
492
												</object>
493
												<object class="NSButton" id="1040347685">
494
													<reference key="NSNextResponder" ref="648778709"/>
495
													<int key="NSvFlags">268</int>
496
													<string key="NSFrame">{{10, 8}, {18, 18}}</string>
497
													<reference key="NSSuperview" ref="648778709"/>
498
													<reference key="NSWindow"/>
499
													<reference key="NSNextKeyView" ref="707329341"/>
500
													<bool key="NSEnabled">YES</bool>
501
													<object class="NSButtonCell" key="NSCell" id="525947737">
502
														<int key="NSCellFlags">-2080244224</int>
503
														<int key="NSCellFlags2">134217728</int>
504
														<string key="NSContents"/>
505
														<reference key="NSSupport" ref="975572389"/>
506
														<reference key="NSControlView" ref="1040347685"/>
507
														<int key="NSButtonFlags">-2033434369</int>
508
														<int key="NSButtonFlags2">162</int>
509
														<object class="NSCustomResource" key="NSNormalImage">
510
															<string key="NSClassName">NSImage</string>
511
															<string key="NSResourceName">NSAddTemplate</string>
512
														</object>
513
														<string key="NSAlternateContents"/>
514
														<string key="NSKeyEquivalent"/>
515
														<int key="NSPeriodicDelay">400</int>
516
														<int key="NSPeriodicInterval">75</int>
517
													</object>
518
												</object>
519
												<object class="NSScrollView" id="788592868">
520
													<reference key="NSNextResponder" ref="648778709"/>
521
													<int key="NSvFlags">270</int>
522
													<object class="NSMutableArray" key="NSSubviews">
523
														<bool key="EncodedWithXMLCoder">YES</bool>
524
														<object class="NSClipView" id="185777849">
525
															<reference key="NSNextResponder" ref="788592868"/>
526
															<int key="NSvFlags">2304</int>
527
															<object class="NSMutableArray" key="NSSubviews">
528
																<bool key="EncodedWithXMLCoder">YES</bool>
529
																<object class="NSTableView" id="344407753">
530
																	<reference key="NSNextResponder" ref="185777849"/>
531
																	<int key="NSvFlags">4352</int>
532
																	<string key="NSFrameSize">{243, 78}</string>
533
																	<reference key="NSSuperview" ref="185777849"/>
534
																	<reference key="NSWindow"/>
535
																	<reference key="NSNextKeyView" ref="514999250"/>
536
																	<bool key="NSEnabled">YES</bool>
537
																	<object class="NSTableHeaderView" key="NSHeaderView" id="1021922343">
538
																		<reference key="NSNextResponder" ref="855599295"/>
539
																		<int key="NSvFlags">256</int>
540
																		<string key="NSFrameSize">{243, 17}</string>
541
																		<reference key="NSSuperview" ref="855599295"/>
542
																		<reference key="NSWindow"/>
543
																		<reference key="NSNextKeyView" ref="185777849"/>
544
																		<reference key="NSTableView" ref="344407753"/>
545
																	</object>
546
																	<object class="_NSCornerView" key="NSCornerView">
547
																		<nil key="NSNextResponder"/>
548
																		<int key="NSvFlags">-2147483392</int>
549
																		<string key="NSFrame">{{224, 0}, {16, 17}}</string>
550
																		<reference key="NSNextKeyView" ref="185777849"/>
551
																	</object>
552
																	<object class="NSMutableArray" key="NSTableColumns">
553
																		<bool key="EncodedWithXMLCoder">YES</bool>
554
																		<object class="NSTableColumn" id="790657317">
555
																			<double key="NSWidth">101</double>
556
																			<double key="NSMinWidth">40</double>
557
																			<double key="NSMaxWidth">1000</double>
558
																			<object class="NSTableHeaderCell" key="NSHeaderCell">
559
																				<int key="NSCellFlags">75628096</int>
560
																				<int key="NSCellFlags2">2048</int>
561
																				<string key="NSContents">Key</string>
562
																				<reference key="NSSupport" ref="26"/>
563
																				<object class="NSColor" key="NSBackgroundColor" id="705815374">
564
																					<int key="NSColorSpace">3</int>
565
																					<bytes key="NSWhite">MC4zMzMzMzI5ODU2AA</bytes>
566
																				</object>
567
																				<object class="NSColor" key="NSTextColor" id="328313533">
568
																					<int key="NSColorSpace">6</int>
569
																					<string key="NSCatalogName">System</string>
570
																					<string key="NSColorName">headerTextColor</string>
571
																					<reference key="NSColor" ref="242147225"/>
572
																				</object>
573
																			</object>
574
																			<object class="NSTextFieldCell" key="NSDataCell" id="469321669">
575
																				<int key="NSCellFlags">337772096</int>
576
																				<int key="NSCellFlags2">2048</int>
577
																				<string key="NSContents">Text Cell</string>
578
																				<reference key="NSSupport" ref="26"/>
579
																				<reference key="NSControlView" ref="344407753"/>
580
																				<object class="NSColor" key="NSBackgroundColor" id="465271680">
581
																					<int key="NSColorSpace">6</int>
582
																					<string key="NSCatalogName">System</string>
583
																					<string key="NSColorName">controlBackgroundColor</string>
584
																					<reference key="NSColor" ref="438495467"/>
585
																				</object>
586
																				<reference key="NSTextColor" ref="162787576"/>
587
																			</object>
588
																			<int key="NSResizingMask">3</int>
589
																			<bool key="NSIsResizeable">YES</bool>
590
																			<bool key="NSIsEditable">YES</bool>
591
																			<reference key="NSTableView" ref="344407753"/>
592
																		</object>
593
																		<object class="NSTableColumn" id="647329926">
594
																			<double key="NSWidth">136</double>
595
																			<double key="NSMinWidth">40</double>
596
																			<double key="NSMaxWidth">1000</double>
597
																			<object class="NSTableHeaderCell" key="NSHeaderCell">
598
																				<int key="NSCellFlags">75628096</int>
599
																				<int key="NSCellFlags2">2048</int>
600
																				<string key="NSContents">Value</string>
601
																				<reference key="NSSupport" ref="26"/>
602
																				<reference key="NSBackgroundColor" ref="705815374"/>
603
																				<reference key="NSTextColor" ref="328313533"/>
604
																			</object>
605
																			<object class="NSTextFieldCell" key="NSDataCell" id="758962405">
606
																				<int key="NSCellFlags">337772096</int>
607
																				<int key="NSCellFlags2">2048</int>
608
																				<string key="NSContents">Text Cell</string>
609
																				<reference key="NSSupport" ref="26"/>
610
																				<reference key="NSControlView" ref="344407753"/>
611
																				<reference key="NSBackgroundColor" ref="465271680"/>
612
																				<reference key="NSTextColor" ref="162787576"/>
613
																			</object>
614
																			<int key="NSResizingMask">3</int>
615
																			<bool key="NSIsResizeable">YES</bool>
616
																			<bool key="NSIsEditable">YES</bool>
617
																			<reference key="NSTableView" ref="344407753"/>
618
																		</object>
619
																	</object>
620
																	<double key="NSIntercellSpacingWidth">3</double>
621
																	<double key="NSIntercellSpacingHeight">2</double>
622
																	<reference key="NSBackgroundColor" ref="392809818"/>
623
																	<object class="NSColor" key="NSGridColor">
624
																		<int key="NSColorSpace">6</int>
625
																		<string key="NSCatalogName">System</string>
626
																		<string key="NSColorName">gridColor</string>
627
																		<object class="NSColor" key="NSColor">
628
																			<int key="NSColorSpace">3</int>
629
																			<bytes key="NSWhite">MC41AA</bytes>
630
																		</object>
631
																	</object>
632
																	<double key="NSRowHeight">17</double>
633
																	<int key="NSTvFlags">1925185536</int>
634
																	<reference key="NSDelegate"/>
635
																	<reference key="NSDataSource"/>
636
																	<int key="NSGridStyleMask">1</int>
637
																	<int key="NSColumnAutoresizingStyle">4</int>
638
																	<int key="NSDraggingSourceMaskForLocal">15</int>
639
																	<int key="NSDraggingSourceMaskForNonLocal">0</int>
640
																	<bool key="NSAllowsTypeSelect">YES</bool>
641
																	<int key="NSTableViewDraggingDestinationStyle">0</int>
642
																	<int key="NSTableViewGroupRowStyle">1</int>
643
																</object>
644
															</object>
645
															<string key="NSFrame">{{1, 17}, {243, 78}}</string>
646
															<reference key="NSSuperview" ref="788592868"/>
647
															<reference key="NSWindow"/>
648
															<reference key="NSNextKeyView" ref="344407753"/>
649
															<reference key="NSDocView" ref="344407753"/>
650
															<reference key="NSBGColor" ref="465271680"/>
651
															<int key="NScvFlags">4</int>
652
														</object>
653
														<object class="NSScroller" id="514999250">
654
															<reference key="NSNextResponder" ref="788592868"/>
655
															<int key="NSvFlags">-2147483392</int>
656
															<string key="NSFrame">{{224, 17}, {15, 102}}</string>
657
															<reference key="NSSuperview" ref="788592868"/>
658
															<reference key="NSWindow"/>
659
															<reference key="NSNextKeyView" ref="388171686"/>
660
															<reference key="NSTarget" ref="788592868"/>
661
															<string key="NSAction">_doScroller:</string>
662
															<double key="NSCurValue">37</double>
663
															<double key="NSPercent">0.1947367936372757</double>
664
														</object>
665
														<object class="NSScroller" id="388171686">
666
															<reference key="NSNextResponder" ref="788592868"/>
667
															<int key="NSvFlags">-2147483392</int>
668
															<string key="NSFrame">{{1, 119}, {223, 15}}</string>
669
															<reference key="NSSuperview" ref="788592868"/>
670
															<reference key="NSWindow"/>
671
															<reference key="NSNextKeyView" ref="1040347685"/>
672
															<int key="NSsFlags">1</int>
673
															<reference key="NSTarget" ref="788592868"/>
674
															<string key="NSAction">_doScroller:</string>
675
															<double key="NSPercent">0.57142859697341919</double>
676
														</object>
677
														<object class="NSClipView" id="855599295">
678
															<reference key="NSNextResponder" ref="788592868"/>
679
															<int key="NSvFlags">2304</int>
680
															<object class="NSMutableArray" key="NSSubviews">
681
																<bool key="EncodedWithXMLCoder">YES</bool>
682
																<reference ref="1021922343"/>
683
															</object>
684
															<string key="NSFrame">{{1, 0}, {243, 17}}</string>
685
															<reference key="NSSuperview" ref="788592868"/>
686
															<reference key="NSWindow"/>
687
															<reference key="NSNextKeyView" ref="1021922343"/>
688
															<reference key="NSDocView" ref="1021922343"/>
689
															<reference key="NSBGColor" ref="465271680"/>
690
															<int key="NScvFlags">4</int>
691
														</object>
692
													</object>
693
													<string key="NSFrame">{{10, 28}, {245, 96}}</string>
694
													<reference key="NSSuperview" ref="648778709"/>
695
													<reference key="NSWindow"/>
696
													<reference key="NSNextKeyView" ref="855599295"/>
697
													<int key="NSsFlags">133682</int>
698
													<reference key="NSVScroller" ref="514999250"/>
699
													<reference key="NSHScroller" ref="388171686"/>
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff