0f892c68681ac939695a57089538bc903c1cf06b
[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 "NJMapping.h"
12 #import "NJMappingsController.h"
13
14 @implementation TargetConfig
15
16 + (NSString *)serializationCode {
17 return @"mapping";
18 }
19
20 - (NSDictionary *)serialize {
21 return _mapping
22 ? @{ @"type": @"mapping", @"name": _mapping.name }
23 : nil;
24 }
25
26 + (TargetConfig *)targetDeserialize:(NSDictionary *)serialization
27 withMappings:(NSArray *)mappings {
28 NSString *name = serialization[@"name"];
29 TargetConfig *target = [[TargetConfig alloc] init];
30 for (NJMapping *mapping in mappings) {
31 if ([mapping.name isEqualToString:name]) {
32 target.mapping = mapping;
33 return target;
34 }
35 }
36 return nil;
37 }
38
39 - (void)trigger {
40 ApplicationController *ctrl = NSApplication.sharedApplication.delegate;
41 [ctrl.mappingsController activateMapping:_mapping];
42 }
43
44 @end