diff --git a/Espagram.xcodeproj/project.pbxproj b/Espagram.xcodeproj/project.pbxproj index ddb25aa..d397e00 100644 --- a/Espagram.xcodeproj/project.pbxproj +++ b/Espagram.xcodeproj/project.pbxproj @@ -15,10 +15,11 @@ B506EC7315EBF67500566A27 /* EspagramAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = B506EC7215EBF67500566A27 /* EspagramAppDelegate.m */; }; B506EC7615EBF67500566A27 /* MainStoryboard.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = B506EC7415EBF67500566A27 /* MainStoryboard.storyboard */; }; B506EC7915EBF67500566A27 /* EspagramViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B506EC7815EBF67500566A27 /* EspagramViewController.m */; }; - B506EC8415EC005B00566A27 /* EspagramMainViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B506EC8315EC005B00566A27 /* EspagramMainViewController.m */; }; B506ECA515EE898700566A27 /* SpanishConjugator.m in Sources */ = {isa = PBXBuildFile; fileRef = B506ECA415EE898700566A27 /* SpanishConjugator.m */; }; B512F63B164BEC6000DA031E /* EspagramTestViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B512F63A164BEC6000DA031E /* EspagramTestViewController.m */; }; - B512F63E164BEC8E00DA031E /* EspagramTestView.m in Sources */ = {isa = PBXBuildFile; fileRef = B512F63D164BEC8E00DA031E /* EspagramTestView.m */; }; + B512F64A164C2A2700DA031E /* Tense.m in Sources */ = {isa = PBXBuildFile; fileRef = B512F649164C2A2700DA031E /* Tense.m */; }; + B512F658164D1A0C00DA031E /* EspagramConjugationTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B512F657164D1A0C00DA031E /* EspagramConjugationTableViewController.m */; }; + B512F670164D60DB00DA031E /* EspagramMainTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B512F66F164D60DB00DA031E /* EspagramMainTableViewController.m */; }; B5EFD38C162CA69F00C6E2EB /* GrammarTestViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B5EFD38B162CA69F00C6E2EB /* GrammarTestViewController.m */; }; B5EFD392162CB18000C6E2EB /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = B5EFD391162CB18000C6E2EB /* Default-568h@2x.png */; }; /* End PBXBuildFile section */ @@ -37,14 +38,16 @@ B506EC7515EBF67500566A27 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = en; path = en.lproj/MainStoryboard.storyboard; sourceTree = ""; }; B506EC7715EBF67500566A27 /* EspagramViewController.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EspagramViewController.h; sourceTree = ""; }; B506EC7815EBF67500566A27 /* EspagramViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = EspagramViewController.m; sourceTree = ""; }; - B506EC8215EC005B00566A27 /* EspagramMainViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EspagramMainViewController.h; sourceTree = ""; }; - B506EC8315EC005B00566A27 /* EspagramMainViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = EspagramMainViewController.m; sourceTree = ""; }; B506ECA315EE898700566A27 /* SpanishConjugator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SpanishConjugator.h; sourceTree = ""; }; B506ECA415EE898700566A27 /* SpanishConjugator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SpanishConjugator.m; sourceTree = ""; }; B512F639164BEC6000DA031E /* EspagramTestViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EspagramTestViewController.h; sourceTree = ""; }; B512F63A164BEC6000DA031E /* EspagramTestViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = EspagramTestViewController.m; sourceTree = ""; }; - B512F63C164BEC8E00DA031E /* EspagramTestView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EspagramTestView.h; sourceTree = ""; }; - B512F63D164BEC8E00DA031E /* EspagramTestView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = EspagramTestView.m; sourceTree = ""; }; + B512F648164C2A2700DA031E /* Tense.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Tense.h; sourceTree = ""; }; + B512F649164C2A2700DA031E /* Tense.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Tense.m; sourceTree = ""; }; + B512F656164D1A0C00DA031E /* EspagramConjugationTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EspagramConjugationTableViewController.h; sourceTree = ""; }; + B512F657164D1A0C00DA031E /* EspagramConjugationTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = EspagramConjugationTableViewController.m; sourceTree = ""; }; + B512F66E164D60DB00DA031E /* EspagramMainTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EspagramMainTableViewController.h; sourceTree = ""; }; + B512F66F164D60DB00DA031E /* EspagramMainTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = EspagramMainTableViewController.m; sourceTree = ""; }; B58F57661635D27E00CED51B /* Conjugator.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Conjugator.h; sourceTree = ""; }; B58F576D16387BE600CED51B /* NSMutableArray_Shuffling.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = NSMutableArray_Shuffling.h; path = Espagram/NSMutableArray_Shuffling.h; sourceTree = ""; }; B5EFD38A162CA69F00C6E2EB /* GrammarTestViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GrammarTestViewController.h; sourceTree = ""; }; @@ -100,18 +103,20 @@ children = ( B506EC7115EBF67500566A27 /* EspagramAppDelegate.h */, B506EC7415EBF67500566A27 /* MainStoryboard.storyboard */, - B512F63C164BEC8E00DA031E /* EspagramTestView.h */, - B512F63D164BEC8E00DA031E /* EspagramTestView.m */, + B512F66E164D60DB00DA031E /* EspagramMainTableViewController.h */, + B512F66F164D60DB00DA031E /* EspagramMainTableViewController.m */, + B512F656164D1A0C00DA031E /* EspagramConjugationTableViewController.h */, + B512F657164D1A0C00DA031E /* EspagramConjugationTableViewController.m */, B512F639164BEC6000DA031E /* EspagramTestViewController.h */, B512F63A164BEC6000DA031E /* EspagramTestViewController.m */, + B512F648164C2A2700DA031E /* Tense.h */, + B512F649164C2A2700DA031E /* Tense.m */, B506EC7215EBF67500566A27 /* EspagramAppDelegate.m */, B5EFD38A162CA69F00C6E2EB /* GrammarTestViewController.h */, B5EFD38B162CA69F00C6E2EB /* GrammarTestViewController.m */, B506ECA315EE898700566A27 /* SpanishConjugator.h */, B506ECA415EE898700566A27 /* SpanishConjugator.m */, B58F57661635D27E00CED51B /* Conjugator.h */, - B506EC8215EC005B00566A27 /* EspagramMainViewController.h */, - B506EC8315EC005B00566A27 /* EspagramMainViewController.m */, B506EC7715EBF67500566A27 /* EspagramViewController.h */, B506EC7815EBF67500566A27 /* EspagramViewController.m */, B506EC6915EBF67500566A27 /* Supporting Files */, @@ -198,11 +203,12 @@ B506EC6F15EBF67500566A27 /* main.m in Sources */, B506EC7315EBF67500566A27 /* EspagramAppDelegate.m in Sources */, B506EC7915EBF67500566A27 /* EspagramViewController.m in Sources */, - B506EC8415EC005B00566A27 /* EspagramMainViewController.m in Sources */, B506ECA515EE898700566A27 /* SpanishConjugator.m in Sources */, B5EFD38C162CA69F00C6E2EB /* GrammarTestViewController.m in Sources */, B512F63B164BEC6000DA031E /* EspagramTestViewController.m in Sources */, - B512F63E164BEC8E00DA031E /* EspagramTestView.m in Sources */, + B512F64A164C2A2700DA031E /* Tense.m in Sources */, + B512F658164D1A0C00DA031E /* EspagramConjugationTableViewController.m in Sources */, + B512F670164D60DB00DA031E /* EspagramMainTableViewController.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/Espagram.xcodeproj/project.xcworkspace/xcuserdata/abel.xcuserdatad/UserInterfaceState.xcuserstate b/Espagram.xcodeproj/project.xcworkspace/xcuserdata/abel.xcuserdatad/UserInterfaceState.xcuserstate index 5829115..29a5158 100644 Binary files a/Espagram.xcodeproj/project.xcworkspace/xcuserdata/abel.xcuserdatad/UserInterfaceState.xcuserstate and b/Espagram.xcodeproj/project.xcworkspace/xcuserdata/abel.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/Espagram/ConjugatedVerbTableView.h b/Espagram/ConjugatedVerbTableView.h new file mode 100644 index 0000000..c628da9 --- /dev/null +++ b/Espagram/ConjugatedVerbTableView.h @@ -0,0 +1,13 @@ +// +// ConjugatedVerbTableView.h +// Espagram +// +// Created by Abel Fokkinga on 11/8/12. +// Copyright (c) 2012 Abel Fokkinga. All rights reserved. +// + +#import + +@interface ConjugatedVerbTableView : UITableView + +@end diff --git a/Espagram/ConjugatedVerbTableView.m b/Espagram/ConjugatedVerbTableView.m new file mode 100644 index 0000000..a5a43b6 --- /dev/null +++ b/Espagram/ConjugatedVerbTableView.m @@ -0,0 +1,31 @@ +// +// ConjugatedVerbTableView.m +// Espagram +// +// Created by Abel Fokkinga on 11/8/12. +// Copyright (c) 2012 Abel Fokkinga. All rights reserved. +// + +#import "ConjugatedVerbTableView.h" + +@implementation ConjugatedVerbTableView + +- (id)initWithFrame:(CGRect)frame +{ + self = [super initWithFrame:frame]; + if (self) { + // Initialization code + } + return self; +} + +/* +// Only override drawRect: if you perform custom drawing. +// An empty implementation adversely affects performance during animation. +- (void)drawRect:(CGRect)rect +{ + // Drawing code +} +*/ + +@end diff --git a/Espagram/Conjugator.h b/Espagram/Conjugator.h index 1309c5d..1acb3e1 100644 --- a/Espagram/Conjugator.h +++ b/Espagram/Conjugator.h @@ -7,9 +7,16 @@ // #import +#import "Tense.h" @protocol Conjugator -- (NSString *) conjugateVerb:(NSString *) verb inPerson:(NSString *) person andTense:(NSString *) tense; + +- (NSDictionary *) persons; +- (NSArray *) personsKeys; + +- (NSString *) conjugateVerb:(NSString *) verb inPerson:(NSString *) person andTense:(Tense *) tense; + +- (NSString *) description; @end diff --git a/Espagram/EspagramConjugationTableViewController.h b/Espagram/EspagramConjugationTableViewController.h new file mode 100644 index 0000000..da5254b --- /dev/null +++ b/Espagram/EspagramConjugationTableViewController.h @@ -0,0 +1,30 @@ +// +// EspagramConjugationTableViewController.h +// Espagram +// +// Created by Abel Fokkinga on 11/9/12. +// Copyright (c) 2012 Abel Fokkinga. All rights reserved. +// + +#import +#import "Conjugator.h" + +@class EspagramConjugationTableViewController; + +@protocol EspagramConjugationTableView + +@property (strong, nonatomic) id conjugator; +@property (strong, nonatomic) Tense *tense; +@property (strong, nonatomic) NSString* verb; + +@end + +@interface EspagramConjugationTableViewController : UITableViewController + +@property (weak, nonatomic) IBOutlet UITextField *verbInput; + +@property (nonatomic, strong) id dataSource; + +- (void) reloadData; + +@end diff --git a/Espagram/EspagramConjugationTableViewController.m b/Espagram/EspagramConjugationTableViewController.m new file mode 100644 index 0000000..c370050 --- /dev/null +++ b/Espagram/EspagramConjugationTableViewController.m @@ -0,0 +1,118 @@ +// +// EspagramConjugationTableViewController.m +// Espagram +// +// Created by Abel Fokkinga on 11/9/12. +// Copyright (c) 2012 Abel Fokkinga. All rights reserved. +// + +#import "EspagramConjugationTableViewController.h" +#import "Conjugator.h" + +@interface EspagramConjugationTableViewController () +@end + +@implementation EspagramConjugationTableViewController + +@synthesize dataSource = _dataSource; + +- (void) dataSource:(id ) dataSource { + _dataSource = dataSource; + [self reloadData]; +} + +- (IBAction)verbEntered:(id)sender { + [self.view resignFirstResponder]; +} + +- (id)initWithStyle:(UITableViewStyle)style +{ + self = [super initWithStyle:style]; + if (self) { + // Custom initialization + } + return self; +} + +- (void) reloadData { + if (_dataSource) { + NSLog(@"language %@", [self.dataSource.conjugator description]); + NSLog(@"persons %d", self.dataSource.conjugator.persons.count); + [self.tableView reloadData]; + } else NSLog(@"Datasource is nil"); +} + + +- (void)didReceiveMemoryWarning +{ + [super didReceiveMemoryWarning]; + // Dispose of any resources that can be recreated. +} + +#pragma mark - Table view data source + +- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView +{ + return 1; +} + + +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section +{ + // Return the number of rows in the section. + return [[[self.dataSource conjugator] persons] count]; +} + +- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section +{ + NSString *sectionName; + switch (section) + { + case 0: + sectionName = self.dataSource.verb; + break; + default: + sectionName = @""; + break; + } + return sectionName; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath +{ + static NSString *CellIdentifier = @"ConjugatedVerbPerson"; + UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath]; + + if (cell == nil) { + cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; + } + + + NSString * person = [[self.dataSource.conjugator personsKeys] objectAtIndex:indexPath.row]; + cell.textLabel.text = [self.dataSource.conjugator.persons objectForKey:person]; + cell.detailTextLabel.text = [self.dataSource.conjugator conjugateVerb:self.dataSource.verb inPerson:person andTense:self.dataSource.tense]; + + return cell; +} + +- (void)viewDidLoad +{ + [self.tableView reloadData]; +} + + + +#pragma mark - Table view delegate + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath +{ + // Navigation logic may go here. Create and push another view controller. + /* + <#DetailViewController#> *detailViewController = [[<#DetailViewController#> alloc] initWithNibName:@"<#Nib name#>" bundle:nil]; + // ... + // Pass the selected object to the new view controller. + [self.navigationController pushViewController:detailViewController animated:YES]; + */ +} + +@end diff --git a/Espagram/EspagramMainTableViewController.h b/Espagram/EspagramMainTableViewController.h new file mode 100644 index 0000000..3e040d4 --- /dev/null +++ b/Espagram/EspagramMainTableViewController.h @@ -0,0 +1,13 @@ +// +// EspagramMainTableViewController.h +// Espagram +// +// Created by Abel Fokkinga on 11/9/12. +// Copyright (c) 2012 Abel Fokkinga. All rights reserved. +// + +#import + +@interface EspagramMainTableViewController : UITableViewController + +@end diff --git a/Espagram/EspagramMainTableViewController.m b/Espagram/EspagramMainTableViewController.m new file mode 100644 index 0000000..219f00a --- /dev/null +++ b/Espagram/EspagramMainTableViewController.m @@ -0,0 +1,158 @@ +// +// EspagramMainTableViewController.m +// Espagram +// +// Created by Abel Fokkinga on 11/9/12. +// Copyright (c) 2012 Abel Fokkinga. All rights reserved. +// + +#import "EspagramMainTableViewController.h" +#import "SpanishConjugator.h" +#import "EspagramTestViewController.h" + +@interface EspagramMainTableViewController () +@property (nonatomic, strong) NSString *language, *displayTitle; +@property (nonatomic, strong) Tense * tense; +@end + +@implementation EspagramMainTableViewController + +@synthesize language = _language; +@synthesize tense = _tense; +@synthesize displayTitle = _displayTitle; + +- (id)initWithStyle:(UITableViewStyle)style +{ + self = [super initWithStyle:style]; + if (self) { + // Custom initialization + } + return self; +} + +- (void)viewDidLoad +{ + [super viewDidLoad]; + + // Uncomment the following line to preserve selection between presentations. + // self.clearsSelectionOnViewWillAppear = NO; + + // Uncomment the following line to display an Edit button in the navigation bar for this view controller. + // self.navigationItem.rightBarButtonItem = self.editButtonItem; +} + +- (void)didReceiveMemoryWarning +{ + [super didReceiveMemoryWarning]; + // Dispose of any resources that can be recreated. +} + +# pragma mark - Espagram setters and getters + +- (id ) getLanguage { + if ( [@"Spanish" isEqualToString:_language] ) { + return [[SpanishConjugator alloc] init]; + } else return nil; +} + +- (Tense *) tense { + if ( _tense == nil ) _tense =[[Tense alloc] init]; + return _tense; +} + +- (void) testVerbsWithLanguage:(NSString *)language andTense:(NSString *)tense; +{ + self.language = language; + self.tense = [[Tense alloc] init]; + self.tense.tense = tense; + self.displayTitle = [self.tense getTenseInLanguage:@"Spanish"]; + [self performSegueWithIdentifier:@"Testing" sender:self]; +} + + + +- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { + + if ( [segue.identifier isEqualToString:@"Testing"]) { + EspagramTestViewController * dest = segue.destinationViewController; + dest.title = self.displayTitle; + dest.conjugator= [self getLanguage]; + dest.tense =self.tense; + + } +} + +#pragma mark - Table view data source + + +/* +// Override to support conditional editing of the table view. +- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath +{ + // Return NO if you do not want the specified item to be editable. + return YES; +} +*/ + +/* +// Override to support editing the table view. +- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath +{ + if (editingStyle == UITableViewCellEditingStyleDelete) { + // Delete the row from the data source + [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade]; + } + else if (editingStyle == UITableViewCellEditingStyleInsert) { + // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view + } +} +*/ + +/* +// Override to support rearranging the table view. +- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath +{ +} +*/ + +/* +// Override to support conditional rearranging of the table view. +- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath +{ + // Return NO if you do not want the item to be re-orderable. + return YES; +} +*/ + +#pragma mark - Table view delegate + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath +{ + NSString * selectedTense = [tableView cellForRowAtIndexPath:indexPath].textLabel.text; + NSLog(@"Selected tense: %@", selectedTense); + + if ( [selectedTense isEqualToString:@"Presente de indicativo"] ) { + [self testVerbsWithLanguage: @"Spanish" andTense:@"SIMPLE_PRESENT"]; + } else if ( [selectedTense isEqualToString:@"Indefinido"] ) { + [self testVerbsWithLanguage: @"Spanish" andTense:@"SIMPLE_PAST"]; + } else if ( [selectedTense isEqualToString:@"Imperfecto"] ) { + [self testVerbsWithLanguage: @"Spanish" andTense:@"IMPERFECT"]; + } else if ( [selectedTense isEqualToString:@"Futuro"] ) { + [self testVerbsWithLanguage: @"Spanish" andTense:@"FUTURE"]; + } else if ( [selectedTense isEqualToString:@"Pretérito Perfecto"] ) { + [self testVerbsWithLanguage: @"Spanish" andTense:@"PRESENT_PERFECT"]; + } else if ( [selectedTense isEqualToString:@"Pluscuamperfecto"] ) { + [self testVerbsWithLanguage: @"Spanish" andTense:@"PAST_PERFECT"]; + } else if ( [selectedTense isEqualToString:@"Futuro Perfecto"] ) { + [self testVerbsWithLanguage: @"Spanish" andTense:@"FUTURE_PERFECT"]; + } else if ( [selectedTense isEqualToString:@"Condicional"] ) { + [self testVerbsWithLanguage: @"Spanish" andTense:@"CONDITIONAL"]; + } else if ( [selectedTense isEqualToString:@"Condicional Perfect"] ) { + [self testVerbsWithLanguage: @"Spanish" andTense:@"CONDITIONAL_PERFECT"]; + } else if ( [selectedTense isEqualToString:@"Gerundio"] ) { + [self testVerbsWithLanguage: @"Spanish" andTense:@"GERUND"]; + } + +} + +@end diff --git a/Espagram/EspagramMainViewController.h b/Espagram/EspagramMainViewController.h deleted file mode 100644 index 0fecea3..0000000 --- a/Espagram/EspagramMainViewController.h +++ /dev/null @@ -1,15 +0,0 @@ -// -// EspagramMainViewController.h -// Espagram -// -// Created by Abel Fokkinga on 8/27/12. -// Copyright (c) 2012 Abel Fokkinga. All rights reserved. -// - -#import - -@interface EspagramMainViewController : UIViewController - -- (IBAction)testTense:(UIButton *)sender; - -@end diff --git a/Espagram/EspagramMainViewController.m b/Espagram/EspagramMainViewController.m deleted file mode 100644 index 63dad48..0000000 --- a/Espagram/EspagramMainViewController.m +++ /dev/null @@ -1,83 +0,0 @@ -// -// EspagramMainViewController.m -// Espagram -// -// Created by Abel Fokkinga on 8/27/12. -// Copyright (c) 2012 Abel Fokkinga. All rights reserved. -// - -#import "EspagramMainViewController.h" -#import "GrammarTestViewController.h" -#import "SpanishConjugator.h" - -@interface EspagramMainViewController () -@property (nonatomic, strong) NSString *language, *tense, *displayTitle; -@end - -@implementation EspagramMainViewController - -@synthesize language = _language; -@synthesize tense = _tense; -@synthesize displayTitle = _displayTitle; - -- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil -{ - self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; - if (self) { - // Custom initialization - } - return self; -} - -- (id ) getLanguage { - if ( [@"Spanish" isEqualToString:_language] ) { - return [[SpanishConjugator alloc] init]; - } else return nil; -} - - -- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation -{ - return YES; -} - -- (void) testVerbsWithLanguage:(NSString *)language andTense:(NSString *)tense andTitle:(NSString *) title; -{ - self.language = language; - self.tense = tense; - self.displayTitle = title; - [self performSegueWithIdentifier:@"Testing" sender:self]; -} - -- (IBAction)testTense:(UIButton *)sender -{ - - if ( [sender.titleLabel.text isEqualToString:@"Presente"] ) { - [self testVerbsWithLanguage: @"Spanish" andTense:@"SIMPLE_PRESENT" andTitle:sender.titleLabel.text]; - } else if ( [sender.titleLabel.text isEqualToString:@"Pretérito"] ) { - [self testVerbsWithLanguage: @"Spanish" andTense:@"SIMPLE_PAST" andTitle:sender.titleLabel.text]; - } else if ( [sender.titleLabel.text isEqualToString:@"Imperfecto"] ) { - [self testVerbsWithLanguage: @"Spanish" andTense:@"IMPERFECT" andTitle:sender.titleLabel.text]; - } else if ( [sender.titleLabel.text isEqualToString:@"Futuro"] ) { - [self testVerbsWithLanguage: @"Spanish" andTense:@"FUTURE" andTitle:sender.titleLabel.text]; - } else if ( [sender.titleLabel.text isEqualToString:@"Perfecto"] ) { - [self testVerbsWithLanguage: @"Spanish" andTense:@"PRESENT_PERFECT" andTitle:sender.titleLabel.text]; - } else if ( [sender.titleLabel.text isEqualToString:@"Pluscuamperfecto"] ) { - [self testVerbsWithLanguage: @"Spanish" andTense:@"PAST_PERFECT" andTitle:sender.titleLabel.text]; - } else if ( [sender.titleLabel.text isEqualToString:@"Futuro Perfecto"] ) { - [self testVerbsWithLanguage: @"Spanish" andTense:@"FUTURE_PERFECT" andTitle:sender.titleLabel.text]; - } - -} - - -- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { - - if ( [segue.identifier isEqualToString:@"Testing"]) { - [segue.destinationViewController setTitle:self.displayTitle]; - [segue.destinationViewController setConjugator:[self getLanguage]]; - [segue.destinationViewController setTense:self.tense]; - } -} - -@end \ No newline at end of file diff --git a/Espagram/EspagramTestViewController.h b/Espagram/EspagramTestViewController.h index 6ae192a..4447f92 100644 --- a/Espagram/EspagramTestViewController.h +++ b/Espagram/EspagramTestViewController.h @@ -8,10 +8,10 @@ #import #import "Conjugator.h" +#import "EspagramConjugationTableViewController.h" -@interface EspagramTestViewController : UIViewController +@interface EspagramTestViewController : UIViewController -@property (nonatomic, strong) id conjugator; -@property (nonatomic, strong) NSString * tense; +@property (weak, nonatomic) IBOutlet UITextField *verbInput; @end diff --git a/Espagram/EspagramTestViewController.m b/Espagram/EspagramTestViewController.m index 32f2df1..aeb7745 100644 --- a/Espagram/EspagramTestViewController.m +++ b/Espagram/EspagramTestViewController.m @@ -7,7 +7,6 @@ // #import "EspagramTestViewController.h" -#import "GrammarTestViewController.h" @interface EspagramTestViewController () @@ -16,6 +15,18 @@ @implementation EspagramTestViewController @synthesize conjugator = _conjugator; +@synthesize tense = _tense; +@synthesize verb = _verb; +@synthesize verbInput; + +- (NSString *) verb { + if ( self.verbInput.text) + _verb = self.verbInput.text; + return _verb; +} +- (IBAction)EditingDidEnd:(UITextField *)sender { + [self resignFirstResponder]; +} - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { @@ -42,8 +53,8 @@ - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { if ( [segue.identifier isEqualToString:@"Conjugate"]) { - [segue.destinationViewController setConjugator:self.conjugator]; - [segue.destinationViewController setTense:self.tense]; + [segue.destinationViewController setDataSource:self]; + [segue.destinationViewController setTitle:[self.tense getTenseInLanguage:[self.conjugator description]]]; } } diff --git a/Espagram/GrammarTestViewController.h b/Espagram/GrammarTestViewController.h index 72421c8..1319009 100644 --- a/Espagram/GrammarTestViewController.h +++ b/Espagram/GrammarTestViewController.h @@ -8,16 +8,14 @@ #import #import "Conjugator.h" +#import "EspagramConjugationTableViewController.h" @class GrammarTestViewController; -@interface GrammarTestViewController : UIViewController +@interface GrammarTestViewController : UIViewController -@property (weak, nonatomic) IBOutlet UITextField *verbInput; +@property (weak, nonatomic) UITextField *verbInput; -@property (weak, nonatomic) IBOutlet id conjugator; -@property (weak, nonatomic) IBOutlet NSString *tense; - -@property (weak, nonatomic) IBOutlet UILabel *tenseLabel; +@property (weak, nonatomic) IBOutlet UIView *conjugatedVerbTable; @end diff --git a/Espagram/GrammarTestViewController.m b/Espagram/GrammarTestViewController.m index 86a6cbf..d1441a9 100644 --- a/Espagram/GrammarTestViewController.m +++ b/Espagram/GrammarTestViewController.m @@ -7,7 +7,6 @@ // #import "GrammarTestViewController.h" -#import "Conjugator.h" @implementation GrammarTestViewController @@ -15,6 +14,8 @@ @synthesize conjugator = _conjugator; @synthesize verbInput = _verbInput; @synthesize tense = _tense; +@synthesize verb = _verb; +@synthesize conjugatedVerbTable = _conjugatedVerbTable; - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil @@ -26,28 +27,33 @@ return self; } -- (IBAction)verbEntered:(id *)sender { - [self resignFirstResponder]; +- (IBAction)verbEntered:(id)sender { + self.verb = self.verbInput.text; + [self.view resignFirstResponder]; } -- (void) setTense:(NSString *)tense { - NSLog(@"New tense: %@",tense); - if ( ![tense isEqualToString:_tense] ) { - NSLog(@"Setting tense: %@",tense); - _tense = tense; - self.tenseLabel.text = tense; - } - +- (void) verb:(NSString *) verb { + _verb = verb; + if ( ! [_verb isEqualToString:self.verbInput.text]) + self.verbInput.text = _verb; } -- (IBAction)conjugateButtonPressed { -// self.conjugatedVerbDisplay.text = [self.conjugator conjugateVerb:self.verbInput.text inPerson:[self getSelectedPerson] andTense:[self getSelectedTense] ]; +- (void) setup{ + NSLog([self.conjugator description]); + NSLog(@"Persons %d", [[[self conjugator] persons] count]); +} + +- (void) awakeFromNib +{ + [self setup]; } - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. + + [self setup]; } - (void)didReceiveMemoryWarning diff --git a/Espagram/SpanishConjugator.h b/Espagram/SpanishConjugator.h index 9844eeb..cc828d7 100644 --- a/Espagram/SpanishConjugator.h +++ b/Espagram/SpanishConjugator.h @@ -12,4 +12,5 @@ @interface SpanishConjugator : NSObject + @end diff --git a/Espagram/SpanishConjugator.m b/Espagram/SpanishConjugator.m index 71a4dee..8cc89bc 100644 --- a/Espagram/SpanishConjugator.m +++ b/Espagram/SpanishConjugator.m @@ -14,6 +14,7 @@ *simplePresentOtoUEstemChangersArray, *simplePresentEtoIstemChangersArray; +@property (nonatomic,strong) NSDictionary *persons; @end @@ -22,6 +23,26 @@ @synthesize simplePresentEtoIEstemChangersArray = _simplePresentEtoIEstemChangersArray; @synthesize simplePresentOtoUEstemChangersArray = _simplePresentOtoUEstemChangersArray; @synthesize simplePresentEtoIstemChangersArray = _simplePresentEtoIstemChangersArray; +@synthesize persons = _persons; + + +- (NSString *) description +{ + return @"Spanish"; +} + + +- (NSArray *) personsKeys{ + return [[NSArray alloc] initWithObjects:@"FIRST_PERSON_SINGULAR",@"SECOND_PERSON_SINGULAR",@"THIRD_PERSON_SINGULAR", @"FIRST_PERSON_PLURAL",@"SECOND_PERSON_PLURAL",@"THIRD_PERSON_PLURAL", nil]; +} + +- (NSDictionary *) persons { + if (_persons == nil) { + _persons = [[NSDictionary alloc] initWithObjects:[[NSArray alloc] + initWithObjects:@"yo",@"tú",@"él",@"nosotros", @"vosotros", @"ellos", nil] forKeys:[[NSArray alloc] initWithArray:self.personsKeys]]; + } + return [_persons copy]; +} - (NSArray *) simplePresentEtoIEstemChangersArray{ if (_simplePresentEtoIEstemChangersArray == nil) @@ -196,8 +217,6 @@ NSString * verbStem = [self getSimplePresentStemVerb:verb inPerson:person]; NSString * verbExit = [self getExit:verb]; - // very irregular - if ( [verb isEqualToString:@"haber"] ) return @"hay"; // other types of first person changes if ( [person isEqualToString:@"FIRST_PERSON_SINGULAR"]) { @@ -212,6 +231,7 @@ if ( [verb isEqualToString:@"ser"] ) return @"soy"; if ( [verb isEqualToString:@"ir"] ) return @"voy"; if ( [verb isEqualToString:@"oler"] ) return @"huelo"; + if ( [verb isEqualToString:@"haber"] ) return @"he"; return [verbStem stringByAppendingString:@"o"]; } @@ -220,6 +240,7 @@ if ( [verb isEqualToString:@"ser"] ) return @"eres"; if ( [verb isEqualToString:@"ir"] ) return @"vas"; if ( [verb isEqualToString:@"oler"] ) return @"hueles"; + if ( [verb isEqualToString:@"haber"] ) return @"has"; if ( [@"ar" isEqualToString:verbExit] ) return [verbStem stringByAppendingString:@"as"]; else return [verbStem stringByAppendingString:@"es"]; @@ -229,6 +250,7 @@ if ( [verb isEqualToString:@"ser"] ) return @"es"; if ( [verb isEqualToString:@"ir"] ) return @"va"; if ( [verb isEqualToString:@"oler"] ) return @"huele"; + if ( [verb isEqualToString:@"haber"] ) return @"ha"; if ( [@"ar" isEqualToString:verbExit] ) return [verbStem stringByAppendingString:@"a"]; else return [verbStem stringByAppendingString:@"e"]; @@ -237,6 +259,7 @@ if ( [verb isEqualToString:@"estar"] ) return @"estamos"; if ( [verb isEqualToString:@"ser"] ) return @"somos"; if ( [verb isEqualToString:@"ir"] ) return @"vamos"; + if ( [verb isEqualToString:@"haber"] ) return @"hemos"; if ( [@"ar" isEqualToString:verbExit] ) return [verbStem stringByAppendingString:@"amos"]; if ( [@"er" isEqualToString:verbExit] ) return [verbStem stringByAppendingString:@"emos"]; @@ -246,6 +269,7 @@ if ( [verb isEqualToString:@"estar"] ) return @"estáis"; if ( [verb isEqualToString:@"ser"] ) return @"sois"; if ( [verb isEqualToString:@"ir"] ) return @"vais"; + if ( [verb isEqualToString:@"haber"] ) return @"habéis"; if ( [@"ar" isEqualToString:verbExit] ) return [verbStem stringByAppendingString:@"áis"]; if ( [@"er" isEqualToString:verbExit] ) return [verbStem stringByAppendingString:@"éis"]; @@ -256,6 +280,7 @@ if ( [verb isEqualToString:@"ser"] ) return @"son"; if ( [verb isEqualToString:@"ir"] ) return @"van"; if ( [verb isEqualToString:@"oler"] ) return @"huelen"; + if ( [verb isEqualToString:@"haber"] ) return @"han"; if ( [@"ar" isEqualToString:verbExit] ) return [verbStem stringByAppendingString:@"an"]; else return [verbStem stringByAppendingString:@"en"]; @@ -321,7 +346,7 @@ if ( [verb isEqualToString:@"ir"] || [verb isEqualToString:@"ser"] ) return @"fuiste"; if ( [@"ar" isEqualToString:verbExit] ) return [verbStem stringByAppendingString:@"aste"]; - else [verbStem stringByAppendingString:@"iste"]; + else return [verbStem stringByAppendingString:@"iste"]; } if ( [person isEqualToString:@"THIRD_PERSON_SINGULAR"]) { @@ -329,8 +354,8 @@ if ( [verb isEqualToString:@"dar"]) return @"dio"; if ( [verb isEqualToString:@"ir"] || [verb isEqualToString:@"ser"] ) return @"fue"; - if ( [[verbStem substringFromIndex:[verb length] - 1] isEqualToString:@"e"] || - [[verbStem substringFromIndex:[verb length] - 1] isEqualToString:@"i"]) + if ( [[verbStem substringFromIndex:[verbStem length] - 1] isEqualToString:@"e"] || + [[verbStem substringFromIndex:[verbStem length] - 1] isEqualToString:@"i"]) // If the stem of an -er or -ir ends in a vowel, the -i of the 3rd person changes to y return [verbStem stringByAppendingString:@"yó"]; @@ -380,7 +405,7 @@ if ( [verb isEqualToString:@"ir"] || [verb isEqualToString:@"ser"] ) return @"fueron"; if ( [@"ar" isEqualToString:verbExit] ) return [verbStem stringByAppendingString:@"aron"]; - else if ([[verbStem substringFromIndex:[verb length] - 1] isEqualToString:@"j"]) return [verbStem stringByAppendingString:@"eron"]; + else if ([[verbStem substringFromIndex:[verbStem length] - 1] isEqualToString:@"j"]) return [verbStem stringByAppendingString:@"eron"]; else return [verbStem stringByAppendingString:@"ieron"]; } @@ -491,8 +516,33 @@ if ( [person isEqualToString:@"THIRD_PERSON_PLURAL"]) return [verbStem stringByAppendingString:@"án"]; - return verb; + return verb; +} + +- (NSString *) conjugateConditionalVerb:(NSString *) verb inPerson:(NSString *) person { + NSString * verbStem = [self getFutureStem:verb]; + + // regular + if ( [person isEqualToString:@"FIRST_PERSON_SINGULAR"]) + return [verbStem stringByAppendingString:@"ía"]; + + if ( [person isEqualToString:@"SECOND_PERSON_SINGULAR"]) + return [verbStem stringByAppendingString:@"ías"]; + + if ( [person isEqualToString:@"THIRD_PERSON_SINGULAR"]) + return [verbStem stringByAppendingString:@"ía"]; + + if ( [person isEqualToString:@"FIRST_PERSON_PLURAL"]) + return [verbStem stringByAppendingString:@"íamos"]; + + if ( [person isEqualToString:@"SECOND_PERSON_PLURAL"]) + return [verbStem stringByAppendingString:@"íais"]; + + if ( [person isEqualToString:@"THIRD_PERSON_PLURAL"]) + return [verbStem stringByAppendingString:@"ían"]; + + return verb; } - (NSString *) conjugatePerfectVerb:(NSString *) verb { @@ -549,24 +599,72 @@ } -- (NSString *) conjugateVerb:(NSString *) verb inPerson:(NSString *) person andTense:(NSString *) tense { +// el condicional perfecto +- (NSString *) conjugateConditionalPerfectVerb:(NSString *) verb inPerson:(NSString *) person { + + // Future of haber + Perfect tense + return [[[self conjugateConditionalVerb:@"haber" inPerson:person] stringByAppendingString:@" "] stringByAppendingString:[self conjugatePerfectVerb:verb]]; +} + +- (NSString *) conjugateGerundVerb:(NSString *) verb inPerson:(NSString *) person { + + NSString * verbStem = [self getStem:verb]; + NSString * verbExit = [self getExit:verb]; + + // Irregular + if ( [verb isEqualToString:@"ir"]) return @"yendo"; + + if ( [[verbStem substringFromIndex:[verb length] - 1] isEqualToString:@"a"] || + [[verbStem substringFromIndex:[verb length] - 1] isEqualToString:@"e"] || + [[verbStem substringFromIndex:[verb length] - 1] isEqualToString:@"i"]) + // If the stem of an -er or -ir ends in a vowel, the -i of the 3rd person changes to y + return [verbStem stringByAppendingString:@"yendo"]; + + if ( [[self simplePresentEtoIEstemChangersArray] containsObject:verb] ) { + // Verb changes stem from e to i + verbStem = [verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e"] withString:@"i"]; + } + + if ( [[self simplePresentOtoUEstemChangersArray] containsObject:verb] ) { + // Verb changes stem from o to u + verbStem = [verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"o"] withString:@"u"]; + } + if ( [[self simplePresentEtoIstemChangersArray] containsObject:verb] ) { + // Verb changes stem from e to i + verbStem = [verbStem stringByReplacingCharactersInRange:[verbStem rangeOfString:@"e"] withString:@"i"]; + } + + // Regular + if ( [@"ar" isEqualToString:verbExit] ) return [verbStem stringByAppendingString:@"ando"]; + else return [verbStem stringByAppendingString:@"iendo"]; + + return verb; +} + +- (NSString *) conjugateVerb:(NSString *) verb inPerson:(NSString *) person andTense:(Tense *) tense { - if ( [tense isEqualToString:@"SIMPLE_PRESENT"]) + if ( [tense.tense isEqualToString:@"SIMPLE_PRESENT"]) return [self conjugateSimplePresentVerb:verb inPerson:person]; - else if ( [tense isEqualToString:@"SIMPLE_PAST"]) + else if ( [tense.tense isEqualToString:@"SIMPLE_PAST"]) return [self conjugateSimplePastVerb:verb inPerson:person]; - else if ( [tense isEqualToString:@"IMPERFECT"]) + else if ( [tense.tense isEqualToString:@"IMPERFECT"]) return [self conjugateImperfectVerb:verb inPerson:person]; - else if ( [tense isEqualToString:@"FUTURE"]) + else if ( [tense.tense isEqualToString:@"FUTURE"]) return [self conjugateFutureVerb:verb inPerson:person]; - else if ( [tense isEqualToString:@"PERFECT"]) + else if ( [tense.tense isEqualToString:@"PERFECT"]) return [self conjugatePerfectVerb:verb]; - else if ( [tense isEqualToString:@"PRESENT_PERFECT"]) + else if ( [tense.tense isEqualToString:@"PRESENT_PERFECT"]) return [self conjugatePresentPerfectVerb:verb inPerson:person]; - else if ( [tense isEqualToString:@"PAST_PERFECT"]) // Pluscuamperfecto + else if ( [tense.tense isEqualToString:@"PAST_PERFECT"]) // Pluscuamperfecto return [self conjugatePastPerfectVerb:verb inPerson:person]; - else if ( [tense isEqualToString:@"FUTURE_PERFECT"]) + else if ( [tense.tense isEqualToString:@"FUTURE_PERFECT"]) return [self conjugateFuturePerfectVerb:verb inPerson:person]; + else if ( [tense.tense isEqualToString:@"CONDITIONAL_PERFECT"]) + return [self conjugateConditionalPerfectVerb:verb inPerson:person]; + else if ( [tense.tense isEqualToString:@"CONDITIONAL"]) + return [self conjugateConditionalVerb:verb inPerson:person]; + else if ( [tense.tense isEqualToString:@"GERUND"]) + return [self conjugateGerundVerb:verb inPerson:person]; else return @"Invalid tense"; diff --git a/Espagram/Tense.h b/Espagram/Tense.h new file mode 100644 index 0000000..253aa4a --- /dev/null +++ b/Espagram/Tense.h @@ -0,0 +1,17 @@ +// +// Tense.h +// Espagram +// +// Created by Abel Fokkinga on 11/8/12. +// Copyright (c) 2012 Abel Fokkinga. All rights reserved. +// + +#import + +@interface Tense : NSObject + +@property (nonatomic, strong) NSString * tense; + +- (NSString *) getTenseInLanguage:(NSString *)language; + +@end diff --git a/Espagram/Tense.m b/Espagram/Tense.m new file mode 100644 index 0000000..6ba3e53 --- /dev/null +++ b/Espagram/Tense.m @@ -0,0 +1,73 @@ +// +// Tense.m +// Espagram +// +// Created by Abel Fokkinga on 11/8/12. +// Copyright (c) 2012 Abel Fokkinga. All rights reserved. +// + +#import "Tense.h" + +@interface Tense() +@property (nonatomic, strong) NSDictionary * text; +@end + +@implementation Tense + +@synthesize tense = _tense; +@synthesize text = _text; + +- (void) tense:(NSString *)t { + if ( ![t isEqualToString:_tense]){ + _tense = t; + // reset dictionary + NSLog(@"Resetting tense"); + self.text = nil; + } +} + +- (NSDictionary *) text { + if ( !_text) { + if ( [self.tense isEqualToString:@"SIMPLE_PRESENT"]) + _text = [[NSDictionary alloc] initWithObjects:[[NSArray alloc] + initWithObjects:@"Presente",@"Simple present",@"Onvoltooid tegenwoordige tijd",nil] forKeys:[[NSArray alloc] initWithObjects:@"Spanish",@"English",@"Dutch", nil]]; + if ( [self.tense isEqualToString:@"SIMPLE_PAST"]) + _text = [[NSDictionary alloc] initWithObjects:[[NSArray alloc] + initWithObjects:@"Indefinido",@"Simple past",@"Verleden tijd",nil] forKeys:[[NSArray alloc] initWithObjects:@"Spanish",@"English",@"Dutch", nil]]; + if ( [self.tense isEqualToString:@"IMPERFECT"]) + _text = [[NSDictionary alloc] initWithObjects:[[NSArray alloc] + initWithObjects:@"Imperfecto",@"Imperfect",@"Onvoltooid verleden tijd",nil] forKeys:[[NSArray alloc] initWithObjects:@"Spanish",@"English",@"Dutch", nil]]; + if ( [self.tense isEqualToString:@"FUTURE"]) + _text = [[NSDictionary alloc] initWithObjects:[[NSArray alloc] + initWithObjects:@"Futuro",@"Future",@"Toekomstige tijd",nil] forKeys:[[NSArray alloc] initWithObjects:@"Spanish",@"English",@"Dutch", nil]]; + if ( [self.tense isEqualToString:@"PRESENT_PERFECT"]) + _text = [[NSDictionary alloc] initWithObjects:[[NSArray alloc] + initWithObjects:@"Perfecto",@"Present perfect",@"Pretérito perfecto",nil] forKeys:[[NSArray alloc] initWithObjects:@"Spanish",@"English",@"Dutch", nil]]; + if ( [self.tense isEqualToString:@"PAST_PERFECT"]) + _text = [[NSDictionary alloc] initWithObjects:[[NSArray alloc] + initWithObjects:@"Pluscuamperfecto",@"Past perfect",@"Pretérito pluscuamperfecto",nil] forKeys:[[NSArray alloc] initWithObjects:@"Spanish",@"English",@"Dutch", nil]]; + if ( [self.tense isEqualToString:@"FUTURE_PERFECT"]) + _text = [[NSDictionary alloc] initWithObjects:[[NSArray alloc] + initWithObjects:@"Futuro perfecto",@"Future perfect",@"Pretérito pluscuamperfecto",nil] forKeys:[[NSArray alloc] initWithObjects:@"Spanish",@"English",@"Dutch", nil]]; + if ( [self.tense isEqualToString:@"CONDITIONAL"]) + _text = [[NSDictionary alloc] initWithObjects:[[NSArray alloc] + initWithObjects:@"Condicional",@"Conditional",@"Voorwaardelijke wijs",nil] forKeys:[[NSArray alloc] initWithObjects:@"Spanish",@"English",@"Dutch", nil]]; + if ( [self.tense isEqualToString:@"GERUND"]) + _text = [[NSDictionary alloc] initWithObjects:[[NSArray alloc] + initWithObjects:@"Gerundio",@"Gerund",@"Tegenwoordig deelwoord",nil] forKeys:[[NSArray alloc] initWithObjects:@"Spanish",@"English",@"Dutch", nil]]; + if ( [self.tense isEqualToString:@"IMPERATIVE"]) + _text = [[NSDictionary alloc] initWithObjects:[[NSArray alloc] + initWithObjects:@"Imperativo",@"Imperative",@"Gebiedende wijs",nil] forKeys:[[NSArray alloc] initWithObjects:@"Spanish",@"English",@"Dutch", nil]]; + } + + return _text; +} + +- (NSString *) getTenseInLanguage:(NSString *)language { + return [self.text objectForKey:language]; +} + + + + +@end diff --git a/Espagram/en.lproj/MainStoryboard.storyboard b/Espagram/en.lproj/MainStoryboard.storyboard index bedbca3..33c0989 100644 --- a/Espagram/en.lproj/MainStoryboard.storyboard +++ b/Espagram/en.lproj/MainStoryboard.storyboard @@ -4,284 +4,412 @@ - - + + - - + + - - - - - - - - - - - - - - - - - - - - + + + + + + + - + - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + + + + + + + + + + + + + - + - + - + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -294,14 +422,33 @@ - + - + + + + + + + + + + + + + + + + + + + +