home *** CD-ROM | disk | FTP | other *** search
/ Big Green CD 8 / BGCD_8_Dev.iso / Rhapsody / Graphics / ImageBrowser-1.0 / DAPreferences.m < prev    next >
Encoding:
Text File  |  1998-01-11  |  2.8 KB  |  101 lines

  1. /* DAPreferences.m created by aspinall on Sun 11-Jan-1998 */
  2.  
  3. #import "DAPreferences.h"
  4. #import "FilteredFileInfo.h"
  5.  
  6. @implementation DAPreferences
  7.  
  8. static    DAPreferences    *_shared_pref = nil;
  9.  
  10. + (id)shared
  11. {
  12.     if ( _shared_pref == nil )
  13.         _shared_pref = [[DAPreferences alloc] init];
  14.  
  15.     return _shared_pref;
  16. }
  17.  
  18. - init
  19. {
  20.     self = [super init];
  21.     if ( self )
  22.     {
  23.         imageFilterTypes = [[[NSUserDefaults standardUserDefaults] dictionaryForKey:FilterForExtensionsDefault] mutableCopy];
  24.     }
  25.     return self;
  26. }
  27.  
  28. - (void)display
  29. {
  30.     [tableView reloadData];
  31.     [super display];
  32. }
  33.  
  34. - (void)addImageType:(id)sender
  35. {
  36.     [imageFilterTypes setObject:@"New image file extension" forKey:@"ext"];
  37.     [[NSUserDefaults standardUserDefaults] setObject:imageFilterTypes forKey:FilterForExtensionsDefault];
  38.     [tableView reloadData];
  39. }
  40. - (void)deleteImageType:(id)sender
  41. {
  42.     NSArray *types = [imageFilterTypes allKeys];
  43.     int    row = [tableView selectedRow];
  44.  
  45.     if ( row < [types count] )
  46.     {
  47.         NSString *key = [types objectAtIndex:row];
  48.         [imageFilterTypes removeObjectForKey:key];
  49.         [[NSUserDefaults standardUserDefaults] setObject:imageFilterTypes forKey:FilterForExtensionsDefault];
  50.         [tableView reloadData];
  51.     }
  52. }
  53.  
  54. - (int)numberOfRowsInTableView:(NSTableView *)tableView;
  55. {
  56.     return [[imageFilterTypes allKeys] count];
  57. }
  58. - (id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(int)row;
  59. {
  60.     NSString    *retVal = nil;
  61.     NSArray    *keys = [[imageFilterTypes allKeys] sortedArrayUsingSelector:@selector(compare:)];
  62.     
  63.     if ( row < [keys count] )
  64.     {
  65.         retVal = [keys objectAtIndex:row];
  66.         if ( [(NSString *)[tableColumn identifier] compare:@"description"] == NSOrderedSame )
  67.         {
  68.             retVal = [imageFilterTypes objectForKey:retVal];
  69.         }
  70.     }
  71.  
  72.     return retVal;
  73. }
  74. - (void)tableView:(NSTableView *)tableView setObjectValue:(id)object forTableColumn:(NSTableColumn *)tableColumn row:(int)row;
  75. {
  76.     NSArray    *keys = [[imageFilterTypes allKeys] sortedArrayUsingSelector:@selector(compare:)];
  77.     
  78.     if ( row < [keys count] )
  79.     {
  80.         NSString *aKey = [keys objectAtIndex:row];
  81.         if ( [(NSString *)[tableColumn identifier] compare:@"description"] == NSOrderedSame )
  82.         {
  83.             if ( [(NSString *)[imageFilterTypes objectForKey:aKey] compare:object] != NSOrderedSame )
  84.             {
  85.                [imageFilterTypes setObject:object forKey:aKey];
  86.             }
  87.         }
  88.         else
  89.         {
  90.             if ( [aKey compare:object] != NSOrderedSame )
  91.             {
  92.                 [imageFilterTypes setObject:[imageFilterTypes objectForKey:aKey] forKey:object];
  93.                 [imageFilterTypes removeObjectForKey:aKey];
  94.             }
  95.         }
  96.     }
  97.     [[NSUserDefaults standardUserDefaults] setObject:imageFilterTypes forKey:FilterForExtensionsDefault];
  98. }
  99.  
  100. @end
  101.