#import "TargetConfig.h"
+#import "ApplicationController.h"
+#import "NJMapping.h"
+#import "NJMappingsController.h"
@implementation TargetConfig
-@synthesize config;
++ (NSString *)serializationCode {
+ return @"mapping";
+}
--(NSString*) stringify {
- return [[NSString alloc] initWithFormat: @"cfg~%@", [config name]];
+- (NSDictionary *)serialize {
+ return _mapping
+ ? @{ @"type": @"mapping", @"name": _mapping.name }
+ : nil;
}
-+(TargetConfig*) unstringifyImpl: (NSArray*) comps withConfigList: (NSArray*) configs {
- NSParameterAssert([comps count] == 2);
- NSString* name = [comps objectAtIndex: 1];
- TargetConfig* target = [[TargetConfig alloc] init];
- for(int i=0; i<[configs count]; i++)
- if([[[configs objectAtIndex:i] name] isEqualToString:name]) {
- [target setConfig: [configs objectAtIndex:i]];
- return target;
- }
- NSLog(@"Warning: couldn't find matching config to restore from: %@",name);
- return NULL;
++ (TargetConfig *)targetDeserialize:(NSDictionary *)serialization
+ withMappings:(NSArray *)mappings {
+ NSString *name = serialization[@"name"];
+ TargetConfig *target = [[TargetConfig alloc] init];
+ for (NJMapping *mapping in mappings) {
+ if ([mapping.name isEqualToString:name]) {
+ target.mapping = mapping;
+ return target;
+ }
+ }
+ return nil;
}
--(void) trigger {
- [[[[NSApplication sharedApplication] delegate] configsController] activateConfig:config forApplication: NULL];
+- (void)trigger {
+ ApplicationController *ctrl = NSApplication.sharedApplication.delegate;
+ [ctrl.mappingsController activateMapping:_mapping];
}
@end