Files
David Richardson 4784a1a102 Normalize application naming in ./Tests/Manual
Ensure:
* CamelCase, ending in Test
* No hyphens, spaces, underscores or other non-alpha characters

Updated application directory names.
Update Jakefiles.
2026-09-08 17:47:30 -06:00

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