Skip to content

Commit

Permalink
BTSwitchNumber implemented
Browse files Browse the repository at this point in the history
  • Loading branch information
AlexDenisov committed Apr 5, 2012
1 parent 5c67a8d commit e69209f
Show file tree
Hide file tree
Showing 9 changed files with 85 additions and 11 deletions.
6 changes: 6 additions & 0 deletions BindableTypes.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
CA8D9EBE152D7F1E005F9073 /* BTBaseNumber.m in Sources */ = {isa = PBXBuildFile; fileRef = CA8D9EBB152D7F1E005F9073 /* BTBaseNumber.m */; };
CA8D9EBF152D7F1E005F9073 /* BTSliderNumber.m in Sources */ = {isa = PBXBuildFile; fileRef = CA8D9EBD152D7F1E005F9073 /* BTSliderNumber.m */; };
CA8D9EC4152D8A21005F9073 /* BTStepperNumber.m in Sources */ = {isa = PBXBuildFile; fileRef = CA8D9EC3152D8A21005F9073 /* BTStepperNumber.m */; };
CA8D9EC7152D8F41005F9073 /* BTSwitchNumber.m in Sources */ = {isa = PBXBuildFile; fileRef = CA8D9EC6152D8F40005F9073 /* BTSwitchNumber.m */; };
/* End PBXBuildFile section */

/* Begin PBXFileReference section */
Expand Down Expand Up @@ -66,6 +67,8 @@
CA8D9EC1152D898F005F9073 /* BTValueProtocol.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BTValueProtocol.h; sourceTree = "<group>"; };
CA8D9EC2152D8A21005F9073 /* BTStepperNumber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BTStepperNumber.h; path = BindableTypes/BTStepperNumber.h; sourceTree = "<group>"; };
CA8D9EC3152D8A21005F9073 /* BTStepperNumber.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = BTStepperNumber.m; path = BindableTypes/BTStepperNumber.m; sourceTree = "<group>"; };
CA8D9EC5152D8F40005F9073 /* BTSwitchNumber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BTSwitchNumber.h; path = BindableTypes/BTSwitchNumber.h; sourceTree = "<group>"; };
CA8D9EC6152D8F40005F9073 /* BTSwitchNumber.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = BTSwitchNumber.m; path = BindableTypes/BTSwitchNumber.m; sourceTree = "<group>"; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
Expand Down Expand Up @@ -216,6 +219,8 @@
CA8D9EBD152D7F1E005F9073 /* BTSliderNumber.m */,
CA8D9EC2152D8A21005F9073 /* BTStepperNumber.h */,
CA8D9EC3152D8A21005F9073 /* BTStepperNumber.m */,
CA8D9EC5152D8F40005F9073 /* BTSwitchNumber.h */,
CA8D9EC6152D8F40005F9073 /* BTSwitchNumber.m */,
);
name = BTNumber;
sourceTree = "<group>";
Expand Down Expand Up @@ -306,6 +311,7 @@
CA8D9EBE152D7F1E005F9073 /* BTBaseNumber.m in Sources */,
CA8D9EBF152D7F1E005F9073 /* BTSliderNumber.m in Sources */,
CA8D9EC4152D8A21005F9073 /* BTStepperNumber.m in Sources */,
CA8D9EC7152D8F41005F9073 /* BTSwitchNumber.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand Down
1 change: 1 addition & 0 deletions BindableTypes/BindableSliderViewController.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,5 +21,6 @@

@property (nonatomic, retain) BTNumber *sliderNumber;
@property (nonatomic, retain) BTNumber *stepperNumber;
@property (nonatomic, retain) BTNumber *switchNumber;

@end
5 changes: 4 additions & 1 deletion BindableTypes/BindableSliderViewController.m
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,15 @@ @interface BindableSliderViewController ()
@end

@implementation BindableSliderViewController

@synthesize sswitch;
@synthesize switchLabel;
@synthesize stepper;
@synthesize stepperLabel;
@synthesize slider;
@synthesize sliderLabel;
@synthesize stepperNumber;

@synthesize switchNumber;
@synthesize sliderNumber;

- (void)viewDidLoad {
Expand All @@ -30,6 +31,8 @@ - (void)viewDidLoad {
[self.sliderNumber bindLabel:self.sliderLabel];
self.stepperNumber = [BTNumber numberWithStepper:self.stepper];
[self.stepperNumber bindLabel:self.stepperLabel];
self.switchNumber = [BTNumber numberwithSwitch:self.sswitch];
[self.switchNumber bindLabel:self.switchLabel];
}

- (void)dealloc {
Expand Down
1 change: 1 addition & 0 deletions BindableTypes/BindableTypes/BTNumber.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@

+ (BTNumber *)numberWithSlider:(UISlider *)aSlider;
+ (BTNumber *)numberWithStepper:(UIStepper *)aStepper;
+ (BTNumber *)numberwithSwitch:(UISwitch *)aSwitch;

- (void)bindLabel:(UILabel *)aLabel;

Expand Down
7 changes: 7 additions & 0 deletions BindableTypes/BindableTypes/BTNumber.m
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
#import "BTNumber.h"
#import "BTSliderNumber.h"
#import "BTStepperNumber.h"
#import "BTSwitchNumber.h"

@implementation BTNumber

Expand All @@ -24,6 +25,12 @@ + (BTNumber *)numberWithStepper:(UIStepper *)aStepper {
return number;
}

+ (BTNumber *)numberwithSwitch:(UISwitch *)aSwitch {
BTSwitchNumber *number = [[[BTSwitchNumber alloc] init] autorelease];
[number bindSwitch:aSwitch];
return number;
}

- (void)bindLabel:(UILabel *)aLabel {}
- (NSNumber *)numberValue {return nil;}

Expand Down
11 changes: 6 additions & 5 deletions BindableTypes/BindableTypes/BTSliderNumber.m
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,11 @@ @implementation BTSliderNumber

- (void)bindWithSlider:(UISlider *)aSlider {
self.boundedSlider = aSlider;
if(self.boundedNumber){
[self.boundedSlider setValue:self.boundedNumber.floatValue];
}else{
self.boundedNumber = [NSNumber numberWithFloat:self.boundedSlider.value];
}
[self.boundedSlider addTarget:self
action:@selector(valueDidChanged:)
forControlEvents:UIControlEventValueChanged];
Expand All @@ -25,11 +30,7 @@ - (void)valueDidChanged:(id)aSender {
}

- (NSString *)labelText {
NSNumber *number = self.boundedNumber;
if(number == nil){
number = [NSNumber numberWithFloat:self.boundedSlider.value];
}
return [NSString stringWithFormat:@"%.2f", number.floatValue];
return [NSString stringWithFormat:@"%.2f", self.boundedNumber.floatValue];
}

@end
12 changes: 7 additions & 5 deletions BindableTypes/BindableTypes/BTStepperNumber.m
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,12 @@ @implementation BTStepperNumber

- (void)bindStepper:(UIStepper *)aStepper {
self.boundedStepper = aStepper;
if(self.boundedNumber){
[self.boundedStepper setValue:self.boundedNumber.doubleValue];
}else {
self.boundedNumber = [NSNumber numberWithInt:self.boundedStepper.value];
}

[self.boundedStepper addTarget:self
action:@selector(valueDidChanged:)
forControlEvents:UIControlEventValueChanged];
Expand All @@ -25,11 +31,7 @@ - (void)valueDidChanged:(id)aSender {
}

- (NSString *)labelText {
NSNumber *number = self.boundedNumber;
if(number == nil){
number = [NSNumber numberWithDouble:self.boundedStepper.value];
}
return [NSString stringWithFormat:@"%@", number];
return [NSString stringWithFormat:@"%d", self.boundedNumber.intValue];
}

@end
17 changes: 17 additions & 0 deletions BindableTypes/BindableTypes/BTSwitchNumber.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
//
// BTSwitchNumber.h
// BindableTypes
//
// Created by Alex Denisov on 05.04.12.
// Copyright (c) 2012 CoreInvader. All rights reserved.
//

#import "BTBaseNumber.h"

@interface BTSwitchNumber : BTBaseNumber

@property (nonatomic, assign) UISwitch *boundedSwitch;

- (void)bindSwitch:(UISwitch *)aSwitch;

@end
36 changes: 36 additions & 0 deletions BindableTypes/BindableTypes/BTSwitchNumber.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
//
// BTSwitchNumber.m
// BindableTypes
//
// Created by Alex Denisov on 05.04.12.
// Copyright (c) 2012 CoreInvader. All rights reserved.
//

#import "BTSwitchNumber.h"

@implementation BTSwitchNumber

@synthesize boundedSwitch;

- (void)bindSwitch:(UISwitch *)aSwitch {
self.boundedSwitch = aSwitch;
if(self.boundedNumber){
[self.boundedSwitch setOn:self.boundedNumber.boolValue];
}else{
self.boundedNumber = [NSNumber numberWithBool:self.boundedSwitch.isOn];
}
[self.boundedSwitch addTarget:self
action:@selector(valueDidChanged:)
forControlEvents:UIControlEventValueChanged];
}

- (void)valueDidChanged:(id)aSender {
UISwitch *aSwitch = (UISwitch *)aSender;
self.boundedNumber = [NSNumber numberWithBool:aSwitch.isOn];
}

- (NSString *)labelText {
return [NSString stringWithFormat:@"%d", self.boundedNumber.boolValue];
}

@end

0 comments on commit e69209f

Please sign in to comment.