Files
RestKit/Examples/RKDiscussionBoardExample/DiscussionBoard/Code/Controllers/DBResourceListTableViewController.m

93 lines
3.5 KiB
Objective-C

//
// DBResourceListTableViewController.m
// DiscussionBoard
//
// Created by Jeremy Ellison on 1/10/11.
// Copyright 2011 Two Toasters. All rights reserved.
//
#import "DBResourceListTableViewController.h"
#import "DBManagedObjectCache.h"
#import "DBUser.h"
#import "DBContentObject.h"
@implementation UINavigationBar (CustomImage)
- (void)drawRect:(CGRect)rect {
UIImage *image = [UIImage imageNamed:@"navigationBarBackground.png"];
[image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
}
@end
@implementation DBResourceListTableViewController
- (void)loadView {
[super loadView];
// Background styling
UIImageView* backgroundImage = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"background.png"]];
[self.navigationController.view addSubview:backgroundImage];
[self.navigationController.view sendSubviewToBack:backgroundImage];
[backgroundImage release];
self.view.backgroundColor = [UIColor clearColor];
self.tableView.backgroundColor = [UIColor clearColor];
// Setup the Table Header
UIView* tableHeaderView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 31)];
UIImageView* headerBackgroundImage = [[UIImageView alloc] initWithFrame:tableHeaderView.frame];
[headerBackgroundImage setImage:[UIImage imageNamed:@"tableHeaderBackground.png"]];
[tableHeaderView addSubview:headerBackgroundImage];
_loadedAtLabel = [[UILabel alloc] initWithFrame:CGRectMake(210, 0, 100, 22)];
_loadedAtLabel.textAlignment = UITextAlignmentCenter;
_loadedAtLabel.font = [UIFont systemFontOfSize:10.0];
_loadedAtLabel.backgroundColor = [UIColor clearColor];
_loadedAtLabel.textColor = [UIColor colorWithRed:0.53 green:0.56 blue:0.60 alpha:1];
[tableHeaderView addSubview:_loadedAtLabel];
UIButton* reloadButton = [UIButton buttonWithType:UIButtonTypeCustom];
[reloadButton setImage:[UIImage imageNamed:@"reload.png"] forState:UIControlStateNormal];
[reloadButton setFrame:CGRectMake(131, 0, 82, 23)];
[reloadButton addTarget:self action:@selector(invalidateModel) forControlEvents:UIControlEventTouchUpInside];
[tableHeaderView addSubview:reloadButton];
[self.view addSubview:tableHeaderView];
[tableHeaderView release];
UIView* tableSpacer = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 31)];
self.tableView.tableHeaderView = tableSpacer;
[tableSpacer release];
// Register for notifications. We reload the interface when authentication state changes
// or the object graph is manipulated
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(invalidateModel) name:DBUserDidLoginNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(invalidateModel) name:DBUserDidLogoutNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(invalidateModel) name:DBContentObjectDidChangeNotification object:nil];
}
- (void)viewDidUnload {
[super viewDidUnload];
TT_RELEASE_SAFELY(_loadedAtLabel);
[[NSNotificationCenter defaultCenter] removeObserver:self];
}
- (void)createModel {
self.model = [[[RKRequestTTModel alloc] initWithResourcePath:_resourcePath] autorelease];
}
- (void)didLoadModel:(BOOL)firstTime {
[super didLoadModel:firstTime];
if ([self.model isKindOfClass:[RKRequestTTModel class]]) {
RKRequestTTModel* model = (RKRequestTTModel*)self.model;
NSDateFormatter* formatter = [[[NSDateFormatter alloc] init] autorelease];
[formatter setDateFormat:@"hh:mm:ss MM/dd/yy"];
_loadedAtLabel.text = [formatter stringFromDate:model.loadedTime];
}
}
@end