Refactor use of pithos objects to accommodate
[pithos-macos] / pithos-macos / PithosBrowserController.h
index eef7575..a55b7c7 100644 (file)
@@ -2,7 +2,7 @@
 //  PithosBrowserController.h
 //  pithos-macos
 //
-// Copyright 2011-2012 GRNET S.A. All rights reserved.
+// Copyright 2011-2013 GRNET S.A. All rights reserved.
 //
 // Redistribution and use in source and binary forms, with or
 // without modification, are permitted provided that the following
@@ -37,7 +37,7 @@
 
 #import <Cocoa/Cocoa.h>
 #import "PithosActivityFacility.h"
-@class ASIPithos;
+@class PithosAccount;
 @class PithosNode;
 @class PithosAccountNode;
 @class PithosSharingAccountsNode;
@@ -47,9 +47,9 @@
 
 @interface PithosBrowserController : NSWindowController <NSBrowserDelegate, NSSplitViewDelegate, NSOutlineViewDelegate, NSOutlineViewDataSource, NSMenuDelegate, PithosActivityFacilityDelegate> {
     BOOL browserInitialized;
+    BOOL browserActive;
     
-    ASIPithos *pithos;
-    
+    PithosAccount *pithosAccountManager;
     PithosNode *rootNode;
     PithosAccountNode *accountNode;
     PithosEmptyNode *containersNode;
     
     NSViewController *sharedPreviewController;
     
-    NSSplitView *verticalSplitView;
-    NSSplitView *horizontalSplitView;
-    NSView *leftTopView;
-    NSView *leftBottomView;
-    NSOutlineView *outlineView;
-    NSBrowser *browser;
-    NSMenu *outlineViewMenu;
-    NSMenu *browserMenu;
+    IBOutlet NSSplitView *verticalSplitView;
+    IBOutlet NSView *leftView;
+    IBOutlet NSView *rightView;
+    IBOutlet NSSplitView *horizontalSplitView;
+    IBOutlet NSView *leftTopView;
+    IBOutlet NSView *leftBottomView;
+    IBOutlet NSOutlineView *outlineView;
+    IBOutlet NSBrowser *browser;
+    IBOutlet NSMenu *outlineViewMenu;
+    IBOutlet NSMenu *browserMenu;
+    
+    BOOL editingItem;
     
     NSArray *draggedNodes;
     PithosNode *draggedParentNode;
@@ -76,8 +80,8 @@
     PithosNode *clipboardParentNode;
     BOOL clipboardCopy;
     
-    NSTextField *activityTextField;
-    NSProgressIndicator *activityProgressIndicator;
+    IBOutlet NSTextField *activityTextField;
+    IBOutlet NSProgressIndicator *activityProgressIndicator;
     PithosActivityFacility *activityFacility;
     
     NSTimer *refreshTimer;
     ASINetworkQueue *deleteNetworkQueue;
     ASINetworkQueue *uploadNetworkQueue;
     ASINetworkQueue *downloadNetworkQueue;
-    dispatch_queue_t moveQueue;
-    dispatch_queue_t copyQueue;
-    dispatch_queue_t deleteQueue;
-    dispatch_queue_t uploadQueue;
-    dispatch_queue_t downloadQueue;
+    NSOperationQueue *moveQueue;
+    NSOperationQueue *copyQueue;
+    NSOperationQueue *deleteQueue;
+    NSOperationQueue *uploadQueue;
+    NSOperationQueue *downloadQueue;
+    NSOperationQueue *moveCallbackQueue;
+    NSOperationQueue *copyCallbackQueue;
+    NSOperationQueue *deleteCallbackQueue;
+    NSOperationQueue *uploadCallbackQueue;
+    NSOperationQueue *downloadCallbackQueue;
 }
 
-@property (nonatomic, retain) ASIPithos *pithos;
-
-@property (nonatomic, retain) PithosAccountNode *accountNode;
+@property (nonatomic, strong) PithosAccount *pithosAccountManager;
+@property (nonatomic, strong) PithosAccountNode *accountNode;
 
-@property (nonatomic, assign) IBOutlet NSSplitView *verticalSplitView;
-@property (nonatomic, assign) IBOutlet NSSplitView *horizontalSplitView;
-@property (nonatomic, assign) IBOutlet NSView *leftTopView;
-@property (nonatomic, assign) IBOutlet NSView *leftBottomView;
-@property (nonatomic, assign) IBOutlet NSOutlineView *outlineView;
-@property (nonatomic, assign) IBOutlet NSBrowser *browser;
-@property (nonatomic, assign) IBOutlet NSMenu *outlineViewMenu;
-@property (nonatomic, assign) IBOutlet NSMenu *browserMenu;
+@property (nonatomic, strong) NSArray *draggedNodes;
+@property (nonatomic, strong) PithosNode *draggedParentNode;
 
-@property (nonatomic, retain) NSArray *draggedNodes;
-@property (nonatomic, retain) PithosNode *draggedParentNode;
-
-@property (nonatomic, retain) NSArray *clipboardNodes;
-@property (nonatomic, retain) PithosNode *clipboardParentNode;
+@property (nonatomic, strong) NSArray *clipboardNodes;
+@property (nonatomic, strong) PithosNode *clipboardParentNode;
 @property (nonatomic, assign) BOOL clipboardCopy;
 
-@property (nonatomic, assign) IBOutlet NSTextField *activityTextField;
-@property (nonatomic, assign) IBOutlet NSProgressIndicator *activityProgressIndicator;
-
 - (IBAction)forceRefresh:(id)sender;
 - (IBAction)refresh:(id)sender;
+- (void)resetBrowser;
+- (void)startBrowser;
+- (BOOL)operationsPending;
+- (void)downloadNode:(PithosNode *)node toDirectory:(NSString *)dirPath withNewFileName:(NSString *)newFileName 
+             version:(NSString *)version checkIfExists:(BOOL)checkIfExists;
 
 @end