From: Andrew M. <fit...@us...> - 2006-08-29 01:25:26
|
Update of /cvsroot/radmind/radmind-assistant/rte In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv25827 Added Files: UMArrayController.h UMArrayController.m Log Message: NSArrayController custom subclass. --- NEW FILE: UMArrayController.m --- #import "UMArrayController.h" @implementation UMArrayController - ( id )init { self = [ super init ]; if ( self ) { _umSearchTerm = nil; } return( self ); } - ( NSString * )searchTerm { return( _umSearchTerm ); } - ( void )setSearchTerm: ( NSString * )searchTerm { if ( _umSearchTerm != nil ) { [ _umSearchTerm release ]; _umSearchTerm = nil; } if ( searchTerm ) { _umSearchTerm = [ searchTerm retain ]; } } /* NSSearchField-related methods */ - ( void )search: ( id )sender { if ( ![ sender isKindOfClass: [ NSSearchField class ]]) { return; } [ self setSearchTerm: [ sender stringValue ]]; [ self rearrangeObjects ]; } /* set up delegation for arranging methods? */ - ( NSArray * )arrangeObjects: ( NSArray * )objects { NSMutableArray *alternateObjects; NSAutoreleasePool *pool; NSString *lowercaseTerm, *lowercaseString; int i; if ( [ self searchTerm ] == nil || [[ self searchTerm ] isEqualToString: @"" ] ) { return( [ super arrangeObjects: objects ] ); } lowercaseTerm = [[ self searchTerm ] lowercaseString ]; alternateObjects = [ NSMutableArray arrayWithCapacity: [ objects count ]]; pool = [[ NSAutoreleasePool alloc ] init ]; for ( i = 0; i < [ objects count ]; i++ ) { id obj = [ objects objectAtIndex: i ]; if ( i && ( i % 20 == 0 )) { [ pool release ]; pool = [[ NSAutoreleasePool alloc ] init ]; } lowercaseString = [[ obj valueForKeyPath: @"hostidString" ] lowercaseString ]; if ( [ lowercaseString rangeOfString: lowercaseTerm ].location != NSNotFound ) { [ alternateObjects addObject: obj ]; continue; } lowercaseString = [[ obj valueForKeyPath: @"keytype" ] lowercaseString ]; if ( [ lowercaseString rangeOfString: lowercaseTerm ].location != NSNotFound ) { [ alternateObjects addObject: obj ]; continue; } lowercaseString = [[[ obj valueForKeyPath: @"key" ] string ] lowercaseString ]; if ( [ lowercaseString rangeOfString: lowercaseTerm ].location != NSNotFound ) { [ alternateObjects addObject: obj ]; continue; } } [ pool release ]; return( [ super arrangeObjects: alternateObjects ] ); } - ( void )addObject: ( id )object { int row = [[ self arrangedObjects ] count ]; [ object setObject: @"Untitled Filter" forKey: @"filterName" ]; [ super addObject: object ]; [ tableView editColumn: 0 row: row withEvent: nil select: YES ]; } @end --- NEW FILE: UMArrayController.h --- #import <Cocoa/Cocoa.h> @interface UMArrayController : NSArrayController { IBOutlet id tableView; NSString *_umSearchTerm; } - ( void )search: ( id )sender; @end |