From 5a6e266c8dc7e247f5a1fd659b20aa13a510c290 Mon Sep 17 00:00:00 2001 From: cncolder Date: Sat, 18 Dec 2010 15:02:25 +0800 Subject: [PATCH] nib2cib binding with buildin transformers support. --- Foundation/CPValueTransformer.j | 9 +++++---- Tools/nib2cib/NSNibConnector.j | 10 ++++++++-- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/Foundation/CPValueTransformer.j b/Foundation/CPValueTransformer.j index 6ea38a7cc..357264d52 100644 --- a/Foundation/CPValueTransformer.j +++ b/Foundation/CPValueTransformer.j @@ -184,7 +184,8 @@ var transformerMap = [CPDictionary dictionary]; @end -CPNegateBooleanTransformerName = @"CPNegateBooleanTransformerName"; -CPIsNilTransformerName = @"CPIsNilTransformerName"; -CPIsNotNilTransformerName = @"CPIsNotNilTransformerName"; -CPUnarchiveFromDataTransformerName = @"CPUnarchiveFromDataTransformerName"; +CPNegateBooleanTransformerName = @"CPNegateBoolean"; +CPIsNilTransformerName = @"CPIsNil"; +CPIsNotNilTransformerName = @"CPIsNotNil"; +CPUnarchiveFromDataTransformerName = @"CPUnarchiveFromData"; +CPKeyedUnarchiveFromDataTransformerName = @"CPKeyedUnarchiveFromData"; diff --git a/Tools/nib2cib/NSNibConnector.j b/Tools/nib2cib/NSNibConnector.j index f04ed15ff..13b667571 100644 --- a/Tools/nib2cib/NSNibConnector.j +++ b/Tools/nib2cib/NSNibConnector.j @@ -124,8 +124,14 @@ NIB_CONNECTION_EQUIVALENCY_TABLE = {}; aKey; while (aKey = [keyEnum nextObject]) { - var CPKey = "CP" + aKey.substring(2); - [_options setObject:[nsoptions objectForKey:aKey] forKey:CPKey]; + var CPKey = [CPString stringWithFormat:@"CP%@", aKey.substring(2)], + nsvalue = [nsoptions objectForKey:aKey], + nstramsformers = [CPArray arrayWithObjects:@"NSNegateBoolean", @"NSIsNil", @"NSIsNotNil", @"NSUnarchiveFromData", @"NSKeyedUnarchiveFromData"]; + + if (CPKey == CPValueTransformerNameBindingOption && [nstramsformers containsObject:nsvalue]) + nsvalue = [CPString stringWithFormat:@"CP%@", nsvalue.substring(2)]; + + [_options setObject:nsvalue forKey:CPKey]; } CPLog.debug(@"Binding Connector: " + [_binding description] + " to: " + _destination + " " + [_keyPath description] + " " + [_options description]);