This is ProgramController.m in view mode; [Download] [Up]
#import "ProgramController.h" #import "Program.h" @implementation ProgramController - (id)init { NSCalendarDate *aDate; Program *aProgram; self = [super init]; programList = [[NSMutableArray alloc] init]; aDate = [NSCalendarDate dateWithString:@"8/13/1996 23:45" calendarFormat:@"%m/%d/%Y %H:%M"]; aProgram = [[Program alloc] initWithTitle:@"Faster, Pussycat, Kill Kill!" channel:@"Cinerip" broadcastDate:aDate cost:@"$2.50"]; [programList addObject:aProgram]; [aProgram release]; aDate = [NSCalendarDate dateWithString:@"8/14/1996 21:00" calendarFormat:@"%m/%d/%Y %H:%M"]; aProgram = [[Program alloc] initWithTitle:@"JFK" channel:@"The Conspiracy Channel" broadcastDate:aDate cost:@"$1.50"]; [programList addObject:aProgram]; [aProgram release]; aDate = [NSCalendarDate dateWithString:@"8/15/1996 19:00" calendarFormat:@"%m/%d/%Y %H:%M"]; aProgram = [[Program alloc] initWithTitle:@"It's a Wonderful Life" channel:@"Movie Classics" broadcastDate:aDate cost:@"$1.99"]; [programList addObject:aProgram]; [aProgram release]; return self; } - (void)updateList:(id)sender { [table reloadData]; return; } - (void)tableClicked:(id)sender { Program *selectedProgram; selectedProgram = [self selectedProgram]; [channelField setStringValue:[selectedProgram channel]]; [costField setStringValue:[selectedProgram cost]]; return; } - (Program *)selectedProgram { int row; Program *theProgram; row = [table selectedRow]; theProgram = [programList objectAtIndex:row]; return theProgram; } - (int)numberOfRowsInTableView:(NSTableView *)tableView { return [programList count]; } - (id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(int)row { Program *theProgram = [programList objectAtIndex:row]; id colID = [tableColumn identifier]; if (!theProgram) return nil; if ([colID isEqual:@"title"]) return [theProgram title]; else if ([colID isEqual:@"broadcastDate"]) { return [theProgram broadcastDate]; } else return nil; } @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.