e9c374ed5ec6d5df44e7dafd9c43c37f88750352
[enjoyable.git] / TargetConfig.m
1 //
2 // TargetConfig.m
3 // Enjoy
4 //
5 // Created by Sam McCall on 6/05/09.
6 //
7
8 #import "TargetConfig.h"
9
10 #import "ApplicationController.h"
11 #import "Config.h"
12 #import "ConfigsController.h"
13
14 @implementation TargetConfig
15
16 + (NSString *)serializationCode {
17 return @"cfg";
18 }
19
20 - (NSDictionary *)serialize {
21 return _config
22 ? @{ @"type": @"cfg", @"name": _config.name }
23 : @{};
24 }
25
26 + (TargetConfig *)targetDeserialize:(NSDictionary *)serialization
27 withConfigs:(NSArray *)configs {
28 NSString *name = serialization[@"name"];
29 TargetConfig *target = [[TargetConfig alloc] init];
30 for (Config *config in configs) {
31 if ([config.name isEqualToString:name]) {
32 target.config = config;
33 return target;
34 }
35 }
36 return nil;
37 }
38
39 - (void)trigger {
40 [[(ApplicationController *)[[NSApplication sharedApplication] delegate] configsController] activateConfig:_config];
41 }
42
43 @end