From 0daff1acfa4e455c19b3f142a322cdd61b47588a Mon Sep 17 00:00:00 2001 From: Brent Marohnic Date: Thu, 14 Feb 2013 22:16:58 -0500 Subject: [PATCH] Completely Changed Direction --- .../UserInterfaceState.xcuserstate | Bin 19928 -> 19930 bytes .../APLOCWeek2.xcodeproj/project.pbxproj | 30 + .../UserInterfaceState.xcuserstate | Bin 18475 -> 21524 bytes Week2/APLOCWeek2/APLOCWeek2/ViewController.h | 11 +- Week2/APLOCWeek2/APLOCWeek2/ViewController.m | 50 +- Week2/APLOCWeek2/APLOCWeek2/baseEvent.h | 35 + Week2/APLOCWeek2/APLOCWeek2/baseEvent.m | 36 + Week2/APLOCWeek2/APLOCWeek2/bikeEvent.h | 16 + Week2/APLOCWeek2/APLOCWeek2/bikeEvent.m | 47 ++ .../en.lproj/ViewController_iPhone.xib | 636 +++++++++--------- Week2/APLOCWeek2/APLOCWeek2/eventFactory.h | 19 + Week2/APLOCWeek2/APLOCWeek2/eventFactory.m | 31 + Week2/APLOCWeek2/APLOCWeek2/runEvent.h | 27 + Week2/APLOCWeek2/APLOCWeek2/runEvent.m | 57 ++ Week2/APLOCWeek2/APLOCWeek2/swimEvent.h | 16 + Week2/APLOCWeek2/APLOCWeek2/swimEvent.m | 46 ++ 16 files changed, 724 insertions(+), 333 deletions(-) create mode 100644 Week2/APLOCWeek2/APLOCWeek2/baseEvent.h create mode 100644 Week2/APLOCWeek2/APLOCWeek2/baseEvent.m create mode 100644 Week2/APLOCWeek2/APLOCWeek2/bikeEvent.h create mode 100644 Week2/APLOCWeek2/APLOCWeek2/bikeEvent.m create mode 100644 Week2/APLOCWeek2/APLOCWeek2/eventFactory.h create mode 100644 Week2/APLOCWeek2/APLOCWeek2/eventFactory.m create mode 100644 Week2/APLOCWeek2/APLOCWeek2/runEvent.h create mode 100644 Week2/APLOCWeek2/APLOCWeek2/runEvent.m create mode 100644 Week2/APLOCWeek2/APLOCWeek2/swimEvent.h create mode 100644 Week2/APLOCWeek2/APLOCWeek2/swimEvent.m diff --git a/Week1/APLOC2 Week 1/APLOC2 Week 1.xcodeproj/project.xcworkspace/xcuserdata/notmyemail.xcuserdatad/UserInterfaceState.xcuserstate b/Week1/APLOC2 Week 1/APLOC2 Week 1.xcodeproj/project.xcworkspace/xcuserdata/notmyemail.xcuserdatad/UserInterfaceState.xcuserstate index 399ce11b8cffb8ffca6e5cae8d8b359a0ca3256c..f04529459f521509170853ecb20014c71b540b53 100644 GIT binary patch delta 8189 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 diff --git a/Week2/APLOCWeek2/APLOCWeek2.xcodeproj/project.pbxproj b/Week2/APLOCWeek2/APLOCWeek2.xcodeproj/project.pbxproj index e282fec..a578086 100644 --- a/Week2/APLOCWeek2/APLOCWeek2.xcodeproj/project.pbxproj +++ b/Week2/APLOCWeek2/APLOCWeek2.xcodeproj/project.pbxproj @@ -21,6 +21,11 @@ 65D407D016CD2D6F00FAE85B /* ViewController_iPad.xib in Resources */ = {isa = PBXBuildFile; fileRef = 65D407CE16CD2D6F00FAE85B /* ViewController_iPad.xib */; }; 65D407D716CD4EF900FAE85B /* ViewController2.xib in Resources */ = {isa = PBXBuildFile; fileRef = 65D407D616CD4EF900FAE85B /* ViewController2.xib */; }; 65D407DA16CD572700FAE85B /* ViewController2.m in Sources */ = {isa = PBXBuildFile; fileRef = 65D407D916CD572700FAE85B /* ViewController2.m */; }; + 65D407DD16CDC19E00FAE85B /* baseEvent.m in Sources */ = {isa = PBXBuildFile; fileRef = 65D407DC16CDC19E00FAE85B /* baseEvent.m */; }; + 65D407E016CDC5F400FAE85B /* swimEvent.m in Sources */ = {isa = PBXBuildFile; fileRef = 65D407DF16CDC5F400FAE85B /* swimEvent.m */; }; + 65D407E316CDD16C00FAE85B /* bikeEvent.m in Sources */ = {isa = PBXBuildFile; fileRef = 65D407E216CDD16B00FAE85B /* bikeEvent.m */; }; + 65D407E616CDD3CE00FAE85B /* runEvent.m in Sources */ = {isa = PBXBuildFile; fileRef = 65D407E516CDD3CE00FAE85B /* runEvent.m */; }; + 65D407E916CDDA4300FAE85B /* eventFactory.m in Sources */ = {isa = PBXBuildFile; fileRef = 65D407E816CDDA4300FAE85B /* eventFactory.m */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -44,6 +49,16 @@ 65D407D616CD4EF900FAE85B /* ViewController2.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ViewController2.xib; sourceTree = ""; }; 65D407D816CD572700FAE85B /* ViewController2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ViewController2.h; sourceTree = ""; }; 65D407D916CD572700FAE85B /* ViewController2.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ViewController2.m; sourceTree = ""; }; + 65D407DB16CDC19E00FAE85B /* baseEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = baseEvent.h; sourceTree = ""; }; + 65D407DC16CDC19E00FAE85B /* baseEvent.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = baseEvent.m; sourceTree = ""; }; + 65D407DE16CDC5F400FAE85B /* swimEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = swimEvent.h; sourceTree = ""; }; + 65D407DF16CDC5F400FAE85B /* swimEvent.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = swimEvent.m; sourceTree = ""; }; + 65D407E116CDD16B00FAE85B /* bikeEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = bikeEvent.h; sourceTree = ""; }; + 65D407E216CDD16B00FAE85B /* bikeEvent.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = bikeEvent.m; sourceTree = ""; }; + 65D407E416CDD3CE00FAE85B /* runEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = runEvent.h; sourceTree = ""; }; + 65D407E516CDD3CE00FAE85B /* runEvent.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = runEvent.m; sourceTree = ""; }; + 65D407E716CDDA4300FAE85B /* eventFactory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = eventFactory.h; sourceTree = ""; }; + 65D407E816CDDA4300FAE85B /* eventFactory.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = eventFactory.m; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -100,6 +115,16 @@ 65D407D616CD4EF900FAE85B /* ViewController2.xib */, 65D407D816CD572700FAE85B /* ViewController2.h */, 65D407D916CD572700FAE85B /* ViewController2.m */, + 65D407DB16CDC19E00FAE85B /* baseEvent.h */, + 65D407DC16CDC19E00FAE85B /* baseEvent.m */, + 65D407DE16CDC5F400FAE85B /* swimEvent.h */, + 65D407DF16CDC5F400FAE85B /* swimEvent.m */, + 65D407E116CDD16B00FAE85B /* bikeEvent.h */, + 65D407E216CDD16B00FAE85B /* bikeEvent.m */, + 65D407E416CDD3CE00FAE85B /* runEvent.h */, + 65D407E516CDD3CE00FAE85B /* runEvent.m */, + 65D407E716CDDA4300FAE85B /* eventFactory.h */, + 65D407E816CDDA4300FAE85B /* eventFactory.m */, ); path = APLOCWeek2; sourceTree = ""; @@ -190,6 +215,11 @@ 65D407C116CD2D6F00FAE85B /* AppDelegate.m in Sources */, 65D407CA16CD2D6F00FAE85B /* ViewController.m in Sources */, 65D407DA16CD572700FAE85B /* ViewController2.m in Sources */, + 65D407DD16CDC19E00FAE85B /* baseEvent.m in Sources */, + 65D407E016CDC5F400FAE85B /* swimEvent.m in Sources */, + 65D407E316CDD16C00FAE85B /* bikeEvent.m in Sources */, + 65D407E616CDD3CE00FAE85B /* runEvent.m in Sources */, + 65D407E916CDDA4300FAE85B /* eventFactory.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/Week2/APLOCWeek2/APLOCWeek2.xcodeproj/project.xcworkspace/xcuserdata/notmyemail.xcuserdatad/UserInterfaceState.xcuserstate b/Week2/APLOCWeek2/APLOCWeek2.xcodeproj/project.xcworkspace/xcuserdata/notmyemail.xcuserdatad/UserInterfaceState.xcuserstate index a5b741f5809ab7a907d4cfb7c026bfb6b4e186fd..dceb15941fc0f6a58d3a586882c1301c5dfca366 100644 GIT binary patch delta 8139 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 delta 5948 zcmZu#33L-x+sd$MpX*f0;w z(_rXbG%tEJ(}8VC0H?NP&5jE%!B$|auo`S9R*UVz_F;#xI_y*IBK8?}6}y4m#D2&A zgWbpe#GXI_L{I{yFbQg*4(g!+TA%}_!F1RNX22k93bSA<*cxWTj<6H#47ISE{03s(lD%stKk~B9qxc1!kzF4{0P>;qwpL&4==!r z@H)H!zk$ENyYN?d5B>rFf{zhI2nmq_DNzDaAvMw=Ju)CWav&NpC>;e+2sK7cP*c86+lp<&wqrYZ z(2fV~dC-9euk#=~Lfe|(6TJBJDf0*XY5r8on-Q4!5_C7VrvanE`28{C<5orLA`4y$ z9LA2kYQ$0ORFq;g;g7M?af`7tJm|!OF7*+3<7EWS)kokw4?0H{bn(1A=Mr}Ll>mH+ zUEx7j9_0Mv?=|e}SE0VazI}D!d+g5307UE91ntk*FW6n|SL_}Sy78bp4|?#RCl7i> ze`cxP53oP}?b@S%ta@qFQ|#F*=R*MF1xzK3MeYKTKQR6r#Ua(R%)gT6e-uZAk9hKW$agMK_1#Dl>+7!`e( zvOjEurWl5xd&F1?%{(ahZ`7bwkXHq5FqsGac`zX2_^*+WhA9G7m7t%XAYzVCRf0m8 z8nN)8Fk-W1_RoBg*_Wbj=>319{(8}Y^`g^;zYxufdQ$bCP%IX(F%RC3EcgsI12@5U z0x4_`GhqwZve&4>qQZib!NtRPFq8*HJQ%`*kujHt7}~&gu^htJU|Sx8l;|?~Io> z>`cm2_KqfKv!i04PBf!oEfSS$^P+dw#P)>Ix$`$ubS`{#+RUT6h;jsDiEfg9_! z8pBO+v%m(o@?ZuJW<~-$nAHH5|HtcBm%dQT;M@~?mifKjRLcFgel6Trudjyt;enX` zAs)=(!Q6WNccNPxyD)eRe%t_X8h#QJILm{1JeXfEu%H2;)Z66pj28f&Kt>F};|cy7 z;4}DTy}le?fnPPa6(hq%(E*Lk82lFAs^1I4AK~rT*>`xbga=FO&wj7r?Akf2pQrr~ z%KkUNZ}30$P5L_zDk|Z99xQ*g1|Bt}XIY-I;O`nJ$S)dHJgOwUG=F6Jfa0R4qG{J& z@CgzKm{njq*b25prbVVi%2&l@qBs;ES;vD9c(5Wuzwk2X%a~Z7#k6FvW5R!14T+F6 z)(S|BBs{3(K~)u!A)E)Rcu*bP+w{B&B_bkbC5rX`no5+!gPQ2_W>yC>A}R)oNMu5> z=8plb=fQ?m$bzi(owSh$$LpKv`)0%1B36)BjZ%;kr6Ly(Hu2y?9_;49fxoE%xsk8_ zFb;W;mj|19u!RR(S0O(Nphi5{#)IuV*b%L0zTAN_QLFzY+8VV%ukm0f4{CX^E1H{0 zwLsaZ%l{JXigM5!JlMm7y*$_#OV`WyN`Zi~#|fwlsFy&BdZRaY9LjtA3-8<&gKfMfRJ{lxo*2Fw1K>d*y4L}25_;Zj4 zu>y_N_+cI#S%U`07oj1jC_eV(!ACrZ=RqA0j=i{vkI;EaYr9shTg14lba3=cmL_^2 zYkC-!#;h8H#`fr#lU6c#XkmROYu`x!Ek-0q8%!LJ${MUGtU}`jBl48WH;Vh`kE8NS zs74_!gX)~E{OQHp5rqYLl>$5x7jZN^mkaXN!+vq^#E2|EMq_zcAVz3?u#6aYMQ+s7 z*+f32p3GvD#=YRS(LC@*9C=Db$D9s@;|lw?7+ElAaB1Pl^JqR=5WU-q2*+QF|0@2+ z_u{cbKi7_dr#8j9DOTwCA-LQVxC~Pz~1{;T!VH2@1#$)B!LToV>8!xcsu}QEp zHVdwfO@p=A!`OV+C`O($VguTtSTEj+jb2aSGbD&rI2IegL`V`VS#zxNY_ZXcMr^Fm zTqv9#%YipGZRN!RU4b^EYv>+&F2scjp;BlQx`ke$Uzi~b37ZHz3wsH3g?)wng#Cph zgr&l zN)d6Qps1y&rzlTUBpNLm6BdmVm5C;brio^VW{KvA-Vx0c?GRlM{UAnSwb&|77CXd@ zI7OT)P7}Mu&BZOmS>o2>*Tn6_9mLtsghJn)<|k3;q8(`l8+=uB_|}OB&Q{p zC0|LdNp48KmE4s4Cb=*9L-I)SSn^aVk>XN?R3%N65>i$gkOrlVrOl+7(w5Rr($3N@ z(i~}D=|JgV=@98qX^FH{I#xPfIzhTbx=VUidQN&xdQbYh^uF{D>7UZSq)(*JWCB^7 zOe0H@>B2IDjFg#W7MV?Em(em-)=HKm8z?K2&5~8gYGoH>w`9+7AuhrtxEiN$8h7CV zyb&J6TjE)GYrG@g3GagU#^1!>!r#V+;>Gw#yaX@B!}v6O20ja)gTI4U;4ASeyc%DJ zZ@@R7SISq(SIhUx_sb8;56eH2AC(`MpOl}LpOv4NUzGnKf36@D$%=Hv zYl^oN5ye8q3dKgn7R5Hjhl*OoZp977FN%AL-xUuO4;7CT&y>=zQl(5(5=yPoth6X? zO1qL)<|v0K%awDK?<(gjqso=aEy``m9m<``UCKSmeaZvMPn2hs=ad(epD90AURGXF zURB;!K1fg|BqwAh7iUA;hEphQy){GP@hU<6FrG-6SETw5{nX-BrZ!lk@$Jy zbB#=ssG&4gO|r(JN!R!_Ax);Ho#u5-M@?tVz_6x7Gfq>cnW&kpnWCAdnW0&%snD#| zY|?DeY}3?gc5C)(_G^x7E^4l5u4=y4+|b<8+}7OD{G$0)^QY#q=Beg6AtMX~Ntg)> zVI%AWO|V1;5h9up&4^5*CDDp#L$oD&69b9i#7LrqC?&=cJW)$JzTC$y)ur?qFapK71z#5$EOQAg;s zI=#-Ov+HObt8?mHx^}uDy0C7ku2NU6Tcca6Td&)t+pjyQJFGjVJE1$JJFWX(_e3w& zOY~AbuGi}gdZXT?cj^QB41Gx7MBhxGsqdf5{q)21i}YLcpX;yd z@9H1xpXi_JpBqF5sR1`A3`PTKFc~O=-_XbqG&D9eH8eN0HFPp`G2|G!8G0D{8u}Uf z8zP38hS`R>hQ)@ZhW8Dt4Vw-73@YKCk2z#+ zZO%0hF%L73FqfE1&121r%vI*q=C$Sx=1pPq7IU5XnE8VFlKBhs74tRob@PwrU(EN+ z|1m$H;wT{{rlgdTQd0z_r5sc`)r4w6Wl^oE_Ea|2nd(aAQUj?HYBW_!jishiGpJeA zTxuS*fU2NYQmd#n)LLpMwU^pY9i-~0XqkgCEQ{hL{6Y9AISkxAy z#bs$}>0=pV8E=_j30o#xDlFBO4VGP&E0!NDKU(fs?pl7cBCFUcv&yYXtIBGyTCH{~ zV|7|x)_^s`8nR|tTU%eVcDCkNyIK2MhgyrRBdnvWbFA-L=UW$A7h6|YtE{W7HP)@x zE7t2au}u}WW!Re93T#ETV%rGYC|ks~$hOp0Vf(;VX{)x?*w))N*|yqt*iPC$ww&WV>wp%J#MGhV5J1P21ySZL%l1U2^y2naLH&waMp_ZzbPPewzH;9%skw$gZ%f z>>9h)Zm^T~9`^qBA@*VR;r3DX@%D-Kh`rn%o@!rUUua)!f6xBJA$CX|xI^iPIOaMQ zJC-`$cPw*!;HYt|cWiQOacp;d=s4gw?5J}bbDVTsa$Ip-b$spk&hdlew&RZDPsbz2 zUydiVn3m8|8mINNou+A)cG507oet4W=}bC{ZbP@DJJ4^?d2|sylpaP857Xo533Qm| z>2i7=J)d4cFQhB!_4G!1Grg7GPVb`+(nshz`Z#@(K2Lu}e?fmqU!`x;cj$~0$MFj-7TrVH~1(}U^Fyv5`(gP76GWTu>% z!c1e{Wx@-Xh0J1R6;sWuW@?xZnFGur<_J^A9AnNh=b6u#&zUcoub7+6E#@cYXXY;R zm=&;bEXImi8LMCuSQBezDb~uSvu>7Sy=*4ifz4(+v0d04wj0}*Eno+*gV`dsm>t26 zXQ#6Z*+uMPb}3uQR zCnYbXUrJ%hu#^!gB`IT4#-~h3sY&_V37u)q#?EHWOlOv}jkB$@i?h44m$Q#E*Ez&F z+&R)&;vDBJb53$boHLz^ofXdI&K1sT=Njia=LYA8&Qs0{&P&elW#<*=9p?k*pU%h5 zXQ?3d&D8#>BT`FK$E8k4c-SvsfSZ&)eF-MF4yZ?1qV;zo0mx!K%Y?p$vUQVeSlfh5L^C zp1Z}}=I(I!xrf|e+!OA(2Y4hNwa4gTJsywG6YyksLY^#78&5k=2T!)Alc%RA-!sfJ z#xu@S=9%aTduDiMd*1QP^F%$1JRf*Acy@X|@*MM=^qlsb^_=ru^IZ3QuJBfSYrN~d8@-3Umwm;)5+CoI;+yW9 z<(un!*SFla*0d}-QUdrn!mF@$KT!G%iqVJ>mTAD z=^yPM>o4<9_D}WC@Xz+o^@nTyHv`ImE?@{)0%-w%AS2K?&@9k8&^FK^&@s?C&@0d< zFfdROC<{yq@PR3T*@1Tg^8*V5ivueHYXVyWyMjqUeb5%P~T8tXl!VFs5~?+ zG$S-C6b-EnZ3t}&Z3%4;?F{V>?F$_Y9SI!`9S>a&T?>8p;%_ZMTwKEyMH{X!e?#B@ EA3_cP(*OVf diff --git a/Week2/APLOCWeek2/APLOCWeek2/ViewController.h b/Week2/APLOCWeek2/APLOCWeek2/ViewController.h index 8530307..5821857 100644 --- a/Week2/APLOCWeek2/APLOCWeek2/ViewController.h +++ b/Week2/APLOCWeek2/APLOCWeek2/ViewController.h @@ -7,15 +7,16 @@ // #import +#import "eventFactory.h" @interface ViewController : UIViewController { IBOutlet UISegmentedControl *segmentControl; IBOutlet UIStepper *stepperControl; - IBOutlet UIButton *cricketButton; - IBOutlet UIButton *butterflyButton; - IBOutlet UIButton *antButton; - IBOutlet UIButton *executeButton; + IBOutlet UIButton *swimButton; + IBOutlet UIButton *bikeButton; + IBOutlet UIButton *runButton; + IBOutlet UIButton *competeButton; IBOutlet UITextField *textBox; } @@ -27,4 +28,6 @@ -(IBAction)onClassButtonClick:(id)sender; +-(IBAction)onCompeteClick:(id)sender; + @end diff --git a/Week2/APLOCWeek2/APLOCWeek2/ViewController.m b/Week2/APLOCWeek2/APLOCWeek2/ViewController.m index b17092e..d3c74f1 100644 --- a/Week2/APLOCWeek2/APLOCWeek2/ViewController.m +++ b/Week2/APLOCWeek2/APLOCWeek2/ViewController.m @@ -15,35 +15,47 @@ @implementation ViewController +-(IBAction)onCompeteClick:(id)sender +{ + swimEvent *newSwimEvent = (swimEvent*)[eventFactory createNewEvent:SWIM]; + [newSwimEvent setWaterTemp: 70]; + + textBox.text = [NSString stringWithFormat:@"Event Time of %.2f Minutes", [newSwimEvent calculateEventTime]]; +} + + -(IBAction)onClassButtonClick:(id)sender { UIButton *classButton = (UIButton*)sender; if (classButton.tag == 0) { - textBox.text = @"Cricket"; + textBox.text = @"Swim 1 mile"; stepperControl.enabled = TRUE; + stepperControl.maximumValue = 3; classButton.enabled = FALSE; - antButton.enabled = TRUE; - butterflyButton.enabled = TRUE; + runButton.enabled = TRUE; + bikeButton.enabled = TRUE; stepperControl.value = 0; } else if (classButton.tag == 1) { - textBox.text = @"Butterfly"; + textBox.text = @"Bike 1 mile"; stepperControl.enabled = TRUE; + stepperControl.maximumValue = 120; classButton.enabled = FALSE; - antButton.enabled = TRUE; - cricketButton.enabled = TRUE; + runButton.enabled = TRUE; + swimButton.enabled = TRUE; stepperControl.value = 0; } else if (classButton.tag == 2) { - textBox.text = @"Ant"; + textBox.text = @"Run 1 mile"; stepperControl.enabled = TRUE; + stepperControl.maximumValue = 26; classButton.enabled = FALSE; - cricketButton.enabled = TRUE; - butterflyButton.enabled = TRUE; + swimButton.enabled = TRUE; + bikeButton.enabled = TRUE; stepperControl.value = 0; } @@ -58,28 +70,28 @@ if (currentValue == 1) { - if (cricketButton.enabled == FALSE) + if (swimButton.enabled == FALSE) { - textBox.text = @"Cricket"; + textBox.text = @"Swim 1 mile"; } - else if (butterflyButton.enabled == FALSE) + else if (bikeButton.enabled == FALSE) { - textBox.text = @"Butterfly"; + textBox.text = @"Bike 1 mile"; } - else textBox.text = @"Ant"; + else textBox.text = @"Run 1 mile"; } else { - if (cricketButton.enabled == FALSE) + if (swimButton.enabled == FALSE) { - textBox.text = [NSString stringWithFormat:@"%d Crickets", currentValue]; + textBox.text = [NSString stringWithFormat:@"Swim %d miles", currentValue]; } - else if (butterflyButton.enabled == FALSE) + else if (bikeButton.enabled == FALSE) { - textBox.text = [NSString stringWithFormat:@"%d Butterflies", currentValue]; + textBox.text = [NSString stringWithFormat:@"Bike %d miles", currentValue]; } - else textBox.text = [NSString stringWithFormat:@"%d Ants", currentValue]; + else textBox.text = [NSString stringWithFormat:@"Run %d miles", currentValue]; } } diff --git a/Week2/APLOCWeek2/APLOCWeek2/baseEvent.h b/Week2/APLOCWeek2/APLOCWeek2/baseEvent.h new file mode 100644 index 0000000..eb6b1eb --- /dev/null +++ b/Week2/APLOCWeek2/APLOCWeek2/baseEvent.h @@ -0,0 +1,35 @@ +// +// baseEvent.h +// APLOCWeek2 +// +// Created by Brent Marohnic on 2/14/13. +// Copyright (c) 2013 Brent Marohnic. All rights reserved. +// + +#import + +@interface baseEvent : NSObject +{ + int eventEnum; +} + +typedef enum +{ + SWIM, + BIKE, + RUN +} eventEnum; + +// common data members for all events + +@property NSString *eventName; +@property int eventDistance; +@property int eventTimeInMinutes; + +// initialize +-(id)init; + +// calculate event time +-(float)calculateEventTime; + +@end diff --git a/Week2/APLOCWeek2/APLOCWeek2/baseEvent.m b/Week2/APLOCWeek2/APLOCWeek2/baseEvent.m new file mode 100644 index 0000000..84481c9 --- /dev/null +++ b/Week2/APLOCWeek2/APLOCWeek2/baseEvent.m @@ -0,0 +1,36 @@ +// +// baseEvent.m +// APLOCWeek2 +// +// Created by Brent Marohnic on 2/14/13. +// Copyright (c) 2013 Brent Marohnic. All rights reserved. +// + +#import "baseEvent.h" + +@implementation baseEvent + +// allow the compiler to automatically genenate get and set methods for the event properties +@synthesize eventDistance, eventName, eventTimeInMinutes; + +// initilize the base event +-(id)init +{ + self = [super init]; + if (self != nil) + { + [self setEventName: nil]; + [self setEventDistance: 0]; + [self setEventTimeInMinutes:0]; + } + return self; +} + +// calculate event time +-(float)calculateEventTime +{ + NSLog(@"This will be overridden"); + return 1.0; +} + +@end diff --git a/Week2/APLOCWeek2/APLOCWeek2/bikeEvent.h b/Week2/APLOCWeek2/APLOCWeek2/bikeEvent.h new file mode 100644 index 0000000..374209c --- /dev/null +++ b/Week2/APLOCWeek2/APLOCWeek2/bikeEvent.h @@ -0,0 +1,16 @@ +// +// bikeEvent.h +// APLOCWeek2 +// +// Created by Brent Marohnic on 2/14/13. +// Copyright (c) 2013 Brent Marohnic. All rights reserved. +// + +#import "baseEvent.h" + +@interface bikeEvent : baseEvent + +// event specific data members used to calculate event time +@property int elevationInFeet; + +@end diff --git a/Week2/APLOCWeek2/APLOCWeek2/bikeEvent.m b/Week2/APLOCWeek2/APLOCWeek2/bikeEvent.m new file mode 100644 index 0000000..30c1efc --- /dev/null +++ b/Week2/APLOCWeek2/APLOCWeek2/bikeEvent.m @@ -0,0 +1,47 @@ +// +// bikeEvent.m +// APLOCWeek2 +// +// Created by Brent Marohnic on 2/14/13. +// Copyright (c) 2013 Brent Marohnic. All rights reserved. +// + +#import "bikeEvent.h" + +@implementation bikeEvent + +@synthesize elevationInFeet, eventDistance, eventName; + +// set unique data members from within INIT + +-(id)init +{ + self = [super init]; + if (self != nil) + { + [self setElevationInFeet:5500]; + [self setEventDistance:120]; + [self setEventName:@"Biking"]; + } + return self; +} + +// override the base event method +// handicap equals the (absolute value of (optimum elevation - current elevation) * 0.01) * (absolute value of (optimum elevation - current elevation) +// distanceHandicap equals the best training time for one mile * (distance * 1.05) + +-(float)calculateEventTime +{ + float handicap; + float distanceHandicap; + + handicap = abs(25 - elevationInFeet) * 0.01 * abs(25 - elevationInFeet); + distanceHandicap = 2 * (eventDistance * 1.05); + + [self setEventTimeInMinutes:(handicap + distanceHandicap)]; + + return self.eventTimeInMinutes; +} + + +@end diff --git a/Week2/APLOCWeek2/APLOCWeek2/en.lproj/ViewController_iPhone.xib b/Week2/APLOCWeek2/APLOCWeek2/en.lproj/ViewController_iPhone.xib index 8b5280f..0958a9e 100644 --- a/Week2/APLOCWeek2/APLOCWeek2/en.lproj/ViewController_iPhone.xib +++ b/Week2/APLOCWeek2/APLOCWeek2/en.lproj/ViewController_iPhone.xib @@ -39,12 +39,13 @@ 274 - + 292 {{0, 519}, {320, 30}} + _NS:9 NO IBCocoaTouchFramework @@ -76,13 +77,13 @@ - + 292 {{247, 0}, {73, 33}} - + _NS:9 NO IBCocoaTouchFramework @@ -90,7 +91,7 @@ 0 1 Info - + 3 MQA @@ -98,27 +99,27 @@ 1 MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA - + 3 MC41AA - + 2 15 - + Helvetica-Bold 15 16 - + 292 - {{122, 80}, {178, 30}} + {{20, 80}, {280, 30}} - + _NS:9 NO YES @@ -127,11 +128,11 @@ 0 3 - Select Insect + Select Event 3 MAA - + 2 @@ -150,13 +151,13 @@ 16 - + 268 - {{20, 82}, {94, 27}} + {{109, 118}, {94, 27}} - + _NS:9 NO YES @@ -169,36 +170,36 @@ 1 10 - + 292 {{20, 164}, {86, 44}} - + _NS:9 NO IBCocoaTouchFramework 0 0 1 - Cricket - + Swim + 1 MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA - - - + + + - + 292 - {{208, 164}, {86, 44}} + {{207, 164}, {85, 44}} - + _NS:9 NO 2 @@ -206,23 +207,23 @@ 0 0 1 - Ant - + Run + 1 MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA - - - + + + - + 292 - {{114, 164}, {86, 44}} + {{114, 164}, {85, 44}} - + _NS:9 NO 1 @@ -230,47 +231,47 @@ 0 0 1 - Butterfly - + Bike + 1 MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA - - - + + + - + 292 {{20, 416}, {280, 44}} - + _NS:9 NO IBCocoaTouchFramework 0 0 1 - Execute - + Compete + 1 MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA - - + + {{0, 20}, {320, 548}} - + 3 MC43NQA - + NO @@ -308,7 +309,7 @@ segmentControl - + 15 @@ -316,54 +317,54 @@ stepperControl - + 85 - - - antButton - - - - 86 - - - - butterflyButton - - - - 87 - - - - cricketButton - - - - 88 - - - - executeButton - - - - 89 - textBox - + 93 + + + swimButton + + + + 105 + + + + runButton + + + + 106 + + + + bikeButton + + + + 107 + + + + competeButton + + + + 108 + onChange: - + 13 @@ -372,7 +373,7 @@ onClick: - + 7 @@ -381,7 +382,7 @@ onStepChange: - + 13 @@ -390,7 +391,7 @@ onClassButtonClick: - + 7 @@ -399,7 +400,7 @@ onClassButtonClick: - + 7 @@ -408,12 +409,21 @@ onClassButtonClick: - + 7 91 + + + onCompeteClick: + + + 7 + + 109 + @@ -438,8 +448,8 @@ 6 - - + + 6 0 @@ -454,8 +464,8 @@ 29 3 - - + + 5 0 @@ -470,8 +480,8 @@ 29 3 - - + + 4 0 @@ -486,8 +496,8 @@ 29 3 - - + + 5 0 @@ -502,11 +512,11 @@ 29 3 - + 6 0 - + 6 1 @@ -518,11 +528,11 @@ 29 3 - + 4 0 - + 4 1 @@ -534,11 +544,11 @@ 9 3 - - + + 5 0 - + 6 1 @@ -550,11 +560,11 @@ 24 3 - - + + 11 0 - + 11 1 @@ -566,8 +576,8 @@ 24 2 - - + + 3 0 @@ -582,8 +592,8 @@ 29 3 - - + + 6 0 @@ -598,11 +608,27 @@ 29 3 - - + + + 9 + 0 + + 9 + 1 + + 0.0 + + 1000 + + 6 + 24 + 2 + + + 11 0 - + 11 1 @@ -614,11 +640,11 @@ 24 2 - - + + 5 0 - + 6 1 @@ -630,8 +656,8 @@ 24 3 - - + + 3 0 @@ -646,8 +672,8 @@ 9 3 - - + + 5 0 @@ -662,28 +688,12 @@ 29 3 - - - 10 + + + 3 0 - - 10 - 1 - - 0.0 - - 1000 - - 6 - 24 - 2 - - - - 5 - 0 - - 6 + + 4 1 8 @@ -694,8 +704,24 @@ 24 3 - - + + + 5 + 0 + + 5 + 1 + + 20 + + 1000 + + 8 + 29 + 3 + + + 3 0 @@ -710,11 +736,11 @@ 9 3 - + 6 0 - + 6 1 @@ -726,59 +752,43 @@ 29 3 - - - 5 - 0 - - 5 - 1 - - 20 - - 1000 - - 8 - 29 - 3 - - - - - - - - - + + + + + + + + 8 - + 14 - + 13 - + 11 - + 18 - + - - + + 8 0 @@ -788,13 +798,13 @@ 32 1000 - + 3 9 1 - - + + 7 0 @@ -804,7 +814,7 @@ 73 1000 - + 3 9 1 @@ -814,89 +824,52 @@ 21 - + 22 - + 24 - - + + 26 - - + + 28 - + 36 - + 37 - + 38 - - - - - 7 - 0 - - 0 - 1 - - 94 - - 1000 - - 3 - 9 - 1 - - - - - - 42 - - - - - 43 - - - - - 44 - - - - - 45 - + + 46 - + - - + + 7 0 @@ -906,7 +879,7 @@ 86 1000 - + 3 9 1 @@ -916,30 +889,30 @@ 49 - + 50 - + 51 - + - - + + 7 0 0 1 - 86 + 85 1000 - + 3 9 1 @@ -949,58 +922,96 @@ 54 - + + + + + 7 + 0 + + 0 + 1 + + 85 + + 1000 + + 3 + 9 + 1 + + 65 - + - - 69 - - - - - 70 - - - 72 - - - - - 73 - + 74 - + 81 - + 83 - + 78 - + 66 - + + + + + 100 + + + + + 102 + + + + + 103 + + + + + 104 + + + + + 110 + + + + + 111 + + + + + 113 + @@ -1010,13 +1021,20 @@ com.apple.InterfaceBuilder.IBCocoaTouchPlugin UIResponder com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin @@ -1028,56 +1046,49 @@ com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - - - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin - + com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin + + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin - com.apple.InterfaceBuilder.IBCocoaTouchPlugin com.apple.InterfaceBuilder.IBCocoaTouchPlugin @@ -1092,7 +1103,7 @@ - 97 + 113 @@ -1111,6 +1122,7 @@ id id id + id id @@ -1126,35 +1138,35 @@ onClick: id + + onCompeteClick: + id + onStepChange: id - UIButton - UIButton - UIButton - UIButton + UIButton + UIButton + UIButton UISegmentedControl UIStepper + UIButton UITextField - - antButton + + bikeButton UIButton - - butterflyButton + + competeButton UIButton - - cricketButton - UIButton - - - executeButton + + runButton UIButton @@ -1165,6 +1177,10 @@ stepperControl UIStepper + + swimButton + UIButton + textBox UITextField diff --git a/Week2/APLOCWeek2/APLOCWeek2/eventFactory.h b/Week2/APLOCWeek2/APLOCWeek2/eventFactory.h new file mode 100644 index 0000000..9a13c95 --- /dev/null +++ b/Week2/APLOCWeek2/APLOCWeek2/eventFactory.h @@ -0,0 +1,19 @@ +// +// eventFactory.h +// APLOCWeek2 +// +// Created by Brent Marohnic on 2/14/13. +// Copyright (c) 2013 Brent Marohnic. All rights reserved. +// + +#import +#import "baseEvent.h" +#import "swimEvent.h" +#import "bikeEvent.h" +#import "runEvent.h" + +@interface eventFactory : NSObject + ++(baseEvent *)createNewEvent:(int)eventType; + +@end diff --git a/Week2/APLOCWeek2/APLOCWeek2/eventFactory.m b/Week2/APLOCWeek2/APLOCWeek2/eventFactory.m new file mode 100644 index 0000000..58a9060 --- /dev/null +++ b/Week2/APLOCWeek2/APLOCWeek2/eventFactory.m @@ -0,0 +1,31 @@ +// +// eventFactory.m +// APLOCWeek2 +// +// Created by Brent Marohnic on 2/14/13. +// Copyright (c) 2013 Brent Marohnic. All rights reserved. +// + +#import "eventFactory.h" + + +@implementation eventFactory + ++(baseEvent *)createNewEvent:(int)eventType +{ + if (eventType == SWIM) + { + return [[swimEvent alloc] init]; + } + else if (eventType == BIKE) + { + return [[bikeEvent alloc] init]; + } + else if (eventType == RUN) + { + return [[runEvent alloc] init]; + } + else return nil; +} + +@end diff --git a/Week2/APLOCWeek2/APLOCWeek2/runEvent.h b/Week2/APLOCWeek2/APLOCWeek2/runEvent.h new file mode 100644 index 0000000..7a139f5 --- /dev/null +++ b/Week2/APLOCWeek2/APLOCWeek2/runEvent.h @@ -0,0 +1,27 @@ +// +// runEvent.h +// APLOCWeek2 +// +// Created by Brent Marohnic on 2/14/13. +// Copyright (c) 2013 Brent Marohnic. All rights reserved. +// + +#import "baseEvent.h" + +@interface runEvent : baseEvent +{ + int terrainEnum; +} + +typedef enum +{ + PAVEDESTREETS, + MIXEDSURFACE, + CROSSCOUNTRY +} terrainEnum; + +// event specific data members used to calculate event time + +@property int terrainType; + +@end diff --git a/Week2/APLOCWeek2/APLOCWeek2/runEvent.m b/Week2/APLOCWeek2/APLOCWeek2/runEvent.m new file mode 100644 index 0000000..434a565 --- /dev/null +++ b/Week2/APLOCWeek2/APLOCWeek2/runEvent.m @@ -0,0 +1,57 @@ +// +// runEvent.m +// APLOCWeek2 +// +// Created by Brent Marohnic on 2/14/13. +// Copyright (c) 2013 Brent Marohnic. All rights reserved. +// + +#import "runEvent.h" + +@implementation runEvent + +@synthesize terrainType, eventDistance, eventName; + +// set unique data members from within INIT + +-(id)init +{ + self = [super init]; + if (self != nil) + { + [self setTerrainType:terrainEnum]; + [self setEventDistance:26]; + [self setEventName:@"Running"]; + } + return self; +} + +// override the base event method +// handicap equals a factor derived from the type of terrain on which the event occurs +// distanceHandicap equals the best training time for one mile * (distance * 1.05) + +-(float)calculateEventTime +{ + float handicap; + float distanceHandicap; + + if (terrainType == PAVEDESTREETS) + { + handicap = PAVEDESTREETS; + } + else if (terrainType == MIXEDSURFACE) + { + handicap = MIXEDSURFACE * (MIXEDSURFACE * 0.1); + } + else handicap = CROSSCOUNTRY * (CROSSCOUNTRY * 0.1); + + + distanceHandicap = 8 * (eventDistance * 1.05); + + [self setEventTimeInMinutes:(handicap + distanceHandicap)]; + + return self.eventTimeInMinutes; +} + + +@end diff --git a/Week2/APLOCWeek2/APLOCWeek2/swimEvent.h b/Week2/APLOCWeek2/APLOCWeek2/swimEvent.h new file mode 100644 index 0000000..7fe41f8 --- /dev/null +++ b/Week2/APLOCWeek2/APLOCWeek2/swimEvent.h @@ -0,0 +1,16 @@ +// +// swimEvent.h +// APLOCWeek2 +// +// Created by Brent Marohnic on 2/14/13. +// Copyright (c) 2013 Brent Marohnic. All rights reserved. +// + +#import "baseEvent.h" + +@interface swimEvent : baseEvent + +// event specific data members used to calculate event time +@property int waterTemp; + +@end diff --git a/Week2/APLOCWeek2/APLOCWeek2/swimEvent.m b/Week2/APLOCWeek2/APLOCWeek2/swimEvent.m new file mode 100644 index 0000000..de98b25 --- /dev/null +++ b/Week2/APLOCWeek2/APLOCWeek2/swimEvent.m @@ -0,0 +1,46 @@ +// +// swimEvent.m +// APLOCWeek2 +// +// Created by Brent Marohnic on 2/14/13. +// Copyright (c) 2013 Brent Marohnic. All rights reserved. +// + +#import "swimEvent.h" + +@implementation swimEvent + +@synthesize waterTemp, eventDistance, eventName; + +// set unique data members from within INIT + +-(id)init +{ + self = [super init]; + if (self != nil) + { + [self setWaterTemp:55]; + [self setEventDistance:3]; + [self setEventName:@"Swimming"]; + } + return self; +} + +// override the base event method +// handicap equals the (absolute value of (optimum water temp - water temp) * 0.1) * (absolute value of (optimum water temp - water temp) +// distanceHandicap equals the best training time for one mile * (distance * 1.1) + +-(float)calculateEventTime +{ + float handicap; + float distanceHandicap; + + handicap = abs(72 - waterTemp) * 0.1 * abs(72 - waterTemp); + distanceHandicap = 15 * (eventDistance * 1.1); + + [self setEventTimeInMinutes:(handicap + distanceHandicap)]; + + return self.eventTimeInMinutes; +} + +@end