Statistics
| Branch: | Tag: | Revision:

root / Classes / OpenStackViewController.m @ 7db1712d

History | View | Annotate | Download (8.1 kB)

1
//
2
//  OpenStackViewController.m
3
//  OpenStack
4
//
5
//  Created by Mike Mayo on 10/21/10.
6
//  The OpenStack project is provided under the Apache 2.0 license.
7
//
8

    
9
#import "OpenStackViewController.h"
10
#import "LogEntryModalViewController.h"
11
#import "OpenStackRequest.h"
12
#import "OpenStackAccount.h"
13
#import "UIViewController+Conveniences.h"
14
#import "APILogEntry.h"
15
#import "AnimatedProgressView.h"
16

    
17

    
18
@implementation OpenStackViewController
19

    
20
@synthesize toolbar, selectedIndexPath;
21

    
22
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation {
23
    return (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) || (toInterfaceOrientation == UIInterfaceOrientationPortrait);
24
}
25

    
26
- (void)viewDidLoad {
27
    if (self.navigationController.navigationBar) {
28
        if (UI_USER_INTERFACE_IDIOM() != UIUserInterfaceIdiomPad) {
29
            self.toolbar.tintColor = self.navigationController.navigationBar.tintColor;
30
            self.toolbar.translucent = self.navigationController.navigationBar.translucent;
31
            self.toolbar.opaque = self.navigationController.navigationBar.opaque;
32
            self.toolbar.barStyle = self.navigationController.navigationBar.barStyle;
33
        } else {
34
            self.toolbar.translucent = NO;
35
            self.toolbar.opaque = NO;            
36
            self.toolbar.tintColor = [UIColor blackColor];
37
        }
38
    }
39
    
40
    toolbarProgressView = [[AnimatedProgressView alloc] initWithProgressViewStyle:UIProgressViewStyleBar];
41
    toolbarProgressView.frame = CGRectMake(0.0, 24.0, 185.0, 10.0);
42
}
43

    
44
- (void)showToolbarInfoMessage:(NSString *)text {    
45
    if (toolbarInfoMessageVisible) {
46
        toolbarLabel.text = text;
47
        
48
    }
49
    else {
50
        UIFont *font = [UIFont boldSystemFontOfSize:12.0];
51
        CGSize stringSize = [text sizeWithFont:font constrainedToSize:CGSizeMake(226.0, 20.0f) lineBreakMode:UILineBreakModeTailTruncation];
52

    
53
        toolbarLabel = [[UILabel alloc] initWithFrame:CGRectMake(10.0, 12.0, stringSize.width, 20.0)];
54
        toolbarLabel.textColor = [UIColor whiteColor];
55
        toolbarLabel.textAlignment = UITextAlignmentLeft;
56
        toolbarLabel.font = font;
57
        toolbarLabel.backgroundColor = [UIColor clearColor];
58
        toolbarLabel.shadowOffset = CGSizeMake(0, -1.0);
59
        toolbarLabel.shadowColor = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.4];
60
        toolbarLabel.text = text;
61
    
62
        NSMutableArray *items;
63
    
64
        toolbarLabelItem = [[UIBarButtonItem alloc] initWithCustomView:toolbarLabel];
65
        items = [NSMutableArray arrayWithArray:toolbar.items];
66
        [items insertObject:toolbarLabelItem atIndex:2];
67
    
68
        toolbar.items = [NSArray arrayWithArray:items];
69
    }
70
    
71
    toolbarInfoMessageVisible = YES;
72
}
73

    
74
- (void)showToolbarActivityMessage:(NSString *)text progress:(BOOL)hasProgress {
75
    UIFont *font = [UIFont boldSystemFontOfSize:12.0];
76
    CGSize stringSize = [text sizeWithFont:font constrainedToSize:CGSizeMake(226.0, 20.0f) lineBreakMode:UILineBreakModeTailTruncation];
77
    if (toolbarActivityMessageVisible) {
78
        //[self hideToolbarActivityMessage];
79
        [toolbarLabel setFrame:CGRectMake(10.0, 12.0, stringSize.width, 20.0)];
80
        toolbarLabel.text = text;        
81
    } else {
82
        toolbarLabel = [[UILabel alloc] initWithFrame:CGRectMake(10.0, 12.0, stringSize.width, 20.0)];
83
        toolbarLabel.textColor = [UIColor whiteColor];
84
        toolbarLabel.textAlignment = UITextAlignmentLeft;
85
        toolbarLabel.font = font;
86
        toolbarLabel.backgroundColor = [UIColor clearColor];
87
        toolbarLabel.shadowOffset = CGSizeMake(0, -1.0);
88
        toolbarLabel.shadowColor = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:0.4];
89
        toolbarLabel.text = text;
90
        
91
        NSMutableArray *items;
92
        
93
        if (hasProgress) {
94
            //toolbarLabel.frame = CGRectMake(0.0, 2.0, stringSize.width, 20.0);
95
            toolbarLabel.frame = CGRectMake(0.0, 2.0, 185.0, 20.0);
96
            toolbarLabel.textAlignment = UITextAlignmentCenter;
97
            
98
            UIView *labelWithProgress = [[UIView alloc] initWithFrame:CGRectMake(0.0, 0.0, 185.0, 40.0)];
99
            
100
            [labelWithProgress addSubview:toolbarLabel];
101
            [labelWithProgress addSubview:toolbarProgressView];
102
            
103
            toolbarLabelItem = [[UIBarButtonItem alloc] initWithCustomView:labelWithProgress];
104
            //toolbarLabelItem = [[UIBarButtonItem alloc] initWithCustomView:toolbarProgressView];
105
            
106
            [toolbarProgressView setProgress:0.40 animated:YES];
107
            
108
            items = [NSMutableArray arrayWithArray:toolbar.items];
109
            
110
            [items insertObject:toolbarLabelItem atIndex:1];
111
            
112
            [labelWithProgress release];
113
        } else {
114
            toolbarActivityIndicatorView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhite];
115
            toolbarActivityIndicatorView.frame = CGRectMake(10.0, 12.0, 20.0, 20.0);
116
            [toolbarActivityIndicatorView startAnimating];
117
            
118
            toolbarActivityIndicatorItem = [[UIBarButtonItem alloc] initWithCustomView:toolbarActivityIndicatorView];
119
            toolbarLabelItem = [[UIBarButtonItem alloc] initWithCustomView:toolbarLabel];
120
            
121
            items = [NSMutableArray arrayWithArray:toolbar.items];
122
            if ([items count] > 2) {
123
                [items insertObject:toolbarActivityIndicatorItem atIndex:2];
124
                [items insertObject:toolbarLabelItem atIndex:3];
125
            } else {
126
                [items insertObject:toolbarActivityIndicatorItem atIndex:1];
127
                [items insertObject:toolbarLabelItem atIndex:2];
128
            }
129
        }
130
        
131
        toolbar.items = [NSArray arrayWithArray:items];
132
        
133
        toolbarActivityMessageVisible = YES;
134
    }    
135
}
136

    
137
- (void)showToolbarActivityMessage:(NSString *)text {
138
    [self showToolbarActivityMessage:text progress:NO];
139
}
140

    
141
- (void)hideToolbarInfoMessage {
142
    
143
    if (toolbarInfoMessageVisible) {
144
        NSMutableArray *items = [NSMutableArray arrayWithArray:toolbar.items];
145
        [items removeObject:toolbarLabelItem];
146
        toolbar.items = [NSArray arrayWithArray:items];    
147
    
148
        [toolbarLabelItem release];
149
        
150
        [toolbarLabel removeFromSuperview];
151
        [toolbarLabel release];
152
        
153
        toolbarInfoMessageVisible = NO;
154
    }
155
    
156
}
157

    
158

    
159
- (void)hideToolbarActivityMessage {
160
    
161
    if (toolbarActivityMessageVisible) {
162
        NSMutableArray *items = [NSMutableArray arrayWithArray:toolbar.items];
163
        [items removeObject:toolbarActivityIndicatorItem];
164
        [items removeObject:toolbarLabelItem];
165
        toolbar.items = [NSArray arrayWithArray:items];    
166

    
167
        [toolbarActivityIndicatorItem release];
168
        [toolbarLabelItem release];
169
        
170
        [toolbarLabel removeFromSuperview];
171
        [toolbarLabel release];
172
        
173
        [toolbarActivityIndicatorView removeFromSuperview];
174
        [toolbarActivityIndicatorView release];
175
        toolbarActivityMessageVisible = NO;
176
    }
177
}
178

    
179

    
180
- (void)addHomeButton {
181
    UIImage *buttonImage = [UIImage imageNamed:@"HomeFolderIcon.png"];
182
	
183
    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
184
    [button setImage:buttonImage forState:UIControlStateNormal];	
185
    button.frame = CGRectMake(0, 0, buttonImage.size.width, buttonImage.size.height);
186
	[button addTarget:self action:@selector(homeButtonPressed:) forControlEvents:UIControlEventTouchUpInside];
187
    UIBarButtonItem *customBarItem = [[UIBarButtonItem alloc] initWithCustomView:button];
188
    NSMutableArray *toolbarItems = [NSMutableArray arrayWithArray:self.toolbar.items];
189
    [toolbarItems addObject:customBarItem];
190
    self.toolbar.items = toolbarItems;
191
    [customBarItem release];
192
    
193
}
194

    
195

    
196
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
197
    self.selectedIndexPath = indexPath;
198
}
199

    
200
- (void)dealloc {
201
    if (toolbarActivityMessageVisible) {
202
        [self hideToolbarActivityMessage];
203
    }
204
    if (toolbarInfoMessageVisible) {
205
        [self hideToolbarInfoMessage];
206
    }
207
    
208
    [toolbarProgressView release];
209
    [selectedIndexPath release];
210
    [super dealloc];
211
}
212

    
213
@end