
/*
 * You may freely copy, distribute, and reuse the code in this example.
 * NeXT disclaims any warranty of any kind, expressed or  implied, as to its
 * fitness for any particular use.
 * David A. Cheslow disclaims any warranty of any kind, expressed or  implied, as to its
 * fitness for any particular use.
 */

#import <appkit/Panel.h>
#import <appkit/FormCell.h>
#import <appkit/Button.h>
#import "CWAVScrollView.h"
#import "SimpleController.h"
#import "SimpleObject.h"

@implementation SimpleController

- matrixAction:sender
{
    NXRunAlertPanel("Click!","you clicked in the cell for Simple Object # %d", NULL,NULL,NULL,[sender selectedRow]);
    return self;
}

- addName:sender
{
    id newNameObject = [[SimpleObject alloc] init];
    [newNameObject setLastName:(char *)[lastNameField stringValue]];
    [newNameObject setFirstName:(char *)[firstNameField stringValue]];
    [newNameObject setMiddleInit:(char *)[middleInitField stringValue]];
	
    [simpleList addObject:newNameObject];
    [scrollingList loadCWAVMatrix];
    [[scrollingList cwavMatrix] scrollCellToVisible:[simpleList count]-1 :0];
    [[scrollingList cwavMatrix] selectCellAt:[simpleList count]-1:0];
    return self;
}

#define LASTNAMETAG	1
#define FIRSTNAMETAG	2
#define MIDDLEINITTAG	3

- loadCWAV:cell from:(unsigned)index
{
	id currentNameObject = [simpleList objectAt:index];
	[[cell findControlWithTag:LASTNAMETAG] setStringValue:(const char *)[currentNameObject  lastName]];
	[[cell findControlWithTag:FIRSTNAMETAG] setStringValue:(const char *)[currentNameObject  firstName]];
	[[cell findControlWithTag:MIDDLEINITTAG] setStringValue:(const char *)[currentNameObject  middleInit]];
	return self;
}

- (unsigned)count
{
	return [simpleList count];
}


@end
