root / pithos-macos / PithosObjectNode.m @ d8426ffb
History | View | Annotate | Download (13.4 kB)
1 | d8d08dc1 | Miltiadis Vasilakis | // |
---|---|---|---|
2 | 857217b0 | Miltiadis Vasilakis | // PithosObjectNode.m |
3 | d8d08dc1 | Miltiadis Vasilakis | // pithos-macos |
4 | d8d08dc1 | Miltiadis Vasilakis | // |
5 | 919cb043 | Miltiadis Vasilakis | // Copyright 2011-2012 GRNET S.A. All rights reserved. |
6 | d8d08dc1 | Miltiadis Vasilakis | // |
7 | d8d08dc1 | Miltiadis Vasilakis | // Redistribution and use in source and binary forms, with or |
8 | d8d08dc1 | Miltiadis Vasilakis | // without modification, are permitted provided that the following |
9 | d8d08dc1 | Miltiadis Vasilakis | // conditions are met: |
10 | d8d08dc1 | Miltiadis Vasilakis | // |
11 | d8d08dc1 | Miltiadis Vasilakis | // 1. Redistributions of source code must retain the above |
12 | d8d08dc1 | Miltiadis Vasilakis | // copyright notice, this list of conditions and the following |
13 | d8d08dc1 | Miltiadis Vasilakis | // disclaimer. |
14 | d8d08dc1 | Miltiadis Vasilakis | // |
15 | d8d08dc1 | Miltiadis Vasilakis | // 2. Redistributions in binary form must reproduce the above |
16 | d8d08dc1 | Miltiadis Vasilakis | // copyright notice, this list of conditions and the following |
17 | d8d08dc1 | Miltiadis Vasilakis | // disclaimer in the documentation and/or other materials |
18 | d8d08dc1 | Miltiadis Vasilakis | // provided with the distribution. |
19 | d8d08dc1 | Miltiadis Vasilakis | // |
20 | d8d08dc1 | Miltiadis Vasilakis | // THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``AS IS'' AND ANY EXPRESS |
21 | d8d08dc1 | Miltiadis Vasilakis | // OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
22 | d8d08dc1 | Miltiadis Vasilakis | // WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
23 | d8d08dc1 | Miltiadis Vasilakis | // PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GRNET S.A OR |
24 | d8d08dc1 | Miltiadis Vasilakis | // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
25 | d8d08dc1 | Miltiadis Vasilakis | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
26 | d8d08dc1 | Miltiadis Vasilakis | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF |
27 | d8d08dc1 | Miltiadis Vasilakis | // USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED |
28 | d8d08dc1 | Miltiadis Vasilakis | // AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
29 | d8d08dc1 | Miltiadis Vasilakis | // LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN |
30 | d8d08dc1 | Miltiadis Vasilakis | // ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
31 | d8d08dc1 | Miltiadis Vasilakis | // POSSIBILITY OF SUCH DAMAGE. |
32 | d8d08dc1 | Miltiadis Vasilakis | // |
33 | d8d08dc1 | Miltiadis Vasilakis | // The views and conclusions contained in the software and |
34 | d8d08dc1 | Miltiadis Vasilakis | // documentation are those of the authors and should not be |
35 | d8d08dc1 | Miltiadis Vasilakis | // interpreted as representing official policies, either expressed |
36 | d8d08dc1 | Miltiadis Vasilakis | // or implied, of GRNET S.A. |
37 | d8d08dc1 | Miltiadis Vasilakis | |
38 | 9f3a92de | Miltiadis Vasilakis | #import "PithosObjectNode.h" |
39 | e5fdf4d9 | Miltiadis Vasilakis | #import "ASIPithosRequest.h" |
40 | 919cb043 | Miltiadis Vasilakis | #import "ASIPithos.h" |
41 | 5915687e | Miltiadis Vasilakis | #import "ASIPithosObjectRequest.h" |
42 | 605c8932 | Miltiadis Vasilakis | #import "ASIPithosContainer.h" |
43 | 605c8932 | Miltiadis Vasilakis | #import "ASIPithosObject.h" |
44 | 5915687e | Miltiadis Vasilakis | #import "ASIDownloadCache.h" |
45 | 1b1e6fa1 | Miltiadis Vasilakis | #import "PithosUtilities.h" |
46 | 515cd8db | Miltiadis Vasilakis | #import "PithosObjectNodeInfoController.h" |
47 | e5fdf4d9 | Miltiadis Vasilakis | |
48 | 9f3a92de | Miltiadis Vasilakis | @implementation PithosObjectNode |
49 | 919cb043 | Miltiadis Vasilakis | @synthesize pithos, pithosContainer, pithosObject; |
50 | c6f07a3c | Miltiadis Vasilakis | @synthesize isPublic; |
51 | e5fdf4d9 | Miltiadis Vasilakis | |
52 | d8d08dc1 | Miltiadis Vasilakis | #pragma mark - |
53 | d8d08dc1 | Miltiadis Vasilakis | #pragma mark Object Lifecycle |
54 | d8d08dc1 | Miltiadis Vasilakis | |
55 | 919cb043 | Miltiadis Vasilakis | - (id)initWithPithos:(ASIPithos *)aPithos |
56 | 919cb043 | Miltiadis Vasilakis | pithosContainer:(ASIPithosContainer *)aPithosContainer |
57 | 919cb043 | Miltiadis Vasilakis | pithosObject:(ASIPithosObject *)aPithosObject { |
58 | d8d08dc1 | Miltiadis Vasilakis | if ((self = [super init])) { |
59 | 919cb043 | Miltiadis Vasilakis | self.pithos = aPithos; |
60 | 5915687e | Miltiadis Vasilakis | self.pithosContainer = aPithosContainer; |
61 | 5915687e | Miltiadis Vasilakis | self.pithosObject = aPithosObject; |
62 | d8d08dc1 | Miltiadis Vasilakis | isLeafItem = YES; |
63 | d8d08dc1 | Miltiadis Vasilakis | } |
64 | d8d08dc1 | Miltiadis Vasilakis | return self; |
65 | d8d08dc1 | Miltiadis Vasilakis | } |
66 | d8d08dc1 | Miltiadis Vasilakis | |
67 | d8d08dc1 | Miltiadis Vasilakis | - (void)dealloc { |
68 | 5915687e | Miltiadis Vasilakis | [refreshMetadataObjectRequest clearDelegatesAndCancel]; |
69 | 5915687e | Miltiadis Vasilakis | [refreshMetadataObjectRequest release]; |
70 | 5915687e | Miltiadis Vasilakis | [applyMetadataObjectRequest clearDelegatesAndCancel]; |
71 | 5915687e | Miltiadis Vasilakis | [applyMetadataObjectRequest release]; |
72 | 9f3a92de | Miltiadis Vasilakis | [pithosObject release]; |
73 | 9f3a92de | Miltiadis Vasilakis | [pithosContainer release]; |
74 | 919cb043 | Miltiadis Vasilakis | [pithos release]; |
75 | d8d08dc1 | Miltiadis Vasilakis | [super dealloc]; |
76 | d8d08dc1 | Miltiadis Vasilakis | } |
77 | d8d08dc1 | Miltiadis Vasilakis | |
78 | d8d08dc1 | Miltiadis Vasilakis | #pragma mark - |
79 | d8d08dc1 | Miltiadis Vasilakis | #pragma mark Properties |
80 | d8d08dc1 | Miltiadis Vasilakis | |
81 | d8426ffb | Miltiadis Vasilakis | - (void)setPithos:(ASIPithos *)aPithos { |
82 | d8426ffb | Miltiadis Vasilakis | if (aPithos && ![aPithos isEqualTo:pithos]) { |
83 | d8426ffb | Miltiadis Vasilakis | [pithos release]; |
84 | d8426ffb | Miltiadis Vasilakis | pithos = [aPithos retain]; |
85 | d8426ffb | Miltiadis Vasilakis | [url release]; |
86 | d8426ffb | Miltiadis Vasilakis | url = nil; |
87 | d8426ffb | Miltiadis Vasilakis | } |
88 | d8426ffb | Miltiadis Vasilakis | } |
89 | d8426ffb | Miltiadis Vasilakis | |
90 | e5fdf4d9 | Miltiadis Vasilakis | - (NSString *)url { |
91 | af3b9f06 | Miltiadis Vasilakis | if (url == nil) |
92 | af3b9f06 | Miltiadis Vasilakis | url = [[NSString alloc] initWithFormat:@"object %@/%@/%@%@", |
93 | 919cb043 | Miltiadis Vasilakis | (sharingAccount ? [pithos storageURLWithAuthUser:sharingAccount] : pithos.storageURL), |
94 | af3b9f06 | Miltiadis Vasilakis | pithosContainer.name, |
95 | af3b9f06 | Miltiadis Vasilakis | pithosObject.name, |
96 | af3b9f06 | Miltiadis Vasilakis | (shared ? @"?shared" : @"")]; |
97 | e5fdf4d9 | Miltiadis Vasilakis | return url; |
98 | e5fdf4d9 | Miltiadis Vasilakis | } |
99 | e5fdf4d9 | Miltiadis Vasilakis | |
100 | d8d08dc1 | Miltiadis Vasilakis | - (NSArray *)children { |
101 | d8d08dc1 | Miltiadis Vasilakis | return nil; |
102 | d8d08dc1 | Miltiadis Vasilakis | } |
103 | d8d08dc1 | Miltiadis Vasilakis | |
104 | d8d08dc1 | Miltiadis Vasilakis | - (NSString *)displayName { |
105 | d8d08dc1 | Miltiadis Vasilakis | if (displayName == nil) { |
106 | 9f3a92de | Miltiadis Vasilakis | displayName = [pithosObject.name lastPathComponent]; |
107 | 9f3a92de | Miltiadis Vasilakis | if([pithosObject.name hasSuffix:@"/"]) |
108 | d8d08dc1 | Miltiadis Vasilakis | displayName = [displayName stringByAppendingString:@"/"]; |
109 | d8d08dc1 | Miltiadis Vasilakis | [displayName retain]; |
110 | d8d08dc1 | Miltiadis Vasilakis | } |
111 | d8d08dc1 | Miltiadis Vasilakis | return [[displayName copy] autorelease]; |
112 | d8d08dc1 | Miltiadis Vasilakis | } |
113 | d8d08dc1 | Miltiadis Vasilakis | |
114 | 4ae10a2b | Miltiadis Vasilakis | - (void)setDisplayName:(NSString *)aDisplayName { |
115 | 4ae10a2b | Miltiadis Vasilakis | } |
116 | 4ae10a2b | Miltiadis Vasilakis | |
117 | e5fdf4d9 | Miltiadis Vasilakis | - (NSImage *)icon { |
118 | 155f0dfd | Miltiadis Vasilakis | if (icon == nil) |
119 | 9f3a92de | Miltiadis Vasilakis | icon = [[[NSWorkspace sharedWorkspace] iconForFileType:[pithosObject.name pathExtension]] retain]; |
120 | e5fdf4d9 | Miltiadis Vasilakis | return icon; |
121 | e5fdf4d9 | Miltiadis Vasilakis | } |
122 | e5fdf4d9 | Miltiadis Vasilakis | |
123 | c6f07a3c | Miltiadis Vasilakis | - (void)setPithosObject:(ASIPithosObject *)aPithosObject { |
124 | c6f07a3c | Miltiadis Vasilakis | if (![pithosObject isEqualTo:aPithosObject]) { |
125 | c6f07a3c | Miltiadis Vasilakis | [pithosObject release]; |
126 | c6f07a3c | Miltiadis Vasilakis | pithosObject = [aPithosObject retain]; |
127 | c6f07a3c | Miltiadis Vasilakis | } |
128 | c6f07a3c | Miltiadis Vasilakis | self.isPublic = (pithosObject.publicURI != nil); |
129 | 20f54e18 | Miltiadis Vasilakis | // Refresh browser if the object is in my shared and is no longer shared |
130 | 4ae10a2b | Miltiadis Vasilakis | if (shared && !pithosObject.sharing) |
131 | 20f54e18 | Miltiadis Vasilakis | [[NSNotificationCenter defaultCenter] postNotificationName:@"PithosBrowserRefreshNeeeded" object:self]; |
132 | 5915687e | Miltiadis Vasilakis | } |
133 | 5915687e | Miltiadis Vasilakis | |
134 | 5915687e | Miltiadis Vasilakis | #pragma mark - |
135 | 5915687e | Miltiadis Vasilakis | #pragma mark ASIHTTPRequestDelegate |
136 | 5915687e | Miltiadis Vasilakis | |
137 | 857217b0 | Miltiadis Vasilakis | - (void)objectRequestFinished:(ASIPithosObjectRequest *)request { |
138 | 5f54c6be | Miltiadis Vasilakis | NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; |
139 | 5915687e | Miltiadis Vasilakis | NSLog(@"URL: %@", [request url]); |
140 | 5915687e | Miltiadis Vasilakis | NSLog(@"cached: %d", [request didUseCachedResponse]); |
141 | 5915687e | Miltiadis Vasilakis | |
142 | 5915687e | Miltiadis Vasilakis | if ([request isEqualTo:applyMetadataObjectRequest]) { |
143 | 20f54e18 | Miltiadis Vasilakis | int responseStatusCode = applyMetadataObjectRequest.responseStatusCode; |
144 | 20f54e18 | Miltiadis Vasilakis | if (responseStatusCode != 202) |
145 | 1b1e6fa1 | Miltiadis Vasilakis | [PithosUtilities unexpectedResponseStatusAlertWithRequest:applyMetadataObjectRequest]; |
146 | 5915687e | Miltiadis Vasilakis | @synchronized(self) { |
147 | 5915687e | Miltiadis Vasilakis | [applyMetadataObjectRequest release]; |
148 | 5915687e | Miltiadis Vasilakis | applyMetadataObjectRequest = nil; |
149 | 5915687e | Miltiadis Vasilakis | } |
150 | 20f54e18 | Miltiadis Vasilakis | if (responseStatusCode == 202) |
151 | 20f54e18 | Miltiadis Vasilakis | [self refreshInfo]; |
152 | 5915687e | Miltiadis Vasilakis | } else if ([request isEqualTo:refreshMetadataObjectRequest]) { |
153 | 515cd8db | Miltiadis Vasilakis | [[pithosNodeInfoController window] makeFirstResponder:nil]; |
154 | 5915687e | Miltiadis Vasilakis | self.pithosObject = [refreshMetadataObjectRequest object]; |
155 | 5915687e | Miltiadis Vasilakis | @synchronized(self) { |
156 | 5915687e | Miltiadis Vasilakis | [refreshMetadataObjectRequest release]; |
157 | 5915687e | Miltiadis Vasilakis | refreshMetadataObjectRequest = nil; |
158 | 5915687e | Miltiadis Vasilakis | } |
159 | 5915687e | Miltiadis Vasilakis | } |
160 | 5f54c6be | Miltiadis Vasilakis | [pool drain]; |
161 | 5915687e | Miltiadis Vasilakis | } |
162 | 5915687e | Miltiadis Vasilakis | |
163 | 857217b0 | Miltiadis Vasilakis | - (void)objectRequestFailed:(ASIPithosObjectRequest *)request { |
164 | 5f54c6be | Miltiadis Vasilakis | NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; |
165 | d8426ffb | Miltiadis Vasilakis | NSUInteger retries = [[request.userInfo objectForKey:@"retries"] unsignedIntegerValue]; |
166 | d8426ffb | Miltiadis Vasilakis | if (retries > 0) { |
167 | d8426ffb | Miltiadis Vasilakis | ASIPithosObjectRequest *newRequest = (ASIPithosObjectRequest *)[PithosUtilities copyRequest:request]; |
168 | d8426ffb | Miltiadis Vasilakis | [(NSMutableDictionary *)(newRequest.userInfo)setObject:[NSNumber numberWithUnsignedInteger:(--retries)] forKey:@"retries"]; |
169 | d8426ffb | Miltiadis Vasilakis | if ([request isEqualTo:applyMetadataObjectRequest]) { |
170 | d8426ffb | Miltiadis Vasilakis | @synchronized(self) { |
171 | d8426ffb | Miltiadis Vasilakis | [applyMetadataObjectRequest release]; |
172 | d8426ffb | Miltiadis Vasilakis | applyMetadataObjectRequest = newRequest; |
173 | d8426ffb | Miltiadis Vasilakis | } |
174 | d8426ffb | Miltiadis Vasilakis | } else if ([request isEqualTo:refreshMetadataObjectRequest]) { |
175 | d8426ffb | Miltiadis Vasilakis | @synchronized(self) { |
176 | d8426ffb | Miltiadis Vasilakis | [refreshMetadataObjectRequest release]; |
177 | d8426ffb | Miltiadis Vasilakis | refreshMetadataObjectRequest = newRequest; |
178 | d8426ffb | Miltiadis Vasilakis | } |
179 | 5915687e | Miltiadis Vasilakis | } |
180 | d8426ffb | Miltiadis Vasilakis | [[PithosUtilities prepareRequest:newRequest priority:[[newRequest.userInfo objectForKey:@"priority"] integerValue]] startAsynchronous]; |
181 | d8426ffb | Miltiadis Vasilakis | } else { |
182 | d8426ffb | Miltiadis Vasilakis | if ([request isEqualTo:applyMetadataObjectRequest]) { |
183 | d8426ffb | Miltiadis Vasilakis | dispatch_async(dispatch_get_main_queue(), ^{ |
184 | d8426ffb | Miltiadis Vasilakis | [PithosUtilities httpRequestErrorAlertWithRequest:applyMetadataObjectRequest]; |
185 | d8426ffb | Miltiadis Vasilakis | }); |
186 | d8426ffb | Miltiadis Vasilakis | @synchronized(self) { |
187 | d8426ffb | Miltiadis Vasilakis | [applyMetadataObjectRequest release]; |
188 | d8426ffb | Miltiadis Vasilakis | applyMetadataObjectRequest = nil; |
189 | d8426ffb | Miltiadis Vasilakis | } |
190 | d8426ffb | Miltiadis Vasilakis | } else if ([request isEqualTo:refreshMetadataObjectRequest]) { |
191 | d8426ffb | Miltiadis Vasilakis | dispatch_async(dispatch_get_main_queue(), ^{ |
192 | d8426ffb | Miltiadis Vasilakis | [PithosUtilities httpRequestErrorAlertWithRequest:refreshMetadataObjectRequest]; |
193 | d8426ffb | Miltiadis Vasilakis | }); |
194 | d8426ffb | Miltiadis Vasilakis | @synchronized(self) { |
195 | d8426ffb | Miltiadis Vasilakis | [refreshMetadataObjectRequest release]; |
196 | d8426ffb | Miltiadis Vasilakis | refreshMetadataObjectRequest = nil; |
197 | d8426ffb | Miltiadis Vasilakis | } |
198 | 5915687e | Miltiadis Vasilakis | } |
199 | 5915687e | Miltiadis Vasilakis | } |
200 | 5f54c6be | Miltiadis Vasilakis | [pool drain]; |
201 | 5915687e | Miltiadis Vasilakis | } |
202 | 5915687e | Miltiadis Vasilakis | |
203 | 515cd8db | Miltiadis Vasilakis | #pragma mark - |
204 | 4ae10a2b | Miltiadis Vasilakis | #pragma mark Info |
205 | 4ae10a2b | Miltiadis Vasilakis | |
206 | 4ae10a2b | Miltiadis Vasilakis | - (void)applyInfo { |
207 | 4ae10a2b | Miltiadis Vasilakis | @synchronized(self) { |
208 | 4ae10a2b | Miltiadis Vasilakis | if (applyMetadataObjectRequest == nil) { |
209 | 4ae10a2b | Miltiadis Vasilakis | [[pithosNodeInfoController window] makeFirstResponder:nil]; |
210 | af3b9f06 | Miltiadis Vasilakis | if (sharingAccount) { |
211 | 919cb043 | Miltiadis Vasilakis | applyMetadataObjectRequest = [[ASIPithosObjectRequest updateObjectMetadataRequestWithPithos:pithos |
212 | 919cb043 | Miltiadis Vasilakis | containerName:pithosContainer.name |
213 | 919cb043 | Miltiadis Vasilakis | objectName:pithosObject.name |
214 | 919cb043 | Miltiadis Vasilakis | contentEncoding:nil |
215 | 919cb043 | Miltiadis Vasilakis | contentDisposition:nil |
216 | 919cb043 | Miltiadis Vasilakis | manifest:nil |
217 | 919cb043 | Miltiadis Vasilakis | sharing:nil |
218 | 919cb043 | Miltiadis Vasilakis | isPublic:(isPublic ? ASIPithosObjectRequestPublicTrue : ASIPithosObjectRequestPublicFalse) |
219 | 919cb043 | Miltiadis Vasilakis | metadata:pithosObject.metadata |
220 | 919cb043 | Miltiadis Vasilakis | update:NO] retain]; |
221 | 919cb043 | Miltiadis Vasilakis | [applyMetadataObjectRequest setRequestUserFromDefaultTo:sharingAccount withPithos:pithos]; |
222 | af3b9f06 | Miltiadis Vasilakis | } else { |
223 | 919cb043 | Miltiadis Vasilakis | applyMetadataObjectRequest = [[ASIPithosObjectRequest updateObjectMetadataRequestWithPithos:pithos |
224 | 919cb043 | Miltiadis Vasilakis | containerName:pithosContainer.name |
225 | 919cb043 | Miltiadis Vasilakis | objectName:pithosObject.name |
226 | 919cb043 | Miltiadis Vasilakis | contentEncoding:pithosObject.contentEncoding |
227 | 919cb043 | Miltiadis Vasilakis | contentDisposition:pithosObject.contentDisposition |
228 | 919cb043 | Miltiadis Vasilakis | manifest:pithosObject.manifest |
229 | 919cb043 | Miltiadis Vasilakis | sharing:(pithosObject.sharing ? pithosObject.sharing : @"") |
230 | 919cb043 | Miltiadis Vasilakis | isPublic:(isPublic ? ASIPithosObjectRequestPublicTrue : ASIPithosObjectRequestPublicFalse) |
231 | 919cb043 | Miltiadis Vasilakis | metadata:pithosObject.metadata |
232 | 919cb043 | Miltiadis Vasilakis | update:NO] retain]; |
233 | af3b9f06 | Miltiadis Vasilakis | } |
234 | 4ae10a2b | Miltiadis Vasilakis | applyMetadataObjectRequest.delegate = self; |
235 | 5f54c6be | Miltiadis Vasilakis | applyMetadataObjectRequest.didFinishSelector = @selector(performRequestFinishedDelegateInBackground:); |
236 | 5f54c6be | Miltiadis Vasilakis | applyMetadataObjectRequest.didFailSelector = @selector(performRequestFailedDelegateInBackground:); |
237 | 5f54c6be | Miltiadis Vasilakis | applyMetadataObjectRequest.userInfo = [NSMutableDictionary dictionaryWithObjectsAndKeys: |
238 | 5f54c6be | Miltiadis Vasilakis | [NSNumber numberWithInteger:NSOperationQueuePriorityHigh], @"priority", |
239 | 5f54c6be | Miltiadis Vasilakis | [NSNumber numberWithUnsignedInteger:10], @"retries", |
240 | 5f54c6be | Miltiadis Vasilakis | NSStringFromSelector(@selector(objectRequestFinished:)), @"didFinishSelector", |
241 | 5f54c6be | Miltiadis Vasilakis | NSStringFromSelector(@selector(objectRequestFailed:)), @"didFailSelector", |
242 | 5f54c6be | Miltiadis Vasilakis | nil]; |
243 | 1b1e6fa1 | Miltiadis Vasilakis | [[PithosUtilities prepareRequest:applyMetadataObjectRequest priority:NSOperationQueuePriorityHigh] startAsynchronous]; |
244 | 4ae10a2b | Miltiadis Vasilakis | } |
245 | 4ae10a2b | Miltiadis Vasilakis | } |
246 | 4ae10a2b | Miltiadis Vasilakis | } |
247 | 4ae10a2b | Miltiadis Vasilakis | |
248 | 4ae10a2b | Miltiadis Vasilakis | - (void)refreshInfo { |
249 | 4ae10a2b | Miltiadis Vasilakis | @synchronized(self) { |
250 | 4ae10a2b | Miltiadis Vasilakis | if (refreshMetadataObjectRequest == nil) { |
251 | 919cb043 | Miltiadis Vasilakis | refreshMetadataObjectRequest = [[ASIPithosObjectRequest objectMetadataRequestWithPithos:pithos |
252 | 919cb043 | Miltiadis Vasilakis | containerName:pithosContainer.name |
253 | 919cb043 | Miltiadis Vasilakis | objectName:pithosObject.name] retain]; |
254 | af3b9f06 | Miltiadis Vasilakis | if (sharingAccount) |
255 | 919cb043 | Miltiadis Vasilakis | [refreshMetadataObjectRequest setRequestUserFromDefaultTo:sharingAccount withPithos:pithos]; |
256 | 4ae10a2b | Miltiadis Vasilakis | refreshMetadataObjectRequest.delegate = self; |
257 | 5f54c6be | Miltiadis Vasilakis | refreshMetadataObjectRequest.didFinishSelector = @selector(performRequestFinishedDelegateInBackground:); |
258 | 5f54c6be | Miltiadis Vasilakis | refreshMetadataObjectRequest.didFailSelector = @selector(performRequestFailedDelegateInBackground:); |
259 | 5f54c6be | Miltiadis Vasilakis | refreshMetadataObjectRequest.userInfo = [NSMutableDictionary dictionaryWithObjectsAndKeys: |
260 | 5f54c6be | Miltiadis Vasilakis | [NSNumber numberWithInteger:NSOperationQueuePriorityHigh], @"priority", |
261 | 5f54c6be | Miltiadis Vasilakis | [NSNumber numberWithUnsignedInteger:10], @"retries", |
262 | 5f54c6be | Miltiadis Vasilakis | NSStringFromSelector(@selector(objectRequestFinished:)), @"didFinishSelector", |
263 | 5f54c6be | Miltiadis Vasilakis | NSStringFromSelector(@selector(objectRequestFailed:)), @"didFailSelector", |
264 | 5f54c6be | Miltiadis Vasilakis | nil]; |
265 | 4ae10a2b | Miltiadis Vasilakis | refreshMetadataObjectRequest.downloadCache = [ASIDownloadCache sharedCache]; |
266 | 1b1e6fa1 | Miltiadis Vasilakis | [[PithosUtilities prepareRequest:refreshMetadataObjectRequest priority:NSOperationQueuePriorityHigh] startAsynchronous]; |
267 | 4ae10a2b | Miltiadis Vasilakis | } |
268 | 4ae10a2b | Miltiadis Vasilakis | } |
269 | 4ae10a2b | Miltiadis Vasilakis | } |
270 | 4ae10a2b | Miltiadis Vasilakis | |
271 | 4ae10a2b | Miltiadis Vasilakis | #pragma mark - |
272 | 515cd8db | Miltiadis Vasilakis | #pragma mark Actions |
273 | 515cd8db | Miltiadis Vasilakis | |
274 | 515cd8db | Miltiadis Vasilakis | - (void)showPithosNodeInfo:(id)sender { |
275 | 515cd8db | Miltiadis Vasilakis | if (!pithosNodeInfoController) |
276 | 515cd8db | Miltiadis Vasilakis | pithosNodeInfoController = [[PithosObjectNodeInfoController alloc] initWithPithosNode:self]; |
277 | 515cd8db | Miltiadis Vasilakis | [pithosNodeInfoController showWindow:sender]; |
278 | 515cd8db | Miltiadis Vasilakis | [[pithosNodeInfoController window] makeKeyAndOrderFront:sender]; |
279 | 515cd8db | Miltiadis Vasilakis | [NSApp activateIgnoringOtherApps:YES]; |
280 | 515cd8db | Miltiadis Vasilakis | } |
281 | 515cd8db | Miltiadis Vasilakis | |
282 | d8d08dc1 | Miltiadis Vasilakis | @end |