This is Controller.m in view mode; [Download] [Up]
#import "Controller.h" #include "ServerList.h" #include "MiscString.h" @implementation Controller - init { [super init]; panelIsInitialized = FALSE; myGoServerList = [ [ [List alloc] init] initFromPref]; return self; } - initPanel { int i; if (!panelIsInitialized) { [GoServerSelectionList setTarget:self setDoubleAction:@selector(connectToServer:)]; for (i=0; i < [myGoServerList count]; i++) { id aGoServer = [myGoServerList objectAt:i]; [GoServerSelectionList insertName:[aGoServer name] alphaOrder:NO select:NO]; } [GoServerSelectionList selectRow:0]; panelIsInitialized = TRUE; } return self; } - openGoServer:sender { [GoServerSelectionPanel makeKeyAndOrderFront:self]; return self; } - connect:sender { id server = [myGoServerList objectAt:[GoServerSelectionList selectedRow] ]; [LoginDefinition setTitle:[server name]]; [ServerLogin setStringValue:[server login] ]; [ServerPassword setStringValue:[server password] ]; [ServerPort setIntValue:[server port] ]; [ServerPort selectText:self]; [LoginDefinition makeKeyAndOrderFront:self]; return self; } - connectToServer:sender { id server = [myGoServerList objectAt:[GoServerSelectionList selectedRow] ]; if ([sender isMemberOf:[Button class] ]) { [server setLogin:(char*)[ServerLogin stringValue] ]; [server setPassword:(char*)[ServerPassword stringValue] ]; [server setPort:[ServerPort intValue] ]; } /* sender is MatrixScrollView */ /* so server is yet initialized */ [GoServerSelectionPanel orderOut:self]; [LoginDefinition orderOut:self]; [GoApplication connect:server]; return self; } - remove:sender { [myGoServerList removeObjectAt:[GoServerSelectionList selectedRow] ]; [GoServerSelectionList removeSelectedName]; return self; } - add:sender { id newServer = [ [GoServer alloc] init]; [newServer setServerName:(char*) [GoServerName stringValue] ]; [GoServerSelectionList insertName:[newServer name] alphaOrder:NO select:YES]; [myGoServerList addObject:newServer]; return self; } @end @implementation Controller(ApplicationDelegate) - appWillTerminate:sender { [ [ [myGoServerList saveToPref] freeObjects] free]; return self; } @end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.