mirror of
https://github.com/cappuccino/cappuccino.git
synced 2026-09-23 10:50:42 +00:00
114 lines
2.0 KiB
Plaintext
114 lines
2.0 KiB
Plaintext
/*
|
|
* Transformers.j
|
|
* MultipleValueBindings
|
|
*
|
|
* Created by Aparajita Fishman on February 13, 2013.
|
|
* Copyright 2013, Cappuccino Foundation. All rights reserved.
|
|
*/
|
|
|
|
@import <Foundation/CPNumber.j>
|
|
@import <Foundation/CPValueTransformer.j>
|
|
|
|
|
|
@implementation ReversePercentTransformer : CPValueTransformer
|
|
|
|
+ (void)initialize
|
|
{
|
|
if (self !== [ReversePercentTransformer class])
|
|
return;
|
|
|
|
[CPValueTransformer setValueTransformer:[self new]
|
|
forName:[self className]];
|
|
}
|
|
|
|
+ (BOOL)allowsReverseTransformation
|
|
{
|
|
return NO;
|
|
}
|
|
|
|
+ (Class)transformedValueClass
|
|
{
|
|
return [CPNumber class];
|
|
}
|
|
|
|
- (id)transformedValue:(id)aValue
|
|
{
|
|
return ABS(100 - (aValue === nil ? 0 : aValue));
|
|
}
|
|
|
|
@end
|
|
|
|
|
|
@implementation FiftyIsTrueTransformer : CPValueTransformer
|
|
|
|
+ (void)initialize
|
|
{
|
|
if (self !== [FiftyIsTrueTransformer class])
|
|
return;
|
|
|
|
[CPValueTransformer setValueTransformer:[self new]
|
|
forName:[self className]];
|
|
}
|
|
|
|
+ (BOOL)allowsReverseTransformation
|
|
{
|
|
return NO;
|
|
}
|
|
|
|
+ (Class)transformedValueClass
|
|
{
|
|
return [CPNumber class];
|
|
}
|
|
|
|
- (id)transformedValue:(id)aValue
|
|
{
|
|
return aValue == 50 ? YES : NO;
|
|
}
|
|
|
|
@end
|
|
|
|
|
|
@implementation CurrencyTransformer : CPValueTransformer
|
|
{
|
|
CPNumberFormatter formatter;
|
|
}
|
|
|
|
+ (void)initialize
|
|
{
|
|
if (self !== [CurrencyTransformer class])
|
|
return;
|
|
|
|
[CPValueTransformer setValueTransformer:[self new]
|
|
forName:[self className]];
|
|
}
|
|
|
|
- (id)init
|
|
{
|
|
if (self = [super init])
|
|
{
|
|
formatter = [CPNumberFormatter new];
|
|
[formatter setNumberStyle:CPNumberFormatterCurrencyStyle];
|
|
[formatter setMinimumFractionDigits:0];
|
|
[formatter setMaximumFractionDigits:0];
|
|
}
|
|
|
|
return self;
|
|
}
|
|
|
|
+ (BOOL)allowsReverseTransformation
|
|
{
|
|
return NO;
|
|
}
|
|
|
|
+ (Class)transformedValueClass
|
|
{
|
|
return [CPString class];
|
|
}
|
|
|
|
- (id)transformedValue:(id)aValue
|
|
{
|
|
return [formatter stringFromNumber:aValue === nil ? 0 : aValue];
|
|
}
|
|
|
|
@end
|