forked from shirosaki/enjoyable
-
Notifications
You must be signed in to change notification settings - Fork 0
/
NJOutputMapping.m
55 lines (46 loc) · 1.35 KB
/
NJOutputMapping.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
//
// NJOutputMapping.m
// Enjoy
//
// Created by Sam McCall on 6/05/09.
//
#import "NJOutputMapping.h"
#import "EnjoyableApplicationDelegate.h"
#import "NJMapping.h"
@implementation NJOutputMapping
+ (NSString *)serializationCode {
return @"mapping";
}
- (NSDictionary *)serialize {
NSString *name = _mapping ? _mapping.name : self.mappingName;
return name
? @{ @"type": self.class.serializationCode, @"name": name }
: nil;
}
+ (NJOutputMapping *)outputWithSerialization:(NSDictionary *)serialization {
NSString *name = serialization[@"name"];
NJOutputMapping *output = [[NJOutputMapping alloc] init];
output.mappingName = name;
return name ? output : nil;
}
- (void)trigger {
EnjoyableApplicationDelegate *ctrl = (EnjoyableApplicationDelegate *)NSApplication.sharedApplication.delegate;
if (_mapping) {
[ctrl.ic activateMapping:_mapping];
self.mappingName = _mapping.name;
} else {
// TODO: Show an error message? Unobtrusively since something
// is probably running.
}
}
- (void)postLoadProcess:(id <NSFastEnumeration>)allMappings {
if (!self.mapping) {
for (NJMapping *mapping in allMappings) {
if ([mapping.name isEqualToString:self.mappingName]) {
self.mapping = mapping;
break;
}
}
}
}
@end