This is ExpenseViewMgr.m in view mode; [Download] [Up]
/*
* For legal stuff see the file COPYRIGHT
*/
#import "ExpenseViewMgr.h"
#import "ClientInspector.h"
#import "ExpenseEditor.h"
#import "Controller.h"
@interface ExpenseViewMgr(PRIVATE)
- (void)displayTotalExpenses;
- (void)displayClientExpenses;
- (float)totalExpenses;
@end
@implementation ExpenseViewMgr
- itemEditor
{
return [ExpenseEditor new];
}
/*
* Provide the add, delete and sort methods to invoke on ClientInfo objects
*/
- (SEL)addMethod
{
return @selector(addExpense:);
}
- (SEL)deleteMethod
{
return @selector(deleteExpense:);
}
- (SEL)sortMethod
{
return @selector(sortExpenses);
}
- info:(ClientInfo *)info itemAt:(int)position
{
return [info expenseAt:position];
}
- (int)itemCount:(ClientInfo *)info
{
return [info expenseCount];
}
- (void)displaySummary
{
[self displayClientExpenses];
[self displayTotalExpenses];
}
@implementation ExpenseViewMgr(PRIVATE)
- (float)totalExpenses
{
List *clientList = [[NXApp delegate] clientList];
int i, count = [clientList count];
float totalExp = 0.0;
for ( i = 0; i < count; i++ )
totalExp += [[clientList objectAt:i] totalExpenses];
return totalExp;
}
- (void)displayClientExpenses
{
char buf[20];
id info = [[ClientInspector sharedInstance] selectedClient];
if ( info ) {
sprintf( buf, "%.2f", [info totalExpenses] );
[clientExpensesField setStringValue:buf];
} else
[clientExpensesField setStringValue:""];
}
- (void)displayTotalExpenses
{
char buf[20];
sprintf( buf, "%.2f", [self totalExpenses] );
[totalExpensesField setStringValue:buf];
}
@end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.