This is FFAdaptorTest.m in view mode; [Download] [Up]
/* FFAdaptorTest.m:
* 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.
*
* Written by: Mai Nguyen, NeXT Developer Support
*
*
*/
#import <appkit/appkit.h>
#import <dbkit/dbkit.h>
#import <objc/List.h>
#import <objc/NXBundle.h>
#import <sys/param.h>
#import <libc.h>
#import "FFAdaptorTest.h"
@implementation FFAdaptorTest
- appDidInit:sender
{
NXRect viewFrame;
/* Try to connect to the database specified using the FileFinderAdaptor
*/
dbDatabase = [[DBDatabase alloc]init];
[dbDatabase
connectUsingAdaptor:"FileFinderAdaptor"
andString:"/NextLibrary/Documentation/NextDev/ReleaseNotes"];
if ( ![dbDatabase isConnected] ) {
NXRunAlertPanel("Failure", "Cannot connect", "OK", NULL, NULL);
return self;
}
/* Install the tableview into the custom view */
[[dbTableView getFrame:&viewFrame] free];
dbTableView = [[DBTableView alloc] initFrame:&viewFrame];
[[window contentView] addSubview:dbTableView];
[dbTableView setHorizScrollerRequired:YES];
[dbTableView setVertScrollerRequired:YES];
rootEntity = [dbDatabase entityNamed:"Files"];
dbModule = [[DBModule alloc] initDatabase:dbDatabase
entity:rootEntity];
dbFetchGroup = [dbModule rootFetchGroup];
dbRecordList = [dbFetchGroup recordList];
propList = [[List alloc] init];
[rootEntity getProperties: propList];
[dbRecordList setProperties:propList ofSource:rootEntity];
[window disableFlushWindow];
[self initTableView];
[[window reenableFlushWindow] flushWindow];
return self;
}
- initTableView
{
int i,c;
id prop;
[numRecords setIntValue:[self rowCount]];
c = [propList count];
for (i = 0; i < c; i++) {
prop = [propList objectAt:i];
[dbTableView addColumn:prop
withFormatter:[[DBTextFormatter alloc] init]
andTitle:(const char *)[prop name] at:(unsigned int)i];
}
[dbTableView setDataSource:self];
[dbTableView display];
[window makeKeyAndOrderFront:self];
return self;
}
- showAll:sender
{
[dbRecordList fetchUsingQualifier:nil];
[dbTableView display];
return self;
}
-window
{
return window;
}
- windowWillClose:sender
{
[dbRecordList free];
return self;
}
- (unsigned)rowCount
{
return ([[dbRecordList setLast] currentPosition]+1); /* zero based */
}
- (unsigned)columnCount
{
return ([propList count]); /* zero based */
}
- getValueFor: aProperty at:(unsigned)index into:aValue
{
[dbRecordList getValueFor:(id <DBProperties >)aProperty at:(unsigned)index
into:(DBValue *) aValue];
return self;
}
- setValueFor: aProperty at:(unsigned)index into:aValue
{
[dbRecordList setValueFor:(id <DBProperties >)aProperty at:(unsigned)index
into:(DBValue *) aValue];
return self;
}
@end
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.