-
Notifications
You must be signed in to change notification settings - Fork 0
/
SelectStop.m
91 lines (71 loc) · 3.03 KB
/
SelectStop.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
//
// StopChoices.m
// WUSTL Circulator
//
// Created by Vinoo Ganesh.
// Copyright (c) 2013 Vinoo Ganesh. All rights reserved.
//
#import "SelectStop.h"
#import "ShowScheduledTimes.h"
#import "StopHandler.h"
@implementation SelectStop
@synthesize selectedPeriod;
- (void)viewDidLoad
{
[super viewDidLoad];
so = [[StopHandler alloc] init];
}
- (void)viewWillAppear:(BOOL)animated
{
NSIndexPath *selection = [myTableView indexPathForSelectedRow];
if (selection)
[myTableView deselectRowAtIndexPath:selection animated:YES];
locations = [self sortedLocations];
[myTableView performSelectorOnMainThread:@selector(reloadData) withObject:nil waitUntilDone:NO];
}
-(NSArray*) sortedLocations{
NSArray *unsortedLocations = [NSArray arrayWithObjects:@"Lee Hall", @"Clock Tower", @"Mallinckrodt", @"Skinker Station", @"Millbrook Garage", @"Brookings",nil];
NSMutableArray *locationNextTime = [[NSMutableArray alloc] init];
NSDateFormatter* formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"hh:mm a"];
for(NSString *loc in unsortedLocations){
[locationNextTime addObject:[formatter dateFromString:[so getNextScheduledStopTime:loc period:selectedPeriod]]];
}
NSDictionary *dict = [NSDictionary dictionaryWithObjects:locationNextTime forKeys:unsortedLocations];
return [dict keysSortedByValueUsingSelector:@selector(compare:)];
}
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
NSArray *sectionHeaders = [[NSArray alloc]initWithObjects:@"Circulator Schedule By Location",nil];
return [sectionHeaders objectAtIndex:section];
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [locations count];
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *curStop = [locations objectAtIndex:indexPath.row];
NSString *tableIdentifier = @"StopCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:tableIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:tableIdentifier];
}
cell.textLabel.text = curStop;
cell.detailTextLabel.text = [NSString stringWithFormat:@"%@",[so getNextScheduledStopTime:curStop period:selectedPeriod]];
return cell;
}
-(IBAction)refreshTableData: (id)sender{
locations = [self sortedLocations];
[myTableView reloadData];
}
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([segue.identifier isEqualToString:@"ShowTimesSegue"]) {
ShowScheduledTimes *locVC = segue.destinationViewController;
NSIndexPath *indexPath = [myTableView indexPathForSelectedRow];
locVC.selectedStop = [locations objectAtIndex:indexPath.row];
locVC.selectedPeriod = selectedPeriod;
locVC.fullSelectedOption = [selectedPeriod stringByAppendingFormat:@"%@%@",@" - ", locVC.selectedStop];
}
}
@end