// // MPT_PluginControllerBase.m // AUCoderDemo // // Created by Andrew Salamon on 6/13/08. // Copyright (c) 2008 Machine Perception Laboratory, // University of California San Diego. All rights reserved. #import "MPT_PluginControllerBase.h" #import "MPT_Preferences.h" @implementation MPT_PluginControllerBase - (id)init { if( self = [super init] ) { plugins = [[NSMutableArray alloc] init]; } return self; } - (void)dealloc { [plugins release]; [super dealloc]; } - (void)setPlugins:(NSArray *)newPlugins { [plugins autorelease]; plugins = [newPlugins mutableCopy]; } - (NSArray *)plugins { return plugins; } - (NSArray *)sortedPlugins { return [[self plugins] sortedArrayUsingDescriptors:[MPT_Preferences pluginTableSortDescriptors]]; } - (NSArray *)pluginsForStep:(NSString *)step { NSMutableArray *steppers = [NSMutableArray array]; NSEnumerator *plugEnum = [plugins objectEnumerator]; id plugin; while( plugin = [plugEnum nextObject] ) { if( [[plugin step] isEqualToString:step] ) [steppers addObject:plugin]; } return steppers; } - (NSArray *)enabledPluginsForStep:(NSString *)step { NSMutableArray *steppers = [NSMutableArray array]; NSEnumerator *plugEnum = [plugins objectEnumerator]; id plugin; while( plugin = [plugEnum nextObject] ) { if( [[plugin step] isEqualToString:step] && [plugin enabled] ) [steppers addObject:plugin]; } return steppers; } - (id)pluginForPluginID:(NSString *)pluginID { NSEnumerator *plugEnum = [plugins objectEnumerator]; id plugin; while( plugin = [plugEnum nextObject] ) { if( [[plugin pluginID] isEqualToString:pluginID] ) return plugin; } return nil; } - (BOOL)removePlugin:(NSString *)pluginID { return NO; } @end