// // RepeatModeTransformer.m // Cog // // Created by Vincent Spader on 2/18/08. // Copyright 2008 __MyCompanyName__. All rights reserved. // #import "RepeatTransformers.h" #import "PlaylistController.h" #import "Logging.h" @implementation RepeatModeTransformer + (Class)transformedValueClass { return [NSNumber class]; } + (BOOL)allowsReverseTransformation { return YES; } - (id)initWithMode:(RepeatMode) r { self = [super init]; if (self) { repeatMode = r; } return self; } // Convert from RepeatMode to BOOL - (id)transformedValue:(id)value { DLog(@"Transforming value: %@", value); if (value == nil) return nil; RepeatMode mode = (RepeatMode) [value integerValue]; if (repeatMode == mode) { return [NSNumber numberWithBool:YES]; } return [NSNumber numberWithBool:NO]; } - (id)reverseTransformedValue:(id)value { if (value == nil) return nil; BOOL enabled = [value boolValue]; if (enabled) { return [NSNumber numberWithInt:repeatMode]; } else if(repeatMode == RepeatNone) { return [NSNumber numberWithInt:RepeatAll]; } else { return [NSNumber numberWithInt:RepeatNone]; } } @end @implementation RepeatModeImageTransformer + (Class)transformedValueClass { return [NSImage class]; } + (BOOL)allowsReverseTransformation { return NO; } // Convert from string to RepeatMode - (id)transformedValue:(id)value { DLog(@"Transforming value: %@", value); if (value == nil) return nil; RepeatMode mode = [value integerValue]; if (mode == RepeatNone) { return [NSImage imageNamed:@"repeatModeOffTemplate"]; } else if (mode == RepeatOne) { return [NSImage imageNamed:@"repeatModeOneTemplate"]; } else if (mode == RepeatAlbum) { return [NSImage imageNamed:@"repeatModeAlbumTemplate"]; } else if (mode == RepeatAll) { return [NSImage imageNamed:@"repeatModeAllTemplate"]; } return nil; } @end