#import "BPMailboxBrowserController.h" #import "BPMailAppData.h" @implementation BPMailboxBrowserController - (int)browser:(NSBrowser *)browser numberOfRowsInColumn:(int)column { NSArray *mailAccounts = [mailAppData mailAccounts]; if (column == 0) { return [mailAccounts count]; } else { // column == 1 // return number of mailboxes in selected account int selectedAccount = [browser selectedRowInColumn:0]; return [[[mailAccounts objectAtIndex:selectedAccount] mailboxNames] count]; } } // do any necessary browser setup - (void)browser:(NSBrowser *)browser willDisplayCell:(id)cell atRow:(int)row column:(int)column { NSArray *mailAccounts = [mailAppData mailAccounts]; if (column == 0) { // mail accounts column // set string value of cell [cell setStringValue:[[mailAccounts objectAtIndex:row] name]]; [cell setLeaf:NO]; } else if (column == 1) { // mailboxes column [cell setLeaf:YES]; // mailboxes don't branch off to more data // set string value of cell int selectedAccount = [browser selectedRowInColumn:0]; NSArray *mailboxes = [[mailAccounts objectAtIndex:selectedAccount] mailboxNames]; [cell setStringValue:[mailboxes objectAtIndex:row]]; } } - (void)dealloc { NSLog(@"destroying %@", self); [super dealloc]; } @end