Statistics
| Branch: | Tag: | Revision:

root / pithos-macos / PithosBrowserController.h @ d8426ffb

History | View | Annotate | Download (4.7 kB)

1 d8d08dc1 Miltiadis Vasilakis
//
2 d8d08dc1 Miltiadis Vasilakis
//  PithosBrowserController.h
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 e5fdf4d9 Miltiadis Vasilakis
// Redistribution and use in source and binary forms, with or
8 e5fdf4d9 Miltiadis Vasilakis
// without modification, are permitted provided that the following
9 e5fdf4d9 Miltiadis Vasilakis
// conditions are met:
10 e5fdf4d9 Miltiadis Vasilakis
// 
11 e5fdf4d9 Miltiadis Vasilakis
//   1. Redistributions of source code must retain the above
12 e5fdf4d9 Miltiadis Vasilakis
//      copyright notice, this list of conditions and the following
13 e5fdf4d9 Miltiadis Vasilakis
//      disclaimer.
14 e5fdf4d9 Miltiadis Vasilakis
// 
15 e5fdf4d9 Miltiadis Vasilakis
//   2. Redistributions in binary form must reproduce the above
16 e5fdf4d9 Miltiadis Vasilakis
//      copyright notice, this list of conditions and the following
17 e5fdf4d9 Miltiadis Vasilakis
//      disclaimer in the documentation and/or other materials
18 e5fdf4d9 Miltiadis Vasilakis
//      provided with the distribution.
19 e5fdf4d9 Miltiadis Vasilakis
// 
20 e5fdf4d9 Miltiadis Vasilakis
// THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``AS IS'' AND ANY EXPRESS
21 e5fdf4d9 Miltiadis Vasilakis
// OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
22 e5fdf4d9 Miltiadis Vasilakis
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23 e5fdf4d9 Miltiadis Vasilakis
// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GRNET S.A OR
24 e5fdf4d9 Miltiadis Vasilakis
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25 e5fdf4d9 Miltiadis Vasilakis
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26 e5fdf4d9 Miltiadis Vasilakis
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
27 e5fdf4d9 Miltiadis Vasilakis
// USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
28 e5fdf4d9 Miltiadis Vasilakis
// AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29 e5fdf4d9 Miltiadis Vasilakis
// LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
30 e5fdf4d9 Miltiadis Vasilakis
// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
31 e5fdf4d9 Miltiadis Vasilakis
// POSSIBILITY OF SUCH DAMAGE.
32 e5fdf4d9 Miltiadis Vasilakis
// 
33 e5fdf4d9 Miltiadis Vasilakis
// The views and conclusions contained in the software and
34 e5fdf4d9 Miltiadis Vasilakis
// documentation are those of the authors and should not be
35 e5fdf4d9 Miltiadis Vasilakis
// interpreted as representing official policies, either expressed
36 e5fdf4d9 Miltiadis Vasilakis
// or implied, of GRNET S.A.
37 d8d08dc1 Miltiadis Vasilakis
38 d8d08dc1 Miltiadis Vasilakis
#import <Cocoa/Cocoa.h>
39 470e6f81 Miltiadis Vasilakis
#import "PithosActivityFacility.h"
40 919cb043 Miltiadis Vasilakis
@class ASIPithos;
41 e5fdf4d9 Miltiadis Vasilakis
@class PithosNode;
42 4bf68b77 Miltiadis Vasilakis
@class PithosAccountNode;
43 af3b9f06 Miltiadis Vasilakis
@class PithosSharingAccountsNode;
44 20f54e18 Miltiadis Vasilakis
@class PithosEmptyNode;
45 470e6f81 Miltiadis Vasilakis
@class PithosActivityFacility;
46 4c1c46fd Miltiadis Vasilakis
@class ASINetworkQueue;
47 d8d08dc1 Miltiadis Vasilakis
48 470e6f81 Miltiadis Vasilakis
@interface PithosBrowserController : NSWindowController <NSBrowserDelegate, NSSplitViewDelegate, NSOutlineViewDelegate, NSOutlineViewDataSource, NSMenuDelegate, PithosActivityFacilityDelegate> {
49 919cb043 Miltiadis Vasilakis
    BOOL browserInitialized;
50 d8426ffb Miltiadis Vasilakis
    BOOL browserActive;
51 919cb043 Miltiadis Vasilakis
    
52 919cb043 Miltiadis Vasilakis
    ASIPithos *pithos;
53 919cb043 Miltiadis Vasilakis
    
54 e5fdf4d9 Miltiadis Vasilakis
    PithosNode *rootNode;
55 4bf68b77 Miltiadis Vasilakis
    PithosAccountNode *accountNode;
56 20f54e18 Miltiadis Vasilakis
    PithosEmptyNode *containersNode;
57 20f54e18 Miltiadis Vasilakis
    NSMutableArray *containersNodeChildren;
58 20f54e18 Miltiadis Vasilakis
    PithosEmptyNode *sharedNode;
59 20f54e18 Miltiadis Vasilakis
    PithosAccountNode *mySharedNode;
60 af3b9f06 Miltiadis Vasilakis
    PithosSharingAccountsNode *othersSharedNode;
61 9f3a92de Miltiadis Vasilakis
    
62 9f3a92de Miltiadis Vasilakis
    NSViewController *sharedPreviewController;
63 857217b0 Miltiadis Vasilakis
    
64 3b5f0a19 Miltiadis Vasilakis
    NSSplitView *verticalSplitView;
65 3b5f0a19 Miltiadis Vasilakis
    NSSplitView *horizontalSplitView;
66 3b5f0a19 Miltiadis Vasilakis
    NSView *leftTopView;
67 3b5f0a19 Miltiadis Vasilakis
    NSView *leftBottomView;
68 6a9b9f40 Miltiadis Vasilakis
    NSOutlineView *outlineView;
69 6a9b9f40 Miltiadis Vasilakis
    NSBrowser *browser;
70 1b1e6fa1 Miltiadis Vasilakis
    NSMenu *outlineViewMenu;
71 1b1e6fa1 Miltiadis Vasilakis
    NSMenu *browserMenu;
72 d41b3577 Miltiadis Vasilakis
    
73 d41b3577 Miltiadis Vasilakis
    NSArray *draggedNodes;
74 d41b3577 Miltiadis Vasilakis
    PithosNode *draggedParentNode;
75 c950a94d Miltiadis Vasilakis
    
76 c950a94d Miltiadis Vasilakis
    NSArray *clipboardNodes;
77 c950a94d Miltiadis Vasilakis
    PithosNode *clipboardParentNode;
78 c950a94d Miltiadis Vasilakis
    BOOL clipboardCopy;
79 470e6f81 Miltiadis Vasilakis
    
80 470e6f81 Miltiadis Vasilakis
    NSTextField *activityTextField;
81 470e6f81 Miltiadis Vasilakis
    NSProgressIndicator *activityProgressIndicator;
82 470e6f81 Miltiadis Vasilakis
    PithosActivityFacility *activityFacility;
83 2943d6d4 Miltiadis Vasilakis
    
84 2943d6d4 Miltiadis Vasilakis
    NSTimer *refreshTimer;
85 4c1c46fd Miltiadis Vasilakis
    
86 4c1c46fd Miltiadis Vasilakis
    ASINetworkQueue *moveNetworkQueue;
87 4c1c46fd Miltiadis Vasilakis
    ASINetworkQueue *copyNetworkQueue;
88 4c1c46fd Miltiadis Vasilakis
    ASINetworkQueue *deleteNetworkQueue;
89 4c1c46fd Miltiadis Vasilakis
    ASINetworkQueue *uploadNetworkQueue;
90 4c1c46fd Miltiadis Vasilakis
    ASINetworkQueue *downloadNetworkQueue;
91 d8426ffb Miltiadis Vasilakis
    NSOperationQueue *moveQueue;
92 d8426ffb Miltiadis Vasilakis
    NSOperationQueue *copyQueue;
93 d8426ffb Miltiadis Vasilakis
    NSOperationQueue *deleteQueue;
94 d8426ffb Miltiadis Vasilakis
    NSOperationQueue *uploadQueue;
95 d8426ffb Miltiadis Vasilakis
    NSOperationQueue *downloadQueue;
96 d8426ffb Miltiadis Vasilakis
    NSOperationQueue *moveCallbackQueue;
97 d8426ffb Miltiadis Vasilakis
    NSOperationQueue *copyCallbackQueue;
98 d8426ffb Miltiadis Vasilakis
    NSOperationQueue *deleteCallbackQueue;
99 d8426ffb Miltiadis Vasilakis
    NSOperationQueue *uploadCallbackQueue;
100 d8426ffb Miltiadis Vasilakis
    NSOperationQueue *downloadCallbackQueue;
101 d8d08dc1 Miltiadis Vasilakis
}
102 d8d08dc1 Miltiadis Vasilakis
103 919cb043 Miltiadis Vasilakis
@property (nonatomic, retain) ASIPithos *pithos;
104 919cb043 Miltiadis Vasilakis
105 2943d6d4 Miltiadis Vasilakis
@property (nonatomic, retain) PithosAccountNode *accountNode;
106 470e6f81 Miltiadis Vasilakis
107 3b5f0a19 Miltiadis Vasilakis
@property (nonatomic, assign) IBOutlet NSSplitView *verticalSplitView;
108 3b5f0a19 Miltiadis Vasilakis
@property (nonatomic, assign) IBOutlet NSSplitView *horizontalSplitView;
109 3b5f0a19 Miltiadis Vasilakis
@property (nonatomic, assign) IBOutlet NSView *leftTopView;
110 3b5f0a19 Miltiadis Vasilakis
@property (nonatomic, assign) IBOutlet NSView *leftBottomView;
111 857217b0 Miltiadis Vasilakis
@property (nonatomic, assign) IBOutlet NSOutlineView *outlineView;
112 857217b0 Miltiadis Vasilakis
@property (nonatomic, assign) IBOutlet NSBrowser *browser;
113 1b1e6fa1 Miltiadis Vasilakis
@property (nonatomic, assign) IBOutlet NSMenu *outlineViewMenu;
114 1b1e6fa1 Miltiadis Vasilakis
@property (nonatomic, assign) IBOutlet NSMenu *browserMenu;
115 e5fdf4d9 Miltiadis Vasilakis
116 d41b3577 Miltiadis Vasilakis
@property (nonatomic, retain) NSArray *draggedNodes;
117 d41b3577 Miltiadis Vasilakis
@property (nonatomic, retain) PithosNode *draggedParentNode;
118 d41b3577 Miltiadis Vasilakis
119 c950a94d Miltiadis Vasilakis
@property (nonatomic, retain) NSArray *clipboardNodes;
120 c950a94d Miltiadis Vasilakis
@property (nonatomic, retain) PithosNode *clipboardParentNode;
121 c950a94d Miltiadis Vasilakis
@property (nonatomic, assign) BOOL clipboardCopy;
122 c950a94d Miltiadis Vasilakis
123 470e6f81 Miltiadis Vasilakis
@property (nonatomic, assign) IBOutlet NSTextField *activityTextField;
124 470e6f81 Miltiadis Vasilakis
@property (nonatomic, assign) IBOutlet NSProgressIndicator *activityProgressIndicator;
125 470e6f81 Miltiadis Vasilakis
126 1b1e6fa1 Miltiadis Vasilakis
- (IBAction)forceRefresh:(id)sender;
127 e5fdf4d9 Miltiadis Vasilakis
- (IBAction)refresh:(id)sender;
128 d8426ffb Miltiadis Vasilakis
- (void)resetBrowser;
129 d8426ffb Miltiadis Vasilakis
- (void)startBrowser;
130 d8426ffb Miltiadis Vasilakis
- (BOOL)operationsPending;
131 e5fdf4d9 Miltiadis Vasilakis
132 d8d08dc1 Miltiadis Vasilakis
@end