This is ProgramController.m in view mode; [Download] [Up]
#import "ProgramController.h" #import "Program.h" @implementation ProgramController - (id)init { NSConnection *serverConn; self = [super init]; serverConn = [NSConnection connectionWithRegisteredName:@"ProgramServer" host:@"*"]; programServer = [[serverConn rootProxy] retain]; if (!programServer) { NSRunAlertPanel(@"No server", @"Can't connect to the program server.", @"Quit", nil, nil); [NSApp terminate:nil]; } [(NSDistantObject *)programServer setProtocolForProxy:@protocol(ProgramServer)]; programList = [[programServer programs] retain]; return self; } - (void)updateList:(id)sender { [programList release]; programList = [[programServer programs] retain]; [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; } - (id <ProgramServer>)programServer { return programServer; } - (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.