#import "TargetConfig.h"
+#import "ApplicationController.h"
+#import "Config.h"
+#import "ConfigsController.h"
@implementation TargetConfig
-@synthesize config;
++ (NSString *)serializationCode {
+ return @"cfg";
+}
--(NSString*) stringify {
- return [[NSString alloc] initWithFormat: @"cfg~%@", [config name]];
+- (NSDictionary *)serialize {
+ return _config
+ ? @{ @"type": @"cfg", @"name": _config.name }
+ : @{};
}
-+(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
+ withConfigs:(NSArray *)configs {
+ NSString *name = serialization[@"name"];
+ TargetConfig *target = [[TargetConfig alloc] init];
+ for (Config *config in configs) {
+ if ([config.name isEqualToString:name]) {
+ target.config = config;
+ return target;
+ }
+ }
+ return nil;
}
--(void) trigger {
- [[[[NSApplication sharedApplication] delegate] configsController] activateConfig:config forApplication: NULL];
+- (void)trigger {
+ [[(ApplicationController *)[[NSApplication sharedApplication] delegate] configsController] activateConfig:_config];
}
@end